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
Lenovo Thinkpad X1 Tablet (Generation 3)

Overall Status

Core Components

[ATTACH]

Boot Standard Kernel:

{OK}

LAN network card:

{OK}

Detect CD/DVD:

[?]

Detect hard drives:

{OK}

Extra Features

CPU Frequency Scaling

[?]

Hibernation

{OK}

Sleep / Suspend

{OK}

Xorg

[?]

- OpenGL

[?]

- Resize-and-Rotate(randr)

[?]

Switch to External Screen

[?]

Mouse

- Built-in (Trackpoint)

{i}

- Built-in (Touchpad)

{OK}

Modem

[?]

Wireless/Wifi

{i}

Keyboard's Hotkeys

{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

{i} The installation reported here is with Debian's 4.17.0-1 kernel and using Xfce as the window manager.

{i} The stable (4.9) and testing (4.17) liveCDs were able to start without issues; however, the installers (both graphical and standard) for both stable and testing resulted in a black screen. Xubuntu 16.04 had no issues with installation of the system, but GRUB2 wasn't functional upon reboot. Installation of a dual boot system with Windows 10 is outlined under Installation.

{i} F1 enters UEFI configuration and F12 selects boot media

Installation

The following instructions pertain to a dual boot system with Windows 10 (1083). Be certain to disable Secure Boot in the UEFI configuration as well as change the boot order to allow the SSD to be visible before the Windows Boot Manager. Installation of Debian onto the SSD required the use of VirtualBox inside Windows. Use Windows to shrink its own partition. To achieve a significant reduction, down to a total size of 100 GB required disabling the Pagefile and System Restore, as well as deleting all restore points, then defragmenting the drive. Additional strategies are available here. Use Windows to create the desired number of linux partitions, but don't format or assign mount points. The installation described here used 3 linux partitions - root (100GB), swap (24GB), and home (remaining). Create a VirtualBox machine with EFI, a NVMe controller, and a USB Controller. Skip creating a virtual HDD for now, but the Debian installation media can be attached to the USB Controller. Using the information here and here, the following command in Windows will create a virtual drive image using physical partitions of the drive. In this example, the EFI partition was 1, root was 4, swap was 5, and home was 6.

VBoxManage internalcommands createrawvmdk -filename "C:\Users\<user_name>\VirtualBox VMs\<VM_folder_name>\<file_name>.vmdk" -rawdisk \\.\PhysicalDrive0 -partitions 1,4,5,6

Including the EFI partition will allow Debian and GRUB2 to create all necessary files. Now, the newly created VMDK file can be added to the NVMe controller and the new virtual machine booted. Installation of Debian should proceed without issues so long as a manual partitioning option is used and the predefined partitions don't have there sizes altered. Debian installation will require specifying which mount point is assigned to which partition. When installation completes, VirtualBox can be closed and Windows shut down. The same Debian image used for installation should be bootable on some physical media, such as a USB flash drive or CD/DVD. This installation used a USB 3.1 flash drive. Boot onto the flash drive since the SSD's EFI partition needs more work to boot Debian. In the boot menu of the installation media, press "C" on the keyboard to enter the grub command shell. Use the following commands (based on this setup described) to boot into the Debian system on the SSD.

set root=(hd0,gpt4)
linux /boot/vmlinuz-4.17.0-1-amd64 root=/dev/nvme0n1p4
initrd /boot/initrd.img-4.17.0-1-amd64
boot

Once logged in as the user, the boot media may be removed. Open a command prompt and switch to root using the command "su -". Yes, the dash is necessary. The following set of commands will make the drive bootable and display the GRUB2 menu.

update-grub
cd /boot/efi/EFI/BOOT/
mv bootx64.efi bootx64.bak
cp ../debian/grubx64.efi bootx64.efi

Many suggestions were tried to make the system bootable, but the above method outlined above was the only one that worked. The source of this suggestion is here. A backup of the original EFI file was maintained, just in case of an emergency. The system should now be bootable as dual boot.

Configuration

Display

Intel® UHD Graphics 620
13.0" QHD+ 3K (3000 x 2000) IPS multi-touch
Display works; however, all fonts and screen objects are extremely small, including GRUB2, the login manager, and the user's display.
GRUB2
Uncommenting (removing the hashtag) before "GRUB_GFXMODE" in the /etc/default/grub file will allow a lower resolution for GRUB2. The stated resolution can be changed to one's own preference. After saving the edited file, update grub with "update-grub2". The resolution of GRUB2 will be as stated in the file upon reboot.
Login Manager
LightDM was installed by default with gtk-greeter. Slick-greeter does a better job with the higher screen resolution; however, use of the Onboard keyboard is very small. Below is the /etc/lightdm/slick-greeter.conf file used.

[Greeter]
background = /usr/share/images/desktop-base/login-background.svg
background-color = #000000
draw-grid = false
draw-user-backgrounds = false
enable-hidpi = auto
font-name = Sans 12
#group-filter = 
#hidden-users = 
high-contrast = false
icon-theme-name = Tango
#logo = 
#only-on-monitor = 
onscreen-keyboard = true
#other-monitors-logo = 
#play-ready-sound = 
screen-reader = false
show-a11y = true
show-clock = true
show-hostname = true
show-keyboard = false
show-power = true
show-quit = true
theme-name = Default
xft-antialias = true
#xft-dpi = 
xft-hintstyle = hintslight
#xft-rgba = 

User's Display
As of 8/24/2018, two options exist to address the extremely small icons, fonts, etc. 1) Changing the DPI to 192 in Settings > Appearance > Font will improve some aspects, but not all. Adjust the theme to Default-xhdpi in Settings > Window Manager > Style. The panel sizes can be adjusted in Settings > Panel > Display. Desktop icons and their font can be adjusted in Settings > Desktop > Icons. These settings are outlined in internet searches but require many modifications in multiple locales to address the sizing. 2) Adjusting the Settings > Display > Resolution to 1400x900 yields the best results (author's opinion) with minimal loss of screen usage. Perhaps Xfce will improve hiDPI features in the future.

Audio

Intel® Sunrise Point-LP HD Audio
Audio works without issues or additional setup.

Mouse

Touchpad and Wacom Pen were detected, but not the trackpoint and its associated buttons. The trackpoint is found with "dmidecode -t 21" but no driver available.

Driver submitted for inclusion into linux 5.1. Patch available on github.

Power Management

Use of the Fn key will wake from suspend, not the power button. There may be an issue of power consumption when suspended due to lack of a S3 state as outlined here.

WiFi

Intel® Dual Band 8265 Wireless AC (2 x 2)
The wifi hardware requires the installation of "firmware-iwlwifi".

Keyboard

Backlight requires manual activation with Fn + <spacebar>.


System Summary

lspci

00:00.0 Host bridge [0600]: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers [8086:5914] (rev 08)
00:02.0 VGA compatible controller [0300]: Intel Corporation UHD Graphics 620 [8086:5917] (rev 07)
00:04.0 Signal processing controller [1180]: Intel Corporation Skylake Processor Thermal Subsystem [8086:1903] (rev 08)
00:05.0 Multimedia controller [0480]: Intel Corporation Skylake Imaging Unit [8086:1919] (rev 01)
00:08.0 System peripheral [0880]: Intel Corporation Skylake Gaussian Mixture Model [8086:1911]
00:13.0 Non-VGA unclassified device [0000]: Intel Corporation Sunrise Point-LP Integrated Sensor Hub [8086:9d35] (rev 21)
00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller [8086:9d2f] (rev 21)
00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Thermal subsystem [8086:9d31] (rev 21)
00:14.3 Multimedia controller [0480]: Intel Corporation Device [8086:9d32] (rev 01)
00:15.0 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 [8086:9d60] (rev 21)
00:15.1 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 [8086:9d61] (rev 21)
00:15.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #2 [8086:9d62] (rev 21)
00:16.0 Communication controller [0780]: Intel Corporation Sunrise Point-LP CSME HECI #1 [8086:9d3a] (rev 21)
00:16.3 Serial controller [0700]: Intel Corporation Device [8086:9d3d] (rev 21)
00:1c.0 PCI bridge [0604]: Intel Corporation Device [8086:9d11] (rev f1)
00:1c.3 PCI bridge [0604]: Intel Corporation Device [8086:9d13] (rev f1)
00:1c.4 PCI bridge [0604]: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 [8086:9d14] (rev f1)
00:1d.0 PCI bridge [0604]: Intel Corporation Sunrise Point-LP PCI Express Root Port #9 [8086:9d18] (rev f1)
00:1e.0 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Serial IO UART Controller #0 [8086:9d27] (rev 21)
00:1e.3 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Serial IO SPI Controller #1 [8086:9d2a] (rev 21)
00:1f.0 ISA bridge [0601]: Intel Corporation Intel(R) 100 Series Chipset Family LPC Controller/eSPI Controller - 9D4E [8086:9d4e] (rev 21)
00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-LP PMC [8086:9d21] (rev 21)
00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-LP HD Audio [8086:9d71] (rev 21)
00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-LP SMBus [8086:9d23] (rev 21)
02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS522A PCI Express Card Reader [10ec:522a] (rev 01)
04:00.0 Network controller [0280]: Intel Corporation Wireless 8265 / 8275 [8086:24fd] (rev 78)
05:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981 [144d:a808]

lsusb

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

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 004: ID 04ca:706b Lite-On Technology Corp. 
  bDeviceClass          239 Miscellaneous Device
  bDeviceProtocol         1 Interface Association
  iProduct                1 Integrated Camera
      (Bus Powered)
FIXME: alloc bigger buffer for device capability descriptors
  (Bus Powered)
Bus 001 Device 003: ID 04ca:7076 Lite-On Technology Corp. 
  bDeviceClass          239 Miscellaneous Device
  bDeviceProtocol         1 Interface Association
  iProduct                1 Integrated IR Camera
      (Bus Powered)
FIXME: alloc bigger buffer for device capability descriptors
  (Bus Powered)
Bus 001 Device 002: ID 17ef:60b5 Lenovo 
  bDeviceClass            0 (Defined at Interface level)
  bDeviceProtocol         0 
  iProduct                2 ThinkPad X1 Tablet Thin Keyboard Gen 3
      (Bus Powered)
  (Bus Powered)
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

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

Resources

Attachments

Some configuration files and sample outputs.

Credits


CategoryTabletComputer