HP EliteBook 840 G1

From Gentoo Wiki
Jump to:navigation Jump to:search

This article written on HP EliteBook 840 G1 (D8R82AV variant).

Hardware

Standard

Device Make/model Status Vendor ID / Product ID Kernel driver(s) Kernel version Notes
Video card Intel Corporation Haswell-ULT Integrated Graphics Controller (HD4400)(rev 0b) Works 8086:0a16 i915 N/A
Ethernet controller Intel Corporation Ethernet Connection I218-LM (rev 04) Works 8086:155a e1000e N/A
Wireless network controller Intel Corporation Wireless 7260 (rev 73) Works 8086:08b1 iwlwifi N/A Interface modes other than managed not tested.
Bluetooth N/A Works 8087:07dc btusb N/A
Web Camera Chicony Electronics Co., Ltd HP HD Camera Works 04f2:b3ed uvcvideo N/A

Detailed information

root #lspci -nn
root #lsusb

Installation

FILE /etc/portage/package.use/00input
*/* INPUT_DEVICES: libinput
FILE /etc/portage/package.use/00video
*/* VIDEO_CARDS: -* i915 intel radeon radeonsi

Firmware

root #emerge --ask sys-kernel/linux-firmware

Kernel

KERNEL NVME block device
Device Drivers  --->
       NVME Support  --->
      <*> NVM Express block device
KERNEL Ethernet controller
Generic Driver Options  --->
   [*] Network device support  ---
      [*]   Ethernet driver support  --->
         [*]   Intel devices
         <M>     Intel(R) PRO/1000 PCI-Express Gigabit Ethernet support
KERNEL Wireless network controller
Generic Driver Options  --->
   [*] Network device support  ---
      [*]   Wireless LAN  --->
         [*]   Intel devices
         <M>     Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi)
         <M>       Intel Wireless WiFi MVM Firmware support
KERNEL Bluetooth device
Networking Support  --->
   <*> Bluetooth subsystem support  --->
      <*>   Bluetooth device drivers  --->
         <M>   HCI USB driver  --->
KERNEL Trackpad
Devices Drivers  --->
   Input device support  --->
      [*]   Mice  --->
         <M>   PS/2 mouse
      <M>   Synaptics RMI4 bus support
      <M>     RMI4 SMB Support
      [*]     RMI4 Function 03 (PS2 Guest)
      [*]     RMI4 Function 11 (2D pointing)
      [*]     RMI4 Function 12 (2D pointing)
      [*]     RMI4 Function 30 (GPIO LED)
      [*]     RMI4 Function 34 (Device reflash)
      [*]     RMI4 Function 3A (GPIO)
      [*]     RMI4 Function 54 (Analog diagnostics)
KERNEL Audio device
Device Drivers  --->
   <*> Sound card support  --->
      <*>   Advanced Linux Sound Architecture  --->
         [*]   PCI sound devices  --->
                  <M>   Intel/SiS/nVidia/AMD/ALi AC97 Controller
               HD-Audio  --->
                  <M> HD Audio PCI
                  <M> Build IDT/Sigmatel HD-audio codec support
                  <M> Build HDMI/DisplayPort HD-audio codec support
KERNEL Webcam device
Device Drivers  --->
   <*> Multimedia support  --->
          Media Device Types  --->
             [*] Cameras and video grabbers
          Media drivers  -->
             [*] Media USB Adapters  --->
                 <M>   USB Video Class (UVC)

Configuration

ACPI events

Install the ACPI daemon:

root #emerge --ask sys-power/acpid

Lid

FILE /etc/acpi/default.sh
case "$group" in
  button)
    case "$action" in
      ...
      # handle lid close
      lid)
        if grep -q closed /proc/acpi/button/lid/LID/state
        then
          systemctl suspend
        fi
      ;;
      ...

AC Adapter

FILE /etc/acpi/default.sh
case "$group" in
  ...
  ac_adapter)
    case "$value" in
      # Action on unplug AC power
      *0)
        cpupower frequecy-set -g powersave
        echo 300 > /sys/class/backlight/intel_backlight/brightness
        ;;

      # Action on plug AC Power
      *1)
        cpupower frequency-set -g performance
        echo 937 > /sys/class/backlight/intel_backlight/brightness
        ;;

      *) log_unhandled $* ;;
    esac
    ;;
    ...

Complete configuration

FILE /etc/acpi/default.sh
#!/bin/sh
# /etc/acpi/default.sh
# Default acpi script that takes an entry for all actions

set $*

group=${1%%/*}
action=${1#*/}
device=$2
id=$3
value=$4

log_unhandled() {
	logger "ACPI event unhandled: $*"
}

case "$group" in
  button)
    case "$action" in
      power)
        /etc/acpi/actions/powerbtn.sh
      ;;
      # avoid mute key (fn+f8) to log unhandled
      mute);;
      f20);;
      # handle lid close
      lid)
        if grep -q closed /proc/acpi/button/lid/LID/state
        then
          systemctl suspend
        fi
      ;;
      # (fn+f6)
      volumedown);;
      # (fn+f7)
      volumeup);;
      # arrow keys
      up);;
      down);;
      left);;
      right);;
      # log unhandled actions
      *)
        log_unhandled $* ;;
    esac
    ;;

  ac_adapter)
    case "$value" in
      # Action on unplug AC power
      *0)
        cpupower frequency-set -g powersave
        echo 300 > /sys/class/backlight/intel_backlight/brightness
        ;;

      # Action on plug AC Power
      *1)
        cpupower frequency-set -g performance
        echo 937 > /sys/class/backlight/intel_backlight/brightness
        ;;

      *) log_unhandled $* ;;
    esac
    ;;
  battery) ;;
  video)
    case "$action" in
      # (fn+f4)
      switchmode) ;;
      # (fn+f8)
      brightnessdown) ;;
      # (fn+f9)
      brightnessup) ;;
      *) log_unhandled $* ;;
    esac
    ;;
  *)	log_unhandled $* ;;
esac