Dell XPS 13 (9350) 2024

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
):
Run
alsamixer
Press
F6
and select the "sof..." sound card
Press
F3
for playback controls
Use arrow keys to navigate and
m
to unmute channels
For rt1318 controls, set to
L,R
For rt714 AD, set to
DMIC1
Microphone
If the microphone is not working:
Run
alsamixer
Press
F6
and select the "sof..." sound card
Press
F4
for capture controls
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-git
AUR
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-lpmd
AUR
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-configure
AUR
.
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 (
F
x
) 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
The key is visible to
evtest
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