Dell XPS 13 (9350) 2024 - ArchWiki

Jump to content

# Dell XPS 13 (9350) 2024

From ArchWiki

Hardware | PCI/USB ID | Working?
--- | --- | ---
Touchpad |  | Yes
Keyboard |  | Yes
GPU | `8086:64a0` | Yes
Webcam | `8086:645d` | Yes
Bluetooth | `8086:a876` | Yes
Audio | `8086:a828` | Yes
Wi-Fi | `8086:a840` | Yes
Fingerprint reader | `27c6:633c` | Yes
TPM |  | Yes

## Installation

Disable Secure Boot in the UEFI in order to boot the installation media. Secure Boot can be re-enabled.

## Accessibility

The appearance of the UEFI is pretty simple and not very colorful, so it might work well with OCR software. However, it requires the user to use a mouse/touchpad or touchscreen.

Note Blind users should request the help of a sighted person to change UEFI settings

## Firmware

Note This device does not have a PC speaker and uses the built-in speakers instead. Beeps can be louder than expected.

fwupd does support this device for "BIOS updates".

Dell occasionally publishes updates on their product support site for "LGD Touch Panel Firmware Update Utility", "Dell Touchpad Firmware Update Utility", Various NVME SSD firmware updates, and possibly others. You may need to search for your Service Tag to access these updates. Many of these updates require that you temporarily boot into Windows to install them.

### Secure Boot

This article or section needs expansion.

Reason: The UEFI supposedly accepts .auth files and supports custom keys well: this needs testing. (Discuss in Talk:Dell XPS 13 (9350) 2024)

You can alternatively enable "Audit Mode" under the UEFI Boot Configuration menu and enroll your keys from the OS using a tool such as sbctl. "Audit Mode" is equivalent to Setup Mode.

After enrolling your keys, your computer will automatically reset to "Deployed Mode" and will trust your keys.

### Firmware data path

The UEFI stores logs and recovery images in `esp/EFI/dell`.

Recovery images are stored in `esp/EFI/dell/bios/recovery` and are 14 MB in size. It appears that there will only be two images at the same time, `BIOS_CUR.rcv` and `BIOS_PRE.rcv`. Those files will be created when the UEFI is updated.

#### Logs

`esp/EFI/dell/logs` contains XML files which contain diagnostics data (SupportAssist). It appears that there will only be two logs at the same time, `diags_previous.xml` and `diags_current.xml`. Those files will be created when an error happened.

## Display

The OLED display supports HDR, but common DEs do not recognize it as HDR-Capable. The KDE tool `kscreen-doctor -o` will show "HDR: incapable" and the toggle to enable HDR (in KDE and Gnome) will not appear in settings.

To enable HDR in KDE, you can add `KWIN_FORCE_ASSUME_HDR_SUPPORT=1` to your environment variables and enable HDR in settings.

To enable HDR in Gnome, you can use gdctl(1) § MONITOR_OPTIONS to set the display's color-mode to "bt2100" for HDR or "default" for SDR.

## Fingerprint reader

See Fprint - the device works out-of-the-box using standard installation. While registering, you may not see feedback that your fingerprint was read - simply retouch the sensor repeatedly until registration completes.

## Haptic Touchpad

The device uses an Elan haptic touchpad connected via a Designware I2C controller, with configurable force requirements and haptic feedback.

### Sensitivity and Haptic intensity

The haptic intensity can be set using hid-tools. Configuration options can be listed as follows after installing the package:

    # hid-feature list /dev/hidraw1

To set maximum haptics:

     # hid-feature set /dev/hidraw1 -f 90000 100

## Audio

### Prerequisites

This laptop uses Intel's Sound Open Firmware (SOF) for audio. Install the required package: without sof-firmware, the audio hardware will not be detected by the system despite the kernel modules loading successfully.

After installing, reboot for the changes to take effect.

### Mixer configuration

If audio is not working after installation, you may need to unmute channels or adjust mixer settings using `alsamixer` (from alsa-utils):

1. Run `alsamixer`
2. Press `F6` and select the "sof..." sound card
3. Press `F3` for playback controls
4. Use arrow keys to navigate and `m` to unmute channels
5. For rt1318 controls, set to `L,R`
6. For rt714 AD, set to `DMIC1`

### Microphone

If the microphone is not working:

1. Run `alsamixer`
2. Press `F6` and select the "sof..." sound card
3. Press `F4` for capture controls
4. Use `m` to unmute and `Space` to enable capture on relevant channels

## Camera

The camera is an IPU7 MIPI with a ov02c10 sensor. It can be made to work with Libcamera (since v 0.6.0) and by extension as a PipeWire camera in supported applications. This guide should get a working image, but good camera quality settings are a work in progress.

As of kernel 6.18, the necessary IPU7, ov02c10, and USBIO drivers are included in the kernel, but we are still missing Intel Vision Drivers. The IPU7 (binary) firmware is provided by linux-firmware-intel. This RedHat Bug Report tracks the status of the missing component and lists this model in a child bug report.

On a fresh install, installing libcamera-tools and running `cam -l` or `qcam` will show `No sensor found for /dev/media0` in the output.

### Install Intel Vision Drivers

First, install DKMS and your kernel's headers (e.g. linux-headers for the default kernel). The headers are required for DKMS to compile the vision driver module.

The prerequisite LJCA modules (`usb_ljca` and `gpio_ljca`) are built into kernel 6.18+ and should load automatically. Verify they are loaded:

    $ lsmod | grep ljca
    gpio_ljca              16384  0
    usb_ljca               24576  1 gpio_ljca

Note In older kernels these modules were named `ljca` and `gpio_ljca`. As of kernel 6.18, they are `usb_ljca` and `gpio_ljca`.

Then install intel-vision-drivers-dkms-gitAUR from the AUR. The DKMS module should build automatically when kernel headers are present.

To ensure the `intel_cvs` module loads at boot before the sensor is probed, create the following file:

    /etc/modules-load.d/intel_cvs.conf

    intel_cvs

After rebooting `cam -l` should show `1: Internal front camera (\_SB_.LNK1)` after warnings. `qcam` should start a raw camera stream - raw video will have a greenish tint with this camera.

Note The Intel Vision Driver module must already be loaded when the ov02c10 sensor is probed. If you cannot see your camera, run `rmmod ov02c10 && modprobe ov02c10` as root and try again.

To enable gstreamer support, install gst-plugin-libcamera. Test the camera stream with :

    gst-launch-1.0 libcamerasrc ! video/x-raw,format=RGBA,width=1920,height=1080,framerate=30/1 ! videoconvert ! ximagesink

To enable PipeWire camera support, install pipewire-libcamera. You may need to reboot after installing. If PipeWire was already started when the sensor was probed, you may need to restart `pipewire.service` user unit.

GNOME Camera is known to crash on startup using Vulkan (which is default), so you can run it with the environment variable `GSK_RENDERER=gl`.

For Firefox, open `about:config` (See Firefox#Configuration) and set `media.webrtc.camera.allow-pipewire` to "True".

For Chromium, enable the flag `enable-webrtc-pipewire-camera` in `chrome://flags/` or set it in your configuration file.

## Power management

The Lunar Lake CPU supports Energy Aware Scheduling which can provide great power efficiency without sacrificing (much) performance. To use EAS, you must use the schedutil CPUFreq governor which requires intel_pstate to operate in passive mode.

See CPU frequency scaling#Scaling drivers for guidance on how to set this. Setting `intel_pstate=passive` as a kernel parameter should be adequate, as schedutil is the default governor in this mode. To verify EAS is active, `cat /proc/sys/kernel/sched_energy_aware` will output "1" while enabled.

Alternatively, the Intel Low Power Mode Daemon can provide similar functionality by disabling P cores while utilization is low and can work while intel_pstate is in Active Mode With HWP and with any governor. Results can vary, but are generally good. Install intel-lpmdAUR and start/enable the `intel_lpmd.service`.

With either solution, you can set the Intel Performance and Energy Bias Hint as directed to tune performance/efficiency while running.

You can also set the Platform Profile on the fly. The options `cool` `quiet` `balanced` and `performance` match what Dell provides in UEFI. This setting persists across reboots. To set the Platform Profile to "Balanced" until manually changed again, either in the same fashion, or from the UEFI:

    # echo balanced | tee /sys/firmware/acpi/platform_profile

Enabling PCI and USB Autosuspend does not seem to have any issues on any built-in hardware and can improve power efficiency.

See PCI Runtime Power Management.

    /etc/udev/rules.d/pci_pm.rules

    SUBSYSTEM=="pci", ATTR{power/control}="auto"

See USB autosuspend.

    /etc/udev/rules.d/50-usb_power_save.rules

    ACTION=="add", SUBSYSTEM=="usb", TEST=="power/control", ATTR{power/control}="auto"

The device only supports the s2idle suspend method. Sleep/Wake appears to be reliable without undue sleep power consumption. Due to a bug on older kernels, the CPU can lock at 400MHZ and not scale properly after waking from sleep. Setting the platform profile to performance and back temporarily resolves the issue. As of v6.18 the bug appears to be resolved.

Charging can be managed with dell-command-configureAUR.

### Power buttons

This device has one detected power buttons and one sleep button.

    $  loginctl seat-status{{|}}grep Button

    │ input:input1 "Power Button"
    │ input:input2 "Sleep Button"

## Keyboard

### Function keys

The XPS 13 (2024) features a touch-sensitive F-key row, which does not provide tactile or haptic feedback. This design allows for additional space to improve cooling.

The F-key symbols are only displayed via backlighting. When the backlight is off, the symbols are invisible. Pressing the `Fn` key or toggling the Fn lock switches the labels between function (`Fx`) and secondary symbols.

Key | Visible?1 | Marked?2 | Effect
--- | --- | --- | ---
`Fn+Esc` | No | Yes | Switch Fn lock
`Fn+F1` | Yes | Yes | `XF86AudioMute`
`Fn+F2` | Yes | Yes | `XF86AudioLowerVolume`
`Fn+F3` | Yes | Yes | `XF86AudioRaiseVolume`
`Fn+F4` | Yes | Yes | `XF86MicMute`
`Fn+F5` | Yes | Yes | `XF86AudioPlay`
`Fn+F6` | No | Yes | Keyboard backlight switch
`Fn+F7` | Yes | Yes | `XF86MonBrightnessDown`
`Fn+F8` | Yes | Yes | `XF86MonBrightnessUp`
`Fn+F9` | Yes | Yes | Inputs `Left_Meta+P`
`Fn+F10` | Yes | Yes | `Print`
`Fn+F11` | Yes | Yes | `Home`
`Fn+F12` | Yes | Yes | `End`
`Fn+F12(right)` | Yes | Yes | `Insert`
`Fn+R` | Yes | Yes | `Print`
`Fn+S` | Yes | No | `ScrollLock`
`Fn+B`, `Fn+g` | Yes | No | `Pause`
`Fn+r` | Yes | No | `Print`
`Fn+Up` | Yes | Yes | `PageUP`
`Fn+Down` | Yes | Yes | `PageDown`
`Fn+Left` | Yes | No | `Home`
`Fn+Right` | Yes | No | `End`
`Fn+Copilot` | Yes | Yes | `Compose`

1. The key is visible to `evtest`
2. The physical key has a symbol on it, which describes its function

### Remap the Copilot key

The keycode for the Copilot key is `F23 + Left Shift + Left Meta`. See Input remap utilities for a list of utilities to remap it to something more useful.

If using keyd, the following configuration can be used to remap the key to `Right Ctrl`:

    [main]
    leftshift+leftmeta+f23 = rightcontrol

Category:

- Dell

Hidden category:

- Pages or sections flagged with Template:Expansion

Dell XPS 13 (9350) 2024
Add topic