Dell XPS 16 (9640)
Hardware | PCI/USB ID | Working? |
---|---|---|
Touchpad | 04f3:311c |
Yes |
Touch screen | Yes | |
Keyboard | Yes | |
GPU (Intel Arc) | 8086:7d55 |
Yes |
GPU (NVIDIA RTX 4060) | 10de:28a0 |
Yes |
Webcam | 8086:7d19 |
Yes |
Bluetooth | Yes | |
SD Card reader | 10ec:5260 |
Yes |
Audio | 8086:7e28 |
Yes |
Wireless | 8086:272b |
Yes |
Fingerprint reader | 27c6:633c |
Yes |
TPM | Yes |
The Dell XPS 16 (9640) is an Intel Meteor Lake based laptop computer released in 2024.
Installation
The following settings need to be modified in the UEFI setup. The setup menu can be accessed by pressing F12
repeatedly after powering on.
- Change the SATA Mode from the default "RAID" to "AHCI". This will allow Linux to detect the NVMe SSD. If dual booting with an existing Windows installation, Windows will not boot after the change but this can be fixed without a re-installation.
- Disable Secure Boot to allow Linux to boot. Alternatively, you can choose to set up Secure Boot so that it works with Linux and you can take advantage of its potential security benefits.
Installation of Arch Linux can proceed normally. Refer to the Installation guide for more information.
Accessibility
Navigating the Dell UEFI menus requires using the trackpad or a mouse.
This computer also has a LED at the top of the keyboard that can be used for diagnosis. See the user manual.
Firmware
fwupd
The firmware can be updated on Linux. See fwupd.
UEFI
Firmware images can be found at Dell support page as XPS_16_9640_X.Y.Z.exe
files.
In order to install:
- Download the desired firmware from the "Dell XPS 16 9640 System BIOS" section
- Save it in a FAT32 formated volume (either the EFI system partition or a USB flash drive will work)
- Reboot the system and enter the boot menu by pressing repeatedly
F12
- Choose "Bios Flash Update"
- Select the file previously saved, and start the process
The process will take some time, with the fans running at maximum speed. The system will reboot at the end.
Function keys
This computer uses a touchbar for function keys instead of physical keys, but the operation is identical to a real keyboard.
Key | Visible?1 | Marked?2 | Effect |
---|---|---|---|
Fn+Esc |
No | Yes | Enable Fn lock |
Fn+F1 |
Yes | Yes |
XF86AudioMute
|
Fn+F2 |
Yes | Yes |
XF86AudioLowerVolume
|
Fn+F3 |
Yes | Yes |
XF86AudioRaiseVolume
|
Fn+F4 |
Yes | Yes |
XF86AudioMicMute
|
Fn+F5 |
No | Yes |
XF86AudioPlay
|
Fn+F6 |
Yes | Yes | Change keyboard backlight |
Fn+F7 |
Yes | Yes |
XF86MonBrightnessDown
|
Fn+F8 |
Yes | Yes |
XF86MonBrightnessUp
|
Fn+F9 |
Yes | Yes |
Super+p
|
Fn+F10 |
Yes | Yes |
PrintScreen
|
Fn+F11 |
Yes | Yes |
Home
|
Fn+F12 |
Yes | Yes |
End
|
Fn+Up |
Yes | Yes |
PageUp
|
Fn+Down |
Yes | Yes |
PageDown
|
Fn+Left |
Yes | No |
Home
|
Fn+Right |
Yes | No |
End
|
Fn+Copilot |
Yes | Yes |
Menu
|
- The key is visible to
xev
and similar tools - The physical key has a symbol on it, which describes its function
Power Management
Suspend and hibernate
See Power management/Suspend and hibernate.
Only the s2idle
suspend variant is supported.
TLP
If using TLP, the following parameters can be set by editing its configuration file located in /etc/tlp.conf
.
Enable runtime power management for PCIe devices:
RUNTIME_PM_ON_AC=auto RUNTIME_PM_ON_BAT=auto
Enabling USB autosuspend can cause trouble with some USB Ethernet devices. It can be disabled like so:
USB_AUTOSUSPEND=0
Powertop
powertop can also be used to manage power. Run powertop --auto-tune
to automatically set it up.
It can then be started at boot time, see Powertop#Apply settings.
thermald
Usage of thermald will dramatically increase the performance of the CPU under load.
Graphics
Intel Arc Graphics
As of Linux 6.8, the Intel Arc GPU should be correctly supported by the i915
kernel driver.
The GPU is also supported by the experimental xe
kernel driver available since Linux 6.8.
In order to use it, add the following parameters to the kernel command line: i915.force_probe=!7d55 xe.force_probe=7d55
NVIDIA
See NVIDIA Optimus.
As this is an Ada Lovelace generation GPU, power management features are enabled by default. See PCI-Express Runtime D3 (RTD3) Power Management.
Do not forget to enable the nvidia-persistenced
daemon.
Fingerprint reader
The Goodix fingerprint reader is supported by fprint.
Audio
As of Linux 6.9, the audio device is fully supported. Installing sof-firmware is needed to provide correct operation.
See Advanced Linux Sound Architecture#ALSA firmware.
Webcam
The webcam is an Intel IPU6 device and is not supported in upstream kernel.
However, correct operation can be obtained by installing intel-ipu6-camera-binAUR and intel-ipu6-dkms-gitAUR.
Troubleshooting
Random freezes
There are occurrences of Intel GPU freezes, with the only solution being a hard reset of the system.
You might see the following kernel output while experiencing these freezesĀ :
[ 1533.629627] i915 0000:00:02.0: [drm] ERROR GT0: GUC: TLB invalidation response timed out for seqno 175260 [ 1535.350015] i915 0000:00:02.0: [drm] GPU HANG: ecode 12:0:00000000 [ 1535.350418] i915 0000:00:02.0: [drm] GT0: Resetting chip for stopped heartbeat on bcs0 [ 1535.350674] i915 0000:00:02.0: [drm] GT0: GuC firmware i915/mtl_guc_70.bin version 70.20.0 [ 1535.360866] i915 0000:00:02.0: [drm] GT0: GUC: submission enabled [ 1535.360870] i915 0000:00:02.0: [drm] GT0: GUC: SLPC enabled
Adding the following option to the kernel command line can solve the issue: iommu.strict=1
. See [1].
System hangs on startup
There can be some cases where the system hangs on startup, specifically when starting the nvidia-persistenced
daemon.
In order to solve this issue, add the following modules to the initramfs:
/etc/mkinitcpio.conf
... MODULES=(... nvidia, nvidia_drm, nvidia_modeset, nvidia_uvm) ...
Then, add nvidia_drm.modeset=1
to the kernel command line and regenerate the initramfs.
Screen freeze on some window managers
This was noticed on Hyprland window manager on kernels starting with 6.10.8. When switching between workspaces nothing happened and journald reported the following:
Sep 09 23:05:49 archlinux kernel: swiotlb_tbl_map_single: 127 callbacks suppressed Sep 09 23:05:49 archlinux kernel: simple-framebuffer simple-framebuffer.0: swiotlb buffer is full (sz: 2097152 bytes), total 32768 (slots), used 2 (slots) Sep 09 23:05:49 archlinux kernel: simple-framebuffer simple-framebuffer.0: swiotlb buffer is full (sz: 2097152 bytes), total 32768 (slots), used 2 (slots) Sep 09 23:05:49 archlinux kernel: simple-framebuffer simple-framebuffer.0: swiotlb buffer is full (sz: 2097152 bytes), total 32768 (slots), used 2 (slots) Sep 09 23:05:49 archlinux kernel: simple-framebuffer simple-framebuffer.0: swiotlb buffer is full (sz: 2097152 bytes), total 32768 (slots), used 2 (slots)
Then, add initcall_blacklist=simpledrm_platform_driver_init
to your kernel parameters and the simple-framebuffer device (simpledrmdrmfb) will not be loaded. Normally the simple-framebuffer device should be replaced when the normal i915 device (i915drmfb) loads but this is not the case here.
See also
User Manual: https://dl.dell.com/content/manual84320372-xps-16-9640-owner-s-manual.pdf?language=en-us