Dell XPS 16 (9640)

From ArchWiki
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.

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

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
  1. The key is visible to xev and similar tools
  2. 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