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.

Models covered
Thinkpad Carbon X1 4th Generation (early 2016)

Debian version
8.7 with backports kernel 4.9.0-0.bpo.1-amd64

Sub-models options :
- Video card: Intel HD Graphics 520
- Screen size: 14" LED WQHD 2560x1440
- Wireless card: Intel Corporation Wireless 8260 (rev 3a)
- Disk and Ram size: 512GB SSD PCIe, 16GB DDR3L
- Optical device: none
- Other options: fingerprint reader, bluetooth, microSD card reader

Overall Status

Core Components

[ATTACH]

Boot Standard Kernel:

{i}

Detect hard drives:

{i}

Extra Features

CPU Frequency Scaling

{OK}

Hibernation

{OK}

Sleep / Suspend

{OK}

Xorg

{i}

- OpenGL

{i}

- Resize-and-Rotate(randr)

{i}

Switch to External Screen

{i}

Mouse

- Built-in (Trackpoint)

{OK}

- Built-in (Touchpad)

{OK}

Wireless/Wifi

X-(

Keyboard's Hotkeys

{OK}

Fingerprint reader

{X}

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

BIOS

Entering the BIOS

BIOS Settings

Encrypted Partitions with Windows Dual Boot

This likely applies to many more models, but it is reported here for completeness. The example described here did work with Windows 8.1 previously installed.

Installation: Solve Problems with GRUB, Disk not-Seen and Black Screen

The normal installation from a USB disk (containing the DVD 1 image) using an internet connection (for example through external USB-LAN adapter) works fine until the following error is displayed:

Unable to install GRUB in dummy
Executing 'grub-install dummy' failed.
This is a fatal error.

Run a shell (for example: boot live USB ->Advanced ->Rescue mode..) and chroot in the installation:

mkdir -p /target        // "target" is a whatever name
fdisk -lu               // useful to determine the partition number <X> below
cryptsetup luksOpen /dev/nvme0n1p<X> cryptrootlvm   // if disk is encrypted. luksOpen with capital O is not a typo.
pvscan                  // scans all disks for physical volumes (necessary)
vgchange -a y           // this activates the volume group
lvdisplay               // useful to determine <XXX> below
mount /dev/<XXX>/root /target

mount --bind /dev /target/dev
mount --bind /dev/pts /target/dev/pts
mount --bind /proc /target/proc
mount --bind /sys /target/sys
cp /etc/resolv.conf /target/etc
chroot /target /bin/bash

then:

apt-get update
apt-get install grub-efi-amd64
update-grub
grub-install --target=x86_64-efi /dev/nvme0n1

Exit the shell, choose "Continue without bootloader" and the system should boot.

Optional if dual-boot (e.g. with Windows) is needed:

os-prober
update-grub

Kernel Update

With the default kernel (3.16) the computer has several issues. For example, it is not possible to get the WiFi to work (not even after installing the non-free package firmware-iwlwifi). Also, the contrast of the monitor cannot be changed, audio does not work, and the video (both with vlc and youtube for example) is rendered at the wrong speed. This can be fixed installing the backports kernel:

Installing the new Kernel

nano /etc/apt/sources.list

add:

deb http://<yourmirror>/ jessie-backports main

then:

apt update
apt install -t jessie-backports linux-image-amd64

when done, put back "jessie main" in the sources list!

Solving Boot Error (Disk not Seen)

nano /etc/initramfs-tools/modules

add this line:

nvme

then run:

update-initramfs -u

Solving Problem with Black Screen

The following should be sufficient (for installation of graphics firmware see Configuration section):

apt-get install -t jessie-backports xserver-xorg-video-intel

If you're using the kernel from Backports (>4.9), you need to update the intel driver to the version available in the Backports.

In alternative, one can do the following, but the brightness cannot be set, the fonts will appear very small and the external monitor won't work:

nano /etc/default/grub

add the following line:

GRUB_CMDLINE_LINUX="intel_pstate=no_hwp"

and add "nomodeset" to the following:

GRUB_CMDLINE_LINUX_DEFAULT="quiet nomodeset"

Finally:

update-grub

Configuration

Display

The firmware of intel graphics requires extra configuration. Download from https://01.org/linuxgraphics/downloads/skylake-guc-6.1 and from https://01.org/linuxgraphics/downloads/skylake-dmc-1.26 the GuC and DMC firmware and follow the instructions on the same pages (no customization necessary, just run the two default scripts). The link to 01.org appeared on the dmesg list. After this is done check that the firmware loads correctly for example with

dmesg | grep i915

If successful, the computer will run much more smoothly, and the CPU will no more be overloaded e.g. for rendering video.

Optional for adjusting the scaling in gnome:

rm ~/.config/dconf/usr                                          // optional if settings got messed up
gsettings list-keys org.gnome.desktop.interface                 // just to see what is available
gsettings set org.gnome.desktop.interface text-scaling-factor 1 // or 2, for example
gsettings set org.gnome.desktop.interface scaling-factor 1      // or 2, for example

Audio

Requires the updated kernel.

Mouse

Works perfectly from the beginning.

Power Management

WiFi / Bluetooth

Requires non-free drivers and the kernel from Backports:

nano /etc/apt/sources.list

and change "jessie main" -> "jessie main contrib non-free". Then:

apt-get update
apt-get install -t jessie-backports firmware-iwlwifi

As of 07/03/2017, In order to have a wifi working correctly, I have to disable ifupdown for eth0 in /etc/network/interfaces to let Network-Manager manage the eth0 interface.

Fingerprint

The fingerprint reader of the X1 Carbon 4th generation is not recognized. Apparently a driver is being developped: https://bugs.freedesktop.org/show_bug.cgi?id=94536 https://github.com/nmikhailov/Validity90


System Summary

lspci

00:00.0 Host bridge: Intel Corporation Device 1904 (rev 08)
00:02.0 VGA compatible controller: Intel Corporation Device 1916 (rev 07)
00:08.0 System peripheral: Intel Corporation Device 1911
00:13.0 Non-VGA unclassified device: Intel Corporation Device 9d35 (rev 21)
00:14.0 USB controller: Intel Corporation Device 9d2f (rev 21)
00:14.2 Signal processing controller: Intel Corporation Device 9d31 (rev 21)
00:16.0 Communication controller: Intel Corporation Device 9d3a (rev 21)
00:1c.0 PCI bridge: Intel Corporation Device 9d10 (rev f1)
00:1c.2 PCI bridge: Intel Corporation Device 9d12 (rev f1)
00:1c.4 PCI bridge: Intel Corporation Device 9d14 (rev f1)
00:1f.0 ISA bridge: Intel Corporation Device 9d48 (rev 21)
00:1f.2 Memory controller: Intel Corporation Device 9d21 (rev 21)
00:1f.3 Audio device: Intel Corporation Device 9d70 (rev 21)
00:1f.4 SMBus: Intel Corporation Device 9d23 (rev 21)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection I219-LM (rev 21)
02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. Device 525a (rev 01)
04:00.0 Network controller: Intel Corporation Wireless 8260 (rev 3a)
05:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd Device a802 (rev 01)

lsusb

lsusb -v | grep -E '\<(Bus|iProduct|bDeviceClass|bDeviceProtocol)' 2>/dev/null

Couldn't open device, some information will be missing
Couldn't open device, some information will be missing
Couldn't open device, some information will be missing
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
  bDeviceClass            9 Hub
  bDeviceProtocol         3 
Couldn't open device, some information will be missing
  iProduct                2 
Bus 001 Device 004: ID 138a:0090 Validity Sensors, Inc. 
  bDeviceClass          255 Vendor Specific Class
Couldn't open device, some information will be missing
  bDeviceProtocol       255 
  iProduct                0 
      (Bus Powered)
Bus 001 Device 003: ID 04ca:705a Lite-On Technology Corp. 
  bDeviceClass          239 Miscellaneous Device
  bDeviceProtocol         1 Interface Association
  iProduct                2 
      (Bus Powered)
Bus 001 Device 002: ID 8087:0a2b 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 

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

Resources

Attachments

Some configuration files and sample outputs.

With some tweaking to remove the steps dealing with dual boot, these instructions worked.

Credits