Linux on HP nc6320

This is supposed to be a list of problem I've encountered with this laptop and how I solved them. The intended audience is power-users, I won't mention useless details...

My disto is Gentoo but all the stuff mentioned here should be distribution-agnostic.

GoogleAd()

Intel Enhanced SpeedStep (frequency scaling) not working

This was caused by a firmware bug. The F08 version was not exporting the correct ACPI symbols and the kernel didn't know the CPU supports SpeedStep.

Solved by upgrading to version F09. Version F06 is known to be working, too.

Conslusion: Think twice before upgrading to F08 and try to skip this version whenever possible.

Frequency scaling is working, but the CPU never goes to 1.83GHz

Right after I've flashed the BIOS to solve the above problem, I've found that even when the governor is set to ondemand and frequency limit is set to 1.83GHz (with lower limit set to 1.00GHz), the CPU never raises the frequency above 1.33GHz.

I've solved this weirdness by setting both the minimum and maximum frequency to 1.83GHz (to force the frequency switch) and then set it back to desired values (min: 1.00GHz, max: 1.83GHz) and everything started to work.

Be sure to set this on both cores.

/usr/bin/cpufreq-set -c 0 -d 1.83GHz -u 1.83GHz -g ondemand
/usr/bin/cpufreq-set -c 1 -d 1.83GHz -u 1.83GHz -g ondemand

/usr/bin/cpufreq-set -c 0 -d 1GHz -u 1.83GHz -g ondemand
/usr/bin/cpufreq-set -c 1 -d 1GHz -u 1.83GHz -g ondemand

GoogleAd()

Wi-fi doesn't associate automatically even when ESSID is set to "any"


/!\ Edit conflict - other version:


This is different from the previous HP laptop I had (which had ipw2200 wireless). You have to specify associate=1 as a parameter when loading the ipw3945 module.


/!\ Edit conflict - your version:


This is different from the previous HP laptop I had (which had ipw2200 wireless). You have to specify associate=1 as a parameter when loading the ipw3945 module.


/!\ End of edit conflict


modprobe ipw3945 associate=1

Note you need the Intel's f.cking binary blob (regulatory daemon) to make wireless work.

Integrated card reader doesn't work


/!\ Edit conflict - other version:


The Texas Instruments card reader works almost fine with the in-kernel driver (sdhci) but you have to exec the following command to make it work.


/!\ Edit conflict - your version:


The Texas Instruments card reader works almost fine with the in-kernel driver (sdhci) but you have to exec the following command to make it work.


/!\ End of edit conflict


/usr/sbin/setpci -s 02:06.2 4c=0x22

I don't know what it does exactly but I've found it somewhere on the net. If you don't issue this, card reader gets detected but ignores events (card inserted, etc.) which makes it quite useless.


/!\ Edit conflict - other version:


Note: The PCI number may differ, just use lspci to find the "Texas Instruments 5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD)".

GoogleAd()


/!\ Edit conflict - your version:


Note: The PCI number may differ, just use lspci to find the "Texas Instruments 5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD)".

GoogleAd()


/!\ End of edit conflict