Linux installation on HP EliteBook 1030 x360 G3

This document reports the installation on a new machine.

  • Model: HP EliteBook 1030 x360 G3
  • Model number: 4SX96UT
  • Date of installation: October 2018
  • Linux Distribution: Debian Buster (testing)

Hardware info:

  • Intel(R) Core(TM) i7-8650U CPU @ 1.90GHz
  • 16GB RAM
  • 512GB NvMe SSD
  • 1 USB-A
  • 2 USB-C with Thunderbolt 3

Status

OK and almost OK

  • Video: OK i915
  • Ethernet: OK r8152 (provided USB-C adapter)
  • Wifi: OK iwlwifi (non-free firmware)
  • Bluetooth: OK btintel (non-free firmware)
  • Audio: OK snd_hda_intel
  • Touchpad: minor issues
  • Touchscreen: OK
  • Webcam FHD: OK
  • IR camera: some flicking issues
  • Suspend to ram: some issues
  • Suspend to disk: OK
  • Function keys: some issues
  • USB-3.1: OK, including external display
  • Accelerometer: rotation detection OK
  • Ambient light sensor: some lag between light change and sensor feedback. Not sure if the numbers make sense
  • Magnetometer: OK but not sure if the numbers make sense

Not supported

Not tested

  • Thunderbolt 3
  • Active Pen (wacom): not tested but seems not supported (I do not have one)
  • Gyroscope
  • Hall sensor (what is that)
  • NFC

Step 1 - preparation

I kept Windows with a double boot

  • Boot Windows
  • Disable bitlocker on the main file system
  • Resize the Windows partition to make some space

Need to allow boot from USB

  • Enter the Bios Setup by pressing ESC or F10 repeatedly on boot
  • Disable Secure Boot and Enable Legacy Support, in Advanced > Secure Boot Configuration

When Secure Boot is enabled, the USB stick wont boot and there is an error message. When Legacy Support is disables, the USB stick boots and live systems can run but the installation (both console and graphical) will display a blank screen without any message.

Prepare the USB stick

Since the model is quite recent, I just used the devel version with a most up-to-date kernel (it was 4.16).

Boot on the USB stick with F9.

Step 2 - installation

For the network, I used the provided USB-C to RJ-45 adapter

  • model RTL8153-03
  • lsusb: ID 0bda:8153 Realtek Semiconductor Corp.
  • kernel module: r8152 (no non-free firmware needed)

The Debian installation went without trouble.

Post-installation

  • Update the kernel (was linux-image-4.18.0-2-amd64)
  • Install firmware-linux-nonfree for bluetooth and wifi

Hardware

$ lsusb
Bus 004 Device 007: ID 0bda:8153 Realtek Semiconductor Corp. -> USB-C to RJ45: OK
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
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 008: ID 04ca:7078 Lite-On Technology Corp. -> webcam: OK
Bus 001 Device 005: ID 138a:00ab Validity Sensors, Inc. -> fingerprint: not supported yet
Bus 001 Device 003: ID 8087:0a2b Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
$ lspci
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 08)
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)
00:04.0 Signal processing controller: Intel Corporation Skylake Processor Thermal Subsystem (rev 08)
00:13.0 Non-VGA unclassified device: Intel Corporation Sunrise Point-LP Integrated Sensor Hub (rev 21)
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.1 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 (rev 21)
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
00:16.3 Serial controller: Intel Corporation Device 9d3d (rev 21)
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port (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:1e.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO UART Controller #0 (rev 21)
00:1f.0 ISA bridge: Intel Corporation Intel(R) 100 Series Chipset Family LPC Controller/eSPI Controller - 9D4E (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)
01:00.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
02:00.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
02:01.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
02:02.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
02:04.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
03:00.0 System peripheral: Intel Corporation JHL6540 Thunderbolt 3 NHI (C step) [Alpine Ridge 4C 2016] (rev 02)
37:00.0 USB controller: Intel Corporation JHL6540 Thunderbolt 3 USB Controller (C step) [Alpine Ridge 4C 2016] (rev 02)
6c:00.0 Network controller: Intel Corporation Wireless 8265 / 8275 (rev 78)
6d:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981
$ xinput
⎡ Virtual core pointer                        id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ALP001C:00 044E:120A Touchpad             id=17   [slave  pointer  (2)]
⎜   ↳ AlpsPS/2 ALPS GlidePoint                  id=21   [slave  pointer  (2)]
⎜   ↳ Wacom HID 4890 Pen eraser                 id=24   [slave  pointer  (2)]
⎜   ↳ Wacom HID 4890 Finger touch               id=16   [slave  pointer  (2)]
⎜   ↳ Wacom HID 4890 Pen stylus                 id=15   [slave  pointer  (2)]
⎣ Virtual core keyboard                       id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard                 id=5    [slave  keyboard (3)]
    ↳ Power Button                                id=6    [slave  keyboard (3)]
    ↳ Video Bus                                   id=7    [slave  keyboard (3)]
    ↳ Sleep Button                                id=8    [slave  keyboard (3)]
    ↳ HP Full-HD Camera: HP Full-HD C             id=13   [slave  keyboard (3)]
    ↳ HP Full-HD Camera: HP IR Camera             id=14   [slave  keyboard (3)]
    ↳ Intel Virtual Button driver                 id=18   [slave  keyboard (3)]
    ↳ Intel HID events                            id=19   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard                id=20   [slave  keyboard (3)]
    ↳ HP Wireless hotkeys                         id=22   [slave  keyboard (3)]
    ↳ HP WMI hotkeys                              id=23   [slave  keyboard (3)]

Features

Desktop experience

Installed: Gnome 3.30

  • Gnome on Xorg: OK
  • Gnome with Wayland: OK
  • Multi screen with the HDMI output: OK
  • Auto-rotation: OK out of the box. When there is a rotation there is an ugly black screen.

The Gnome virtual keyboard (caribou) is crap and does not pop up when we need it. I installed onboard but it is not compatible with Wayland. I also installed these two Gnome Shell extensions: On Screen Keyboard Button and Onboard Integration

Firefox (firefox-esr=52.9.0esr-1) has poor and non standard handling of the touch screen (especially for scrolling). I installed chromium instead that rely on GTK.

The tablet mode is OK and the keyboard and touchpad are disabled when the screen is rotated more than 180° (possibly an hardware feature). The controls are hard to use in tablet-mode because of the screen resolution (1920x1080). Gnome has no nice tablet mode experience. My workaround is to activate the accessibility feature large text in tablet mode to automatically enlarge the size of the controls (available in the accessibility drop down menu).

Sometimes the touchpad is stuck in "two fingers scroll mode". Releasing or tapping do nothing. I need to click to leave the scroll mode.

Suspend-to-RAM sometime has some difficulties to come back. I need to investigate more.

After configuration, suspend-to-disk works as expected. I configured the power button to hibernate in Gnome preferences > Energy > Power button. I also installed the Gnome Shell extension Hibernate Status Button

Function buttons that are OK

  • Screen output (F1) seen by Gnome
  • Sound mute (F5) seen by Gnome
  • Sound +/- (F6 & F6) seen by Gnome
  • Keyboard brightness (F9) seems hardware
  • Num lock (F10) seems hardware
  • Fn lock (fn+shift) seems hardware
  • Hardware sound button (on the side) seen by Gnome
  • Power button (on the other side) seen by Gnome

Function buttons that are not OK

  • Brightness (F3 and F4) no effects nor kernel events
  • Microphone mute (F8) no effects nor kernel events
  • Wifi (F11) error in dmesg: atkbd serio0: Unknown key pressed (translated set 2, code 0xf8 on isa0060/serio0).
  • Calendar (F12) error in dmesg: atkbd serio0: Unknown key pressed (translated set 2, code 0x64 on isa0060/serio0).
  • Screen (F13?) error in dmesg: atkbd serio0: Unknown key pressed (translated set 2, code 0x6d on isa0060/serio0).
  • Phone pick up (F14?) error in dmesg: atkbd serio0: Unknown key pressed (translated set 2, code 0x66 on isa0060/serio0).
  • Phone hang up (F15?) error in dmesg: atkbd serio0: Unknown key pressed (translated set 2, code 0x65 on isa0060/serio0).

Other events

  • Rotate the screen more that 180°: error in dmesg atkbd serio0: Unknown key pressed (translated set 2, code 0x85 on isa0060/serio0).

Workarounds

Mapped ctrl+sound to change the screen brightness in Gnome

  • in Gnome Preferences > Devices > Keyboard > new shortcut
  • gdbus call --session --dest org.gnome.SettingsDaemon.Power --object-path /org/gnome/SettingsDaemon/Power --method org.gnome.SettingsDaemon.Power.Screen.StepUp for ctrl+volume_up
  • gdbus call --session --dest org.gnome.SettingsDaemon.Power --object-path /org/gnome/SettingsDaemon/Power --method org.gnome.SettingsDaemon.Power.Screen.StepDown for ctrl+volume_down

Dock

I have a CalDigit USB-C Docking Station

I did the following triple screen setup

  • 1 USB-C 3.1 (computer link)
  • 1 USB-C 3.1 (android phone)
  • 2 USB-A: external hard disk, keyboard, mouse
  • 1 Display port. Warning: if you use an adapter, you need an active adapted, not a passive one (more chips and more expensive)
  • 1 HDMI port
  • 1 Ethernet port: ax88179_178a, Cypress GX3 SuperSpeed to Gigabit Ethernet Controller
  • Audio jacks: 1 input 1 output: USB audio CODEC Burr-Brown from TI

Everything is functional and plug and play.

New Hardware

$ lsusb
Bus 004 Device 004: ID 04b4:3610 Cypress Semiconductor Corp.
Bus 004 Device 003: ID 2188:3313
Bus 004 Device 002: ID 2188:3311
Bus 001 Device 006: ID 04b4:5217 Cypress Semiconductor Corp.
Bus 001 Device 015: ID 2a70:9011
Bus 001 Device 013: ID 24f0:0137
Bus 001 Device 014: ID 192f:0416 Avago Technologies, Pte. ADNS-5700 Optical Mouse Controller (3-button)
Bus 001 Device 012: ID 0409:005a NEC Corp. HighSpeed Hub
Bus 001 Device 011: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 010: ID 059f:1029 LaCie, Ltd 
Bus 001 Device 009: ID 08bb:2912 Texas Instruments 
Bus 001 Device 007: ID 2188:3312  
Bus 001 Device 005: ID 2188:3310  

Error messages to investigates

As extracted from the journalctl log.

ACPI

oct 17 15:54:27 ebg3 kernel: ACPI Error: Field [CAP1] at bit offset/length 64/32 exceeds size of target Buffer (64 bits) (20180531/dsopcode-201)
oct 17 15:54:27 ebg3 kernel: ACPI Error: Method parse/execution failed \_SB._OSC, AE_AML_BUFFER_LIMIT (20180531/psparse-516)

No idea. Buggy ACPI or something ?

WMI

oct 17 15:54:27 ebg3 kernel: acpi PNP0C14:01: duplicate WMI GUID 05901221-D566-11D1-B2F0-00A0C9062910 (first instance was on PNP0C14:00)
oct 17 15:54:27 ebg3 kernel: acpi PNP0C14:02: duplicate WMI GUID 05901221-D566-11D1-B2F0-00A0C9062910 (first instance was on PNP0C14:00)
oct 17 15:54:27 ebg3 kernel: acpi PNP0C14:03: duplicate WMI GUID 05901221-D566-11D1-B2F0-00A0C9062910 (first instance was on PNP0C14:00)

and

oct 17 15:54:27 ebg3 kernel: hp_wmi: query 0x4 returned error 0x5
oct 17 15:54:27 ebg3 kernel: hp_wmi: query 0x4 returned error 0x5
oct 17 15:54:27 ebg3 kernel: hp_wmi: query 0xd returned error 0x5

I also found

oct 18 09:41:55 ebg3 kernel: hp_wmi: Unknown event_id - 131073 - 0x1

These ones might be related to the broken function keys.

Thermal

oct 17 15:54:27 ebg3 kernel: thermal thermal_zone14: failed to read out thermal zone (-61)

No idea

Uvcvideo

oct 17 15:54:27 ebg3 kernel: uvcvideo: Failed to initialize entity for entity 6
oct 17 15:54:27 ebg3 kernel: uvcvideo: Failed to register entites (-22).

and

oct 17 15:54:27 ebg3 kernel: uvcvideo: Found UVC 1.50 device HP Full-HD Camera (04ca:7078)
oct 17 15:54:27 ebg3 kernel: uvcvideo: Unable to create debugfs 1-4 directory.
oct 17 15:54:27 ebg3 kernel: uvcvideo 1-9:1.2: Entity type for entity Extension 10 was not initialized!
oct 17 15:54:27 ebg3 kernel: uvcvideo 1-9:1.2: Entity type for entity Extension 12 was not initialized!
oct 17 15:54:27 ebg3 kernel: uvcvideo 1-9:1.2: Entity type for entity Processing 9 was not initialized!
oct 17 15:54:27 ebg3 kernel: uvcvideo 1-9:1.2: Entity type for entity Camera 11 was not initialized!

No idea, the webcams seems to work correctly. Maybe this is related to the flicking IR camera?

Wacom

oct 17 15:54:27 ebg3 kernel: i2c_hid i2c-WCOM4890:00: failed to set a report to device.
oct 17 15:54:27 ebg3 kernel: wacom 0018:056A:4890.0001: wacom_set_report: ran out of retries (last error = -121)

This should be because the wacom model 056A:4890 is not supported (or because I do not have a stylus). See https://github.com/linuxwacom/input-wacom/wiki/Device-IDs

Touchpad

oct 17 16:19:46 ebg3 /usr/lib/gdm3/gdm-x-session[1015]: (EE) event13 - ALP001C:00 044E:120A Touchpad: kernel bug: Touch jump detected and discarded.
oct 17 16:19:46 ebg3 /usr/lib/gdm3/gdm-x-session[1015]: See https://wayland.freedesktop.org/libinput/doc/1.12.1/touchpad-jumping-cursors.html for details

Seems to appear when the touchpad is stuck in "two fingers scroll mode".