HP EliteBook 840 G1

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Tango-edit-clear.pngThis article or section does not follow the Laptop page guidelines.Tango-edit-clear.png

Reason: Stub (Discuss in Talk:HP EliteBook 840 G1)
Hardware PCI/USB ID Working?
GPU (Intel) Yes
GPU (AMD) Yes
Ethernet Yes
Wireless Yes
Bluetooth Yes
Audio Yes
Touchpad Yes
Webcam Yes
Fingerprint reader Yes
Memory card reader Yes
Smart card reader Yes

Configuration

UEFI Setup

Note: Make sure you have the latest HP UEFI firmware installed.

Even if UEFI, Arch Linux and (e.g.) GRUB are correctly configured and with the correct UEFI NVRAM variables set, the system will not boot from the HDD/SSD. The problem is that HP hard coded the paths for the OS boot manager in their UEFI boot manager to \EFI\Microsoft\Boot\bootmgfw.efi to boot Microsoft Windows, regardless of how the UEFI NVRAM variables are changed. There are two workarounds:

Using the "Customized Boot" path option (recommended)

The latest HP firmware allows defining a “Customized Boot” path in the UEFI pre-boot graphical environment. Select the “Customized Boot” option in the UEFI pre-boot graphical environment under “Boot Options” and set the path to your OS boot loader on the ESP (see EFI system partition), e.g.:

\EFI\grub\grubx64.efi

Always verify the correct path to the .efi file. Also, adjust the device boot order (also in the UEFI pre-boot graphical environment) to boot this entry first.

Change the OS boot loader path to match the hard coded path

Warning: If you are trying to boot on a the mSATA port (m.2 SSD), this is the only working method.
Warning: This method is not recommended, as it will create conflicts in a dual boot setup with Microsoft Windows. Also, everytime you install GRUB, you have to remember to copy it to the hard coded path.

Change the UEFI application path of the OS boot loader to that hard coded path. On your ESP (see EFI system partition; e.g. with the $MOUNTPOINT /boot/efi), do (e.g. with GRUB entry grub_archlinux):

 # mkdir -p $MOUNTPOINT/EFI/Microsoft/Boot
 # cp $MOUNTPOINT/EFI/grub/grubx64.efi $MOUNTPOINT/EFI/Microsoft/Boot/bootmgfw.efi

or

 # mkdir -p $MOUNTPOINT/EFI/Boot
 # cp $MOUNTPOINT/EFI/grub/grubx64.efi $MOUNTPOINT/EFI/Boot/Bootx64.efi

Encryption

This notebook supports HDD FDE (SED). The HDD/SSD can be locked by setting a password in the UEFI pre-boot graphical environment under the option "DriveLock" (this requires setting a password for the UEFI pre-boot graphical environment first). If you replace the HDD/SSD, make sure to get a compatible one to make use of this feature.

Otherwise, see Disk encryption for software-based encryption.

AMD Graphics

In order to get the dedicated AMD graphics card to function properly, install AMDGPU first. Set the following kernel parameters: amdgpu.si_support=1 radeon.si_support=0.

Now, any application run with DRI_PRIME (as described for using PRIME) is using the dedicated GPU.

Audio

For HDMI Audio you need CONFIG_INTEL_IOMMU_DEFAULT_ON=n in your kernel config (see https://bugzilla.kernel.org/show_bug.cgi?id=61471). In some cases, you will need options snd-hda-intel enable=1,1,0 in /etc/modprobe.d/snd-hda-intel.conf. This will prevent freezes caused by hdmi audio cards conflicting.

Wireless

Set CONFIG_HP_WIRELESS=y in your kernel config to enable the hardware button (Linux 3.14+).

Resume / wake on lid open

This feature needs to be enabled in the bios / uefi setup: Advanced > Built-in device options > Wake unit from sleep when lid is opened

Enable the microphone muting key

If your mute mic key (fn+F8) does not work, you actually just need to remap this key manually.

Here is an example of how you can do this by adding a custom mapping file:

/etc/udev/hwdb.d/61-hp-mic-mute-hotkey.hwdb
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*EliteBook*:pvr*
 KEYBOARD_KEY_81=f20                          # Fn+F8 on Elitebook, map to F20
Warning: It is strongly recommended to understand scancodes to keycodes mapping before doing this.

Then, you just need to regenerate and reload your hwdb.bin file:

# systemd-hwdb update
# udevadm trigger
Note: This also work for the HP EliteBook 840 G2 and the EliteBook 820 series.

See also