Differences between revisions 19 and 20
Revision 19 as of 2017-03-06 14:28:29
Size: 14613
Editor: ?AdrienGrellier
Comment: the fingerprint reade is not recognized
Revision 20 as of 2017-03-06 14:38:13
Size: 14613
Editor: ?AdrienGrellier
Comment: update the version of kernel, to match the current state of backports
Deletions are marked like this. Additions are marked like this.
Line 17: Line 17:
~-''Debian version''-~<<BR>>'''8.5 with backports kernel 4.6.0-0.bpo.1-amd64''' ~-''Debian version''-~<<BR>>'''8.5 with backports kernel 4.9.0-0.bpo.1-amd64'''

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
Thinkpad Carbon X1 4th Generation (early 2016)

Debian version
8.5 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

{i}

Sleep / Suspend

{i}

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

{i}

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

  • Case of Windows 10 (likely pre-installed): Entering BIOS is not possible after shutting down Windows as apparently it does not shut-down completely. Workaround: boot Windows, then keep the turn-on button pressed (hard reset). At the next boot press a few times F1 (no need of Fn+F1, and no need of pressing F1 while turning on).

  • Case of Window 8.1: The trick which works with Windows 10 does not work anymore (possibly Window 8.1 boots too quickly). Workaround: insert a slow USB device, for example an external DVD drive. Pressing F1 will now let you enter the BIOS.

BIOS Settings

  • Security -> Secure boot -> Disable secure boot

  • Startup -> Boot (press enter) -> Set priority order

  • Startup -> UEFI/legacy -> UEFI only (necessary for preventing errors like "efibootmgr: EFI variables are not supported on this system" when using grub-install)

  • Startup -> Boot order lock -> Enable (necessary for avoiding Windows to change it and prevent you from entering the BIOS again if dual-boot is used)

  • Security -> Virtualization -> Intel Virtualization Technology (necessary for avoiding errors listed by dmesg)

  • Security -> Anti-theft -> Computrace -> Permanently disabled (optional: be aware of possible tracking/trojan issues; see ?BlackHat conference reports)

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.

  • Make unencrypted boot partition (do not make a "reserved BIOS boot area, or the disk encryption password will be asked twice). -> Create new partition -> 201MB -> Use as: ext2 file system -> Mount point: /boot

  • Encrypt the rest of the disk and use Logic Volume Manager (LVM) to make two logic partitions (root and /swap) in it:
    1. Create new partition -> The size you like -> Use as: physical volume for LVM

    2. Configure encrypted volumes -> Devices to encrypt: select the lvm volume just created -> aes 256 -> Finish (the disk password will be asked here)

    3. Configure logical volume manager -> Create volume group -> name: LVMG (for example) -> Select crypt device -> Create logical volume -> call it e.g. "swap" -> size: 17GB -> Create logical volume (again) -> call it e.g. "root" -> size: the remaining size -> Finish

    4. Select the newly made logical root volume: set it as ext4 and make it mountable as / (root). Select the swap volume and set it as swap area

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

  • (not covered yet)

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

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.

  • This may be of use to some people:

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

Credits