HP EliteBook 2570p

HardwarePCI/USB IDWorking?
TouchpadYes
PointstickYes
KeyboardYes
VideoYes
WebcamYes
EthernetYes
Bluetooth0a5c:21e1Partial
Card readerYes
AudioYes
WirelessYes
Mobile broadband03f0:371dYes
GPSYes
Fingerprint readerNo

Bluetooth

The integrated Bluetooth device seems a bit buggy as a few random disconnects were observed in combination with some BT4.0 devices. One possible way to circumvent this is to replace the integrated Wi-Fi card with Wi-Fi+BT combo one such as Intel® Centrino® Advanced-N 6235 or similar (later 2570p BIOS-es should have WLAN whitelisting removed) and then connecting the Bluetooth interface of the card to the pins used by the docking connector. This is necessary as this laptop has no USB pins connected on the WLAN miniPCIe interface and the user also benefits from the Intel® Centrino® Advanced-N 6235's improved power efficiency over 6205.

Power management

The following kernel parameters can be enabled to provide additional power management for Intel graphics. However, some of them are experimental on Ivy Bridge hardware and can lead to problems.

i915.i915_enable_fbc=1
drm.vblankoffdelay=1

This laptop has ASPM disabled by default and even later versions of BIOS do not provide any options for enabling it. As this feature improves battery life for around 25%, it is a very useful one to have. It is possible to forcibly enable ASPM by using GRUB to write the proper bits to the configuration registers before the kernel is executed. The easiest way is to add the following to the /etc/grub.d/01_enable-aspm:

/etc/grub.d/01_enable-aspm
#! /bin/sh
set -e

prefix="/usr"
exec_prefix="/usr"
datarootdir="/usr/share"

. "${datarootdir}/grub/grub-mkconfig_lib"

export TEXTDOMAIN=grub
export TEXTDOMAINDIR="${datarootdir}/locale"

# HP EliteBook 2570p ASPM hardware enable
echo "write_byte 0xB9CF506D 0x03" # Enable in ACPI FADT/FACP (BIOS F.40-)
echo "write_byte 0xB9FFC06D 0x03" # Enable in ACPI FADT/FACP (BIOS F.40+)
echo "write_byte 0xB9FFC019 0x10" # Correct checksum

If ASPM has been successfully enabled, there will be no complaints from running dmesg | grep ASPM as root. Forcing ASPM in software with pcie_aspm=force kernel parameter is not needed, however ASPM still needs to be enabled for every PCI device after the kernel is booted. This can be done by a startup script and its contents should be:

# HP EliteBook 2570p ASPM hardware enable
setpci -s "00:1c.0" "50.b=0x43" # PCI Express Root Port 1
setpci -s "00:1c.1" "50.b=0x43" # ExpressCard (alternatively 50.b=0x03)
setpci -s "00:1c.2" "50.b=0x43" # PCI Express Root Port 3
setpci -s "00:1c.3" "50.b=0x43" # PCI Express Root Port 4
setpci -s "02:00.0" "90.b=0x43" # SD/MMC Host Controller
setpci -s "02:00.2" "90.b=0x43" # SD Host Controller
setpci -s "03:00.0" "f0.b=0x43" # Network controller

Some of the lines are commented out because ASPM does not work properly with some WLAN cards (Intel® Centrino® Advanced-N 6235 for example), causing the kernel to not detect the card after some time (a reboot is needed). The final check if everything is set up correctly can be performed after a reboot by running lspci -vv | grep ASPM.*abled\; (as root).

gollark: Haskell would call them both types with different kinds, I think.
gollark: Go does not like abstraction.
gollark: Because lol no generics...
gollark: Only builtins get to be generic.
gollark: It can't not be because lol no generics, you see.

See also

This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.