Jump to content

# 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` | No
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.

## Keyboard

### 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

### 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]
    f23+leftshift+leftmeta = rightcontrol

## 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

The GPU is also supported by the experimental `xe` kernel driver, see Intel graphics#Testing the new experimental Xe driver.

### 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

This laptop requires Sound Open Firmware in order for the soundcard to work.

The package linux-firmware-cirrus is also needed.

## Webcam

The webcam is an Intel IPU6 device and is not fully supported in upstream kernel, even with some recent fixes.

There are upstream efforts to make it work though:

IPU6 camera support status update notices that IPU6 camera on Dell XPS 9x40 models with ov02c10 sensor are not working. A fix for the sensor driver has been submitted upstream (patch v8).

With this (unapproved) patch the webcam is be functional with libcamera/qcam when being build in a custom kernel.

But the image quality is still subpar and requires further improvements in libcamera.

## 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

Category:

- Dell