Debian GNU/Linux on HP ProBook 4520s

About Debian GNU/Linux on HP ProBook 4520s
Introduction

This page was created to gather and publish some information about using Debian GNU/Linux on the HP ProBook 4520s laptop. It tries to summarize the compatibility of the laptop variant I own with Debian, but there are quite a lot of other variants of this notebook and their hardware specifications may differ slightly.

Why I've chosen this laptop

I was looking for a new notebook of sufficient quality that could be used with my favourite operating system, Debian GNU/Linux. I wasn't able to find any summarized information about the compatibility of the HP ProBook 4520s laptop with Debian or generally Linux before I bought it. However, this laptop was a very good candidate for the compatibility with Debian, because it was sold with the Suse Linux Enterprise Desktop 11 operating system. This doesn't automatically mean that all its devices should be also supported by the Debian stable release, because the stable Debian contains only well tested and therefore also not the latest software. But luckily, Suse with SP1 uses the 2.6.32 Linux kernel according to the Suse home page as does the Debian release squeeze (the stable release at the time of this writing) and it can be therefore supposed that all or most devices work on squeeze too, even if some packages such as non-free firmware files might need to be installed from the non-free section of the Debian archive. I tried to find more info about the compatibility with Linux for each device individually before I bought the laptop, but I wasn't successful for maybe half of the devices because I didn't know the exact hardware specification. Moreover, there are more variants of this laptop whose specifications may differ slightly.

Hardware specification and compatibility with Debian squeeze
Quick specification
typeHP ProBook 4520s(XX752EA)
   
processorIntel Core i3 380Mworks fine
memory4GB DDR3 SDRAMworks fine
hard diskSamsung HM641JIworks fine
DVD-RW driveHP DVDRAM GT31Lworks fine
video adapterAMD/ATI Radeon HD 6370Mworks fine
sound cardIntel High Definition Audioworks fine
HDMI sound cardAMD/ATI HDMI Audionot tested
Ethernet cardRealtek RTL8111/8168Bworks fine
wireless cardBroadcom BCM4313works fine
BluetoothBroadcom BCM2070not tested
modemunknown modemno driver available
webcamHP/Foxlink Webcamnot tested
touchpadSynaptics Touchpadworks after adding options to the psmouse kernel module, the middle button can be emulated
   
ports3xUSB 2.0work fine
 eSATA/USB 2.0 ComboUSB works fine, eSATA not tested
 VGAnot tested
 HDMInot tested
 stereo microphone inworks fine
 stereo headphone/line-outworks fine
 RJ-45works fine
 RJ-11works fine
 AC powerworks fine
   
slotsExpress card/34not tested
 Media card readerworks fine
Processor

Intel Core i3 380M
2533 MHz
3MB L3 cache
2 cores, 4 threads (HT alias hyper-threading enabled)
64-bit support (EM64T extension also called as Intel 64)
Enhanced Intel Speedstep
Hardware virtualization VT-x

The processor should be used on a 64-bit operating system such as is Debian on the amd64 port, but it is also compatible with the older 32-bit architecture denoted as i386 on Debian. The default Debian squeeze 2.6.32 kernel is a SMP enabled kernel and the processor chip is therefore correctly detected as 4 CPUs (2 cores and each core has 2 threads that appear as separate CPUs to the operating system). If you want to use the Enhanced Intel Speedstep technology that is implemented by the cpufreq subsystem, you need to include the acpi-cpufreq driver module and also some governor. I'm using the conservative governor that gradually changes the CPU frequency depending on the CPU load. This governor is fully implemented in the kernel by the cpufreq-conservative module. If you install the cpufrequtils package, the cpufreq modules are loaded automatically and the default governor is set to ondemand. If you want to change it to conservative, add the following line into the file /etc/default/cpufrequtils:

  • GOVERNOR=conservative
Memory

4GB DDR3 SDRAM
1066 MHz

There's no problem with the memory on the 64-bit amd64 Debian architecture, the whole 4GB are detected and can therefore be used. However, if you want to use the older 32-bit i386 Debian architecture for some reason, only 3GB are detected even if the theoretical maximal amount of physical memory on the 32-bit machine is exactly 4GB. If you want to use the whole RAM, you need to install new kernel package with the bigmem suffix that has PAE enabled (e.g. linux-image-2.6-686-bigmem) or build your own kernel with PAE.

Hard disk

Samsung HM641JI
640GB
SATA II
5400 rpm
512 bytes per sector

kernel driver module: ahci

The disk is able to operate in both IDE (PATA) or AHCI (SATA) mode depending on the SATA mode settings in the BIOS. If you use the newer AHCI SATA mode (the default) during installation, everything works automatically. If you use the IDE mode during installation, everything works automatically too until you decide to change the SATA mode settings to AHCI later. You need to ensure before changing the SATA mode in the BIOS that the ahci module is included in initrd so that it can be loaded during the boot phase and the root file system can be mounted. This means that you must boot the system in the IDE mode firstly, edit /etc/initramfs-tools/modules so that it includes ahci:

  • ahci

And run update-initramfs in order to update the initrd image:

  • update-initramfs -k all -u

You can reboot and change the SATA mode to AHCI in the BIOS after that.

DVD-RW drive

HP DVDRAM GT31L

kernel driver module: ahci

Both IDE (PATA) and AHCI (SATA) modes as in the case of the hard disk are supported.

Video adapter

AMD/ATI Radeon HD 6370M
VGA compatible controller: ATI Technologies Inc Robson CE [AMD Radeon HD 6300 Series]
chipset CEDAR (0x68e4)
1024MB

kernel driver module: radeon
Xorg driver module: radeon

The video card can be used with the radeon video driver that is part of Xorg and it works also with the generic VESA video driver vesa. There's also a proprietary binary-only fglrx driver in the non-free section of the Debian archive which supports among other things 3D acceleration. If you don't install fglrx and let Xorg to autodetect all drivers (i.e. don't create a customized configuration file, e.g. /etc/X11/xorg.conf), the radeon video driver is used as a default.

An interesting thing is that the processor contains also an integrated graphics Intel HD Graphics, but you can check in the Xorg log that it isn't used by default. If you want to do that then firstly find out the bus id of the ATI card by running lspci. Find the proper line containing your video adapter and look into the first column. The string there is the bus id of the adapter. Then simply check your Xorg log file /var/log/Xorg.?.log, it should contain a line like this:

  • (II) Primary Device is: PCI 01@00:00:0

The string 01@00:00:0 should correspond to the bus id of the ATI card found out from the lspci output which was 01:00.0 in my case.

Sound card

Intel High Definition Audio
Intel Corporation 5 Series/3400 Series Chipset High Definition Audio
chip IDT 92HD81B1X5

kernel driver module: snd-hda-intel

This card is an on-board Intel sound card that can be used to output audio to the built-in speakers or to the stereo-jack connector. The card works without problems with ALSA, but the audio mixer should be adjusted before usage so that you can hear any sound. This operation cannot be done by alsamixer, where the PCM2 channel is missing. You can either increase the level of this channel by installing and running aumix, which uses the older OSS and allows to set all the necessary channels including PCM2, or preferably by invoking:

  • alsactl init
HDMI sound card

AMD/ATI HDMI Audio
ATI Technologies Inc Manhattan HDMI Audio
chip ATI R6xx HDMI

kernel driver module: snd-hda-intel

This sound card is integrated into the video adapter and can be used to output digital audio (together with digital video) to the HDMI connector. It is detected and shown by ALSA, but I haven't tested it because I don't own any HDMI capable equipment.

Ethernet card

Realtek RTL8111/8168B
10/100/1000 Mbps

kernel driver module: r8169

This card requires one non-free firmware package firmware-realtek to be installed. It operates even without the package, but the dmesg log contains the firmware request. The kernel module must be reinserted or the machine restarted so that the kernel loads the firmware.

Wireless card

Broadcom BCM4313
IEEE 802.11 b/g/n

kernel driver module: wl

There're more kernel driver modules for this adapter. An open source brcm80211 module which requires non-free firmware package firmware-brcm80211 and a proprietary wl module which contains its firmware.

The brcm80211 driver worked for me after installation, but it lost connection sometimes and the network interface must have been reconfigured to gain connection again. I therefore used external USB wifi card instead. However, I found out after some time that the integrated Broadcom wifi doesn't work anymore on an up-to-date squeeze, the whole machine froze and had to be restarted when I tried to configure the adapter. The reason could have been that the kernel was upgraded a few times during the time I was using only the external card and that some new problem with this wifi card driver occurred in the upgraded kernel.

I was therefore looking for a solution and I found out that there's also a proprietary wl driver module. This module must be compiled from its non-free source code, but it's luckily part of the non-free section of the Debian archive and its installation is simple.

  • apt-get update
  • apt-get install module-assistant wireless-tools
  • m-a a-i broadcom-sta
  • echo >>/etc/modprobe.d/blacklist.conf
  • echo "# don't use brcm80211 driver, but the proprietary wl driver instead" >>/etc/modprobe.d/blacklist.conf
  • echo blacklist brcm80211 >>/etc/modprobe.d/blacklist.conf
  • update-initramfs -u -k $(uname -r)
  • modprobe -r brcm80211
  • modprobe wl

This driver works fine for me on squeeze.

Bluetooth

Broadcom BCM2070

kernel driver module: btusb

The card is detected by the kernel and the module is loaded as a driver, the lsusb command displays this device, but I haven't tested it because I don't have any equipment using this wireless technology.

Modem

unknown modem

kernel driver module: not available

The modem is neither detected by the kernel nor shown by lspci. I therefore don't know its type. There is a driver for the 2.6.32 kernel for Suse Linux that can be downloaded from the HP home page, but I don't know about any general Linux driver or a driver for Debian.

Webcam

HP/Foxlink Webcam

kernel driver module: uvcvideo

The same applies as in the case of Bluetooth. The device is detected, the kernel module is loaded and the device is shown by lsusb -v, but I haven't tested this device and I doubt I'll ever need it.

Touchpad

Synaptics Touchpad

kernel driver module: psmouse

The right click works by default in the same way as if the left button was pressed. This is most probably a kernel problem because it exists in more Linux distributions and there is a patch for the psmouse kernel module that fixes this problem using dkms for a specific Ubuntu kernel according to the following Ubuntu forum article. I haven't found any patch for Debian, but I luckily solved this issue differently. It's sufficient to reload the psmouse kernel module with the following options:

  • modprobe -r psmouse
  • modprobe psmouse proto=imps

The right touchpad button should start working after that. You also need to create a configuration file in /etc/modprobe.d, so that your settings survive reboot. You can name the file for instance touchpad.conf:

  • options psmouse proto=imps

I still had problems with emulating the middle button press. I therefore installed the mouseemu package and emulated the right and middle button clicks by pressing two separate keys - F11 and F12. The configuration of the mouseemu package was simple, it was necessary to edit only the file /etc/default/mouseemu:

  • MID_CLICK="-middle 0 87" # F11 without modifier
  • RIGHT_CLICK="-right 0 88" # F12 without modifier

And restart the mouseemu daemon:

  • /etc/init.d/mouseemu restart
Ports

3x USB 2.0
eSATA/USB 2.0 Combo
VGA
HDMI
stereo microphone in
stereo headphone/line-out
RJ-45
RJ-11
AC power

The USB, USB Combo, microphone, headphone/line-out, RJ-45 and AC power ports work as they should. I haven't tested eSATA, VGA and HDMI ports because of lacking appropriate hardware and I can't test RJ-11 port without the modem driver.

Slots

Express card/34
Media card reader

The media card reader works fine. I don't have any hardware to the express card slot.

Summary of the compatibility with Debian squeeze

I concluded that all the devices I needed were working on my laptop under Debian squeeze, but I had to solve some problems with the touchpad and the wifi card.

The right touchpad button didn't work until I passed some options to the psmouse kernel module. I still wasn't able to emulate the middle button click and I therefore installed the mouseemu package and emulated the right and middle button clicks by pressing two separate keys.

The integrated wifi card lost connection sometimes and had to be reconfigured to gain connection again if the default open source driver was used. After a few kernel upgrades the driver stopped working totally. However, it was also possible to use a proprietary driver which solved the problem.

I haven't configured Bluetooth because I don't have any equipment using this wireless technology, but the kernel probably has the driver because it initializes the device and loads some module. The same applies for the webcam. The kernel loads a module as a driver, but I haven't configured this device and I doubt I will ever need this piece of hardware. There're two more devices I haven't tried. A HDMI sound card and a modem. The former isn't the standard on-board sound card which works fine, but another card integrated into the video adapter which serves to send digital audio together with digital video to HDMI port. The card is detected and shown by ALSA, but I unfortunately don't have any HDMI capable equipment to try it. There should be a modem in this laptop, but it is neither shown nor detected. There's no driver for Debian or generally for Linux that I know about.

All other devices including the processor, memory, hard disk, DVD-RW drive, video adapter, sound card and Ethernet and wireless cards are working fine. I have also successfully tested USB, USB Combo, microphone, headphone/line-out, RJ-45 and AC power ports and the media card reader slot. However, I haven't tested eSATA Combo, VGA, HDMI and RJ-11 ports and the Express card slot.

 

Inserted: 2015-12-24 21:12:00
Last updated: 2015-12-24 21:12:00