Linux on a HP Elitebook Folio G1

by Martin Monperrus

Tips and tricks to run Linux on Hewlett-Packard “HP EliteBook Folio G1” (from ‘’dmidecode | grep -i Product’’). Considered distribution: Debian.

Bios

By default, the function keys f1 .. are disabled, which is an issue for Alt-F4 (close window), etc.

In BIOS, disable “launch hotkeys without fn keypress”.

## Graphics Graphics works with both the “intel” driver and the “modesetting” driver of xorg (both require the “i915” kernel module). I recommend the “intel” driver, because it supports backlight with ‘Option “Backlight” “intel_backlight”’, as well as setting natural scrolling (see below).

$ cat /etc/X11/xorg.conf.d/20-intel.conf 
Section "Device"
        Identifier "card0"
        Driver "intel"
        Option "Backlight" "intel_backlight"
        BusID "PCI:0:2:0"
EndSection

There is a bug in the kernel module causing screen flickering (bug report), to fix it:

Default resolution is 1920x1080, in Randr/Xrandr the laptop screen is eDP-1 (Xorg modesetting driver) eDP1 (Xorg intel driver).

$ lspci | grep Graph
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 515 (rev 07)

Suspend on Lid closed works if handled by systemd with “HandleLidSwitchDocked=suspend”. ‘wake when lid is opened’ is disabled by default in Bios, must be re-enabled. Otherwise you get a nasty atkbd serio0: Unknown key pressed in /var/log/syslog

##Touchpad Touchpad works out of the box. It supports two-fingers scrolling. However, scrolling is reversed by default (mac-like) and tap-to-click may be disabled. To restore tapping and natural scrolling (using the intel Xorg driver): vi /etc/X11/xorg.conf.d/40-libinput.conf

Section "InputClass"
        Identifier "libinput touchpad catchall"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
        Option "Tapping" "True"
        Option "NaturalScrolling" "false"
EndSection

Wireless

Wireless works with kernel module “iwlwifi” and firmware “firmware-iwlwifi”.

# dmesg | grep iwl
[    4.397041] iwlwifi 0000:6d:00.0: enabling device (0000 -> 0002)
[    4.421740] iwlwifi 0000:6d:00.0: firmware: failed to load iwlwifi-8000C-26.ucode (-2)
[    4.421750] iwlwifi 0000:6d:00.0: Direct firmware load for iwlwifi-8000C-26.ucode failed with error -2
[    4.421769] iwlwifi 0000:6d:00.0: firmware: failed to load iwlwifi-8000C-25.ucode (-2)
[    4.421776] iwlwifi 0000:6d:00.0: Direct firmware load for iwlwifi-8000C-25.ucode failed with error -2
[    4.421791] iwlwifi 0000:6d:00.0: firmware: failed to load iwlwifi-8000C-24.ucode (-2)
[    4.421799] iwlwifi 0000:6d:00.0: Direct firmware load for iwlwifi-8000C-24.ucode failed with error -2
[    4.421816] iwlwifi 0000:6d:00.0: firmware: failed to load iwlwifi-8000C-23.ucode (-2)
[    4.421824] iwlwifi 0000:6d:00.0: Direct firmware load for iwlwifi-8000C-23.ucode failed with error -2
[    4.425428] iwlwifi 0000:6d:00.0: firmware: direct-loading firmware iwlwifi-8000C-22.ucode
[    4.425955] iwlwifi 0000:6d:00.0: loaded firmware version 22.361476.0 op_mode iwlmvm
[    4.445410] iwlwifi 0000:6d:00.0: Detected Intel(R) Dual Band Wireless AC 8260, REV=0x208
[    4.448631] iwlwifi 0000:6d:00.0: L1 Enabled - LTR Enabled
[    4.452061] iwlwifi 0000:6d:00.0: L1 Enabled - LTR Enabled
[    4.583621] ieee80211 phy0: Selected rate control algorithm 'iwl-mvm-rs'
[    4.584838] iwlwifi 0000:6d:00.0 wlp109s0: renamed from wlan0
[    6.097368] iwlwifi 0000:6d:00.0: L1 Enabled - LTR Enabled

Virtualization

The processor provides hardware support for virtualization. It is enabled by default in the BIOS.

To enable it:

Audio/Webcam

Sound works with the module snd-hda-intel (’‘$ modprobe snd-hda-intel’’).


$ lspci | grep Audio   
00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)

$ head -n 1 /proc/asound/card0/codec*
==> /proc/asound/card0/codec#0 <==
Codec: Conexant CX20724

==> /proc/asound/card0/codec#2 <==
Codec: Intel Skylake HDMI

Webcam works out-of-the-box.

Hard drive

It is a M.2 NVME (hence the partition starts with nvme).

$ apt-get install nvme-cli

$ nvme list
Node             SN                   Model                                    Namespace Usage                      Format           FW Rev  
---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1             96AS109DTTLV THNSN5256GPU7 TOSHIBA                    1         256.06  GB / 256.06  GB    512   B +  0 B   57HA4103

$ nvme id-ctrl /dev/nvme0

$ cat /sys/class/block/nvme0n1/queue//physical_block_size 
512
$ cat /sys/class/block/nvme0n1/queue//logical_block_size 
512
$ cat /sys/class/block/nvme0n1/queue/scheduler 
[none] mq-deadline 

$ hdparm -tT  /dev/nvme0n1

/dev/nvme0n1p2:
 Timing cached reads:   15882 MB in  2.00 seconds = 7949.11 MB/sec
 Timing buffered disk reads: 3926 MB in  3.00 seconds = 1308.57 MB/sec

Troubleshooting

If your laptop does not boot, you may have to do a “power reset” by holding the power button on for 15 seconds (see https://support.hp.com/us-en/document/c01684768/)

$ lspci
00:00.0 Host bridge: Intel Corporation Skylake Host Bridge/DRAM Registers (rev 08)
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 515 (rev 07)
00:04.0 Signal processing controller: Intel Corporation Skylake Processor Thermal Subsystem (rev 08)
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 (rev 21)
00:15.3 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #3 (rev 21)
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
00:1c.0 PCI bridge: Intel Corporation Device 9d10 (rev f1)
00:1c.4 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 (rev f1)
00:1d.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #9 (rev f1)
00:1f.0 ISA bridge: Intel Corporation Device 9d46 (rev 21)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
6c:00.0 Non-Volatile memory controller: Toshiba America Info Systems Device 010f (rev 01)
6d:00.0 Network controller: Intel Corporation Wireless 8260 (rev 3a)

$  lspci  -tv
-[0000:00]-+-00.0  Intel Corporation Skylake Host Bridge/DRAM Registers
           +-02.0  Intel Corporation HD Graphics 515
           +-04.0  Intel Corporation Skylake Processor Thermal Subsystem
           +-14.0  Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller
           +-14.2  Intel Corporation Sunrise Point-LP Thermal subsystem
           +-15.0  Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0
           +-15.3  Intel Corporation Sunrise Point-LP Serial IO I2C Controller #3
           +-16.0  Intel Corporation Sunrise Point-LP CSME HECI #1
           +-1c.0-[01-6b]--
           +-1c.4-[6c]----00.0  Toshiba America Info Systems Device 010f
           +-1d.0-[6d]----00.0  Intel Corporation Wireless 8260
           +-1f.0  Intel Corporation Device 9d46
           +-1f.2  Intel Corporation Sunrise Point-LP PMC
           +-1f.3  Intel Corporation Sunrise Point-LP HD Audio
           \-1f.4  Intel Corporation Sunrise Point-LP SMBus

$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family  : 6
model   : 78
model name  : Intel(R) Core(TM) m5-6Y54 CPU @ 1.10GHz
stepping  : 3
microcode : 0x84
cpu MHz   : 599.945
cache size  : 4096 KB
physical id : 0
siblings  : 4
core id   : 0
cpu cores : 2
apicid    : 0
initial apicid  : 0
fpu   : yes
fpu_exception : yes
cpuid level : 22
wp    : yes
flags   : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp
bugs    :
bogomips  : 3024.00
clflush size  : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:


$ dmidecode
BIOS Information
        Vendor: HP
        Version: N91 Ver. 01.11
        Release Date: 11/01/2016
        Address: 0xF0000
        Runtime Size: 64 kB
        ROM Size: 16384 kB
        Characteristics:
                PCI is supported
                PC Card (PCMCIA) is supported
                BIOS is upgradeable
                BIOS shadowing is allowed
                Boot from CD is supported
                Selectable boot is supported
                EDD is supported
                Print screen service is supported (int 5h)
                8042 keyboard services are supported (int 9h)
                Serial services are supported (int 14h)
                Printer services are supported (int 17h)
                ACPI is supported
                USB legacy is supported
                Smart battery is supported
                BIOS boot specification is supported
                Function key-initiated network boot is supported
                Targeted content distribution is supported
                UEFI is supported
        BIOS Revision: 1.11
        Firmware Revision: 41.106
Tagged as: