Entry created
2023-09-09

Translation(s): none

DebianOn is an effort to document how to install, configure and use Debian on some specific hardware. Therefore potential buyers would know if that hardware is supported and owners would know how get the best out of that hardware.

The purpose is not to duplicate the Debian Official Documentation, but to document how to install Debian on some specific hardware.

If you need help to get Debian running on your hardware, please have a look at our user support channels where you may find specific channels (mailing list, IRC channel) dedicated to certain types of hardware.

Models covered
Dell XPS 13 Plus (9320)

Sub-models options :
- Video card: Intel Raptor Lake-P
- Screen size: 13"
- Wireless card: Intel
- Disk and Ram size, optical device: 1.0 TB and 16.0 GB, no
- Fingerprint reader: Shenzhen Goodix Technology Co.,Ltd.
- Bluetooth: Intel

Overall Status

Core Components

[ATTACH]

Boot Standard Kernel:

[ {OK} ]

LAN network card:

[ - ]

Detect CD/DVD:

[ - ]

Detect hard drives:

[ {OK} ]

Secure boot:

[ {OK} ]

Extra Features

CPU Frequency Scaling

[ {OK} ]

Hibernation

[ {X} ]

Sleep / Suspend

[ {OK} ]

Xorg

[ {OK} ]

- OpenGL

[ {OK} ]

- Resize-and-Rotate(randr)

[ {OK} ]

Switch to External Screen

[ {OK} ]

Sound

[ X-( , {i} ]

Video

[ {OK} ]

Built-in camera

[ X-( , {i} ]

Mouse

- Built-in (Trackpoint)

[ - ]

- Built-in (Touchpad)

[ {OK} ]

Modem

[ - ]

Wireless/Wifi

[ X-( ]

Keyboard's Hotkeys

[ {OK} ]

Fingerprint Reader

[ {OK} ]

Legend :
{OK} = OK ; {X} Unsupported(No Driver) ; /!\ = Error (Couldn't get it working); [?] Unknown, Not Test ; [-] Not-applicable
{i} = Configuration Required; X-( = Only works with a non-free driver and or firmware

Important Note

Even though this model can be shipped with Ubuntu installed by the manufacturer, it comes with a customised (OEM) kernel and configured to pull packages from Canonical/DELL repositories so it shouldn't be expected that a Debian - or even a "stock" Ubuntu - will work as smoothly out of the box here.

Configuration

Most of the hardware works out of the box with the up to date (full) distribution of Debian 12. The exceptions are the built-in audio devices and the built-in MIPI web camera; follow the instructions below to make them functional.

Audio

Intel Raptor Lake. Built-in speakers and the microphone don't work out of the box with the up to date kernel of Debian 12, 6.1.0-12, so a patch to the kernel from upstream is required:

Use the handbook for rebuilding the kernel after patching sources; the oldconfig settings are recommended to minimize deviations from the original kernel.

Store ALSA configuration as soon as the rebuilt kernel is booted and the microphone and speakers work:

alsactl clean
alsactl store

Camera

NB: There is a new kernel in Debian 13 that includes the ipu6 drivers. More information in this Debian bug report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1074441#56

Intel IPU6. There is no support for the camera in Debian 12 kernel version 6.1.0-12, so building the needed components from sources is necessary. The required repositories with the used commits specified:

  1. ipu6-drivers (5b8b943)

  2. ivsc-driver (94ecb88)

  3. ivsc-firmware (10c214f)

  4. ipu6-camera-bins (276859f)

  5. ipu6-camera-hal (884b81a)

  6. icamerasrc (2d36ade)

Follow the recipes from the aforementioned repositories/commits. Use the IPU6ep - Alder Lake - target platform and the OV01A10 sensor where possible to choose. If the software/firmware set up correctly, the "pipeline example" for "laptops with 12th/13th Gen Intel Core Processors with ov01a10 sensor" from the icamerasrc repository has to result in an open window with image from the camera.

In order to make the camera available in applications:

  1. Install the v4l2loopback-dkms module from Debian repository and apply the debian/patches/000* patches from the Ubuntu v4l2loopback (cae2954) repository; consult with the DKMS documentation in order to apply the patches and to rebuild/reinstall the module.

  2. Install the Ubuntu v4l2-relayd (801694f) solution:

./autogen.sh --prefix=/usr
make -j
make install
mv "/usr/etc" "/etc"
sed -i 's/SPLASHSRC/#SPLASHSRC/g' "/etc/default/v4l2-relayd"
sed -i 's/FORMAT=YUY2/FORMAT=NV12/g' "/etc/default/v4l2-relayd"
sed -i 's/VIDEOSRC="videotestsrc"/VIDEOSRC="icamerasrc"/g' "/etc/default/v4l2-relayd"
echo "GST_PLUGIN_PATH=/usr/lib/gstreamer-1.0" >> "/etc/default/v4l2-relayd"
sed -i 's/After=/#After=/g' "/etc/default/v4l2-relayd"

Add the line into the v4l2-relayd.service before the "?ExecStart=...":

ExecCondition=/usr/bin/test -n "${GST_PLUGIN_PATH}"

Starting the service manually each time after boot and login provides operability of the camera in more different applications: e.g. GNOME Cheese will not work if the v4l2-relayd.service is enabled and runs on boot automatically.


System Summary

lspci

$ lspci -nn
0000:00:00.0 Host bridge [0600]: Intel Corporation Device [8086:a707]
0000:00:02.0 VGA compatible controller [0300]: Intel Corporation Raptor Lake-P [Iris Xe Graphics] [8086:a7a0] (rev 04)
0000:00:04.0 Signal processing controller [1180]: Intel Corporation Raptor Lake Dynamic Platform and Thermal Framework Processor Participant [8086:a71d]
0000:00:05.0 Multimedia controller [0480]: Intel Corporation Device [8086:a75d]
0000:00:06.0 System peripheral [0880]: Intel Corporation RST VMD Managed Controller [8086:09ab]
0000:00:07.0 PCI bridge [0604]: Intel Corporation Device [8086:a76e]
0000:00:07.2 PCI bridge [0604]: Intel Corporation Device [8086:a72f]
0000:00:08.0 System peripheral [0880]: Intel Corporation GNA Scoring Accelerator module [8086:a74f]
0000:00:0a.0 Signal processing controller [1180]: Intel Corporation Raptor Lake Crashlog and Telemetry [8086:a77d] (rev 01)
0000:00:0d.0 USB controller [0c03]: Intel Corporation Device [8086:a71e]
0000:00:0d.2 USB controller [0c03]: Intel Corporation Device [8086:a73e]
0000:00:0d.3 USB controller [0c03]: Intel Corporation Device [8086:a76d]
0000:00:0e.0 RAID bus controller [0104]: Intel Corporation Volume Management Device NVMe RAID Controller Intel Corporation [8086:a77f]
0000:00:12.0 Serial controller [0700]: Intel Corporation Alder Lake-P Integrated Sensor Hub [8086:51fc] (rev 01)
0000:00:14.0 USB controller [0c03]: Intel Corporation Alder Lake PCH USB 3.2 xHCI Host Controller [8086:51ed] (rev 01)
0000:00:14.2 RAM memory [0500]: Intel Corporation Alder Lake PCH Shared SRAM [8086:51ef] (rev 01)
0000:00:14.3 Network controller [0280]: Intel Corporation Raptor Lake PCH CNVi WiFi [8086:51f1] (rev 01)
0000:00:15.0 Serial bus controller [0c80]: Intel Corporation Alder Lake PCH Serial IO I2C Controller #0 [8086:51e8] (rev 01)
0000:00:15.1 Serial bus controller [0c80]: Intel Corporation Alder Lake PCH Serial IO I2C Controller #1 [8086:51e9] (rev 01)
0000:00:16.0 Communication controller [0780]: Intel Corporation Alder Lake PCH HECI Controller [8086:51e0] (rev 01)
0000:00:1e.0 Communication controller [0780]: Intel Corporation Alder Lake PCH UART #0 [8086:51a8] (rev 01)
0000:00:1e.3 Serial bus controller [0c80]: Intel Corporation Alder Lake SPI Controller [8086:51ab] (rev 01)
0000:00:1f.0 ISA bridge [0601]: Intel Corporation Raptor Lake LPC/eSPI Controller [8086:519d] (rev 01)
0000:00:1f.3 Multimedia audio controller [0401]: Intel Corporation Raptor Lake-P/U/H cAVS [8086:51ca] (rev 01)
0000:00:1f.4 SMBus [0c05]: Intel Corporation Alder Lake PCH-P SMBus Host Controller [8086:51a3] (rev 01)
0000:00:1f.5 Serial bus controller [0c80]: Intel Corporation Alder Lake-P PCH SPI Controller [8086:51a4] (rev 01)
10000:e0:06.0 PCI bridge [0604]: Intel Corporation Raptor Lake PCIe 4.0 Graphics Port [8086:a74d]
10000:e1:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd NVMe SSD Controller PM9A1/PM9A3/980PRO [144d:a80a]

lsusb

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 27c6:63bc Shenzhen Goodix Technology Co.,Ltd. Goodix USB2.0 MISC
Bus 001 Device 002: ID 8086:0b63 Intel Corp. USB Bridge
Bus 001 Device 004: ID 8087:0033 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

$ sudo lsusb -v 2>/dev/null | grep -E '\<(^Bus|iProduct|bDeviceClass|bDeviceProtocol)'
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
  bDeviceClass            9 Hub
  bDeviceProtocol         3 
  iProduct                2 xHCI Host Controller
Bus 001 Device 003: ID 27c6:63bc Shenzhen Goodix Technology Co.,Ltd. Goodix USB2.0 MISC
  bDeviceClass          239 Miscellaneous Device
  bDeviceProtocol         0 
  iProduct                2 Goodix USB2.0 MISC
Bus 001 Device 002: ID 8086:0b63 Intel Corp. USB Bridge
  bDeviceClass            0 
  bDeviceProtocol         0 
  iProduct                2 USB Bridge
Bus 001 Device 004: ID 8087:0033 Intel Corp. 
  bDeviceClass          224 Wireless
  bDeviceProtocol         1 Bluetooth
  iProduct                0 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  bDeviceClass            9 Hub
  bDeviceProtocol         1 Single TT
  iProduct                2 xHCI Host Controller
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
  bDeviceClass            9 Hub
  bDeviceProtocol         3 
  iProduct                2 xHCI Host Controller
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  bDeviceClass            9 Hub
  bDeviceProtocol         1 Single TT
  iProduct                2 xHCI Host Controller

USB Host controllers entries (without OHCI, UHCI, EHCI) are removed too.

Resources

Attachments

Some configuration files and sample outputs.

Other reports

Credits