Linux on HP nx6310
I recently bought an HP nx6310 (EY372ET) business laptop and successfully installed Debian GNU/Linux on it. Here's the way I proceeded. Please stay tuned and check for updates from time to time, because I'm still doing some adjustments.
You should also have a look at the comments below the text, as they contain additional information that may help getting along with the laptop.
Summary
| Intel Corporation 82801GBM/GHM (ICH7 Family) SATA Storage Controller AHCI | |
| Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller | |
| Intel Corporation Mobile 945GM/GMS/940GML Graphics Controller | |
| Broadcom Corporation BCM4401-B0 100Base-TX | |
| Intel Corporation PRO/Wireless 3945ABG | |
| Intel Corporation 82801G (ICH7 Family) HD Audio Controller | |
| Synaptics Touchpad | |
| CPU Frequency Scaling | |
| Texas Instruments PCIxx12 OHCI Compliant IEEE 1394 Host Controller | |
| Texas Instruments PCIxx12 Cardbus Controller | |
| ACPI sleep states (Suspend-to-Disk, Suspend-to-RAM) | |
| Bluetooth | |
| Modem |
green: works; blue: seems to work, but untested; yellow: doesn't work yet)
Output of lspci
00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express Memory Controller Hub (rev 03) 00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller (rev 03) 00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller (rev 03) 00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 01) 00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 01) 00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 01) 00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 01) 00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 01) 00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 01) 00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 01) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e1) 00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 01) 00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 01) 00:1f.2 SATA controller: Intel Corporation 82801GBM/GHM (ICH7 Family) Serial ATA Storage Controller AHCI (rev 01) 02:06.0 CardBus bridge: Texas Instruments PCIxx12 Cardbus Controller 02:06.1 FireWire (IEEE 1394): Texas Instruments PCIxx12 OHCI Compliant IEEE 1394 Host Controller 02:0e.0 Ethernet controller: Broadcom Corporation BCM4401-B0 100Base-TX (rev 02) 08:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02)
Installation
As my Sarge CD set didn't feel like detecting the internal SATA IDE controller, I downloaded the Debian Etch Beta 3 NetInstall CD and tried a standard installation without any boot parameters. Luckily, the setup procedure now passed perfectly without any incidents.
Kernel
After the setup, I downloaded the Linux 2.6.18 tarball from Kernel.org and configured it like this. The most important options are the following:
Processor type and features --->
[*] Symmetric multi-processing support
Subarchitecture Type (PC-compatible)
Processor family (Pentium M)
...
[*] Multi-core scheduler support
...
[*] Enable kernel irq balancing
...
Power management options (ACPI, APM) --->
[*] Legacy Power Management API
ACPI Support --->
[*] ACPI Support
...
APM BIOS support --->
[ ] APM BIOS support
...
Bus options (PCI, PCMCIA, EISA, MCA, ISA) --->
[*] PCI support
PCI access mode (Any) --->
[*] PCI Express support
PCCARD (PCMCIA/CardBus) support --->
[M] PCCard support
[M] 16-bit PCMCIA support
...
[M] CardBus yenta-compatible bridge support
Networking --->
...
[ ] Generic IEEE 802.11 Networking Stack
(Note: We build this in a separate step)
Device Drivers --->
Generic Driver Options --->
[*] Select only drivers that don't need ...
[*] Prevent firmware from being built
[M] Userspace firmware loading support
ATA/ATAPI/MFM/RLL support --->
[*] ATA/ATAPI/MFM/RLL support
[*] Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
[*] Include IDE/ATA-2 DISK support
[*] Include IDE/ATAPI CDROM support
[*] PCI IDE chipset support
[*] Sharing PCI IDE interrupts support
[*] Generic PCI bus-master DMA support
[*] Use PCI DMA by default when available
...
[*] Intel PIIXn chipsets support
...
SCSI device support --->
[*] SCSI device support
[*] SCSI disk support
...
SCSI low-level drivers --->
[*] Serial ATA (SATA) support
[*] AHCI SATA support
[*] Intel PIIX/ICH SATA support
IEEE 1394 (FireWire) support --->
[M] IEEE 1394 (FireWire) support
[M] OHCI-1394 support
...
Network device support --->
[*] Network device support
Ethernet (10 or 100Mbit) --->
[*] Ethernet (10 or 100Mbit)
[*] EISA, VLB, PCI and on board controllers
[M] Broadcom 4400 ethernet support
Wireless LAN (non-hamradio) --->
[*] Wireless LAN drivers & Wireless Extensions
Input device support --->
[*] Event interface
[*] Mouse --->
[M] PS/2 mouse
Character devices --->
...
[M] /dev/agpgart (AGP Support)
[M] Intel 440LX/BX/GX, I8xx and E7x05 chipset support
[M] Direct Rendering Manager
[M] Intel 830M, 845G, 852GM, 855GM, 865G
[M] i915 driver
Graphics support --->
[*] Enable firmware EDID
[*] Support for frame buffer devices
[*] Enable Video Mode Handling Helpers
[*] Enable Tile Blitting Support
[*] VESA VGA graphics support
Console display driver support --->
[*] Video mode selection support
[*] Framebuffer Console support
Logo configuration --->
[*] Bootup logo
[*] Standard 224-color Linux logo
[*] Backlight & LCD device support
Sound --->
[*] Sound card support
Advanced Linux Sound Architecture --->
[M] Advanced Linux Sound Architecture
...
PCI devices --->
[M] Intel HD Audio
Open Sound System --->
[ ] Open Sound System
USB support --->
[*] Support for Host-side USB
[M] EHCI HCD (USB 2.0) support
[M] UHCI HCD (most Intel and VIA) support
...
A thing I couldn't get to work is the Bluetooth adapter, but I heard from other people having success with it, so I'll go on trying. The same applies to the modem.
Bluetooth
UPDATE: Some time ago, I received an e-mail from Hans Marberg, explaining how to set up the Bluetooth adapter (thank you very much!). I tried it, but it didn't work for me: After loading the .inf file with ndiswrapper, it stated that no hardware was present, although I'm really sure it's the correct driver for my chip. As it might work for you, here's the complete message (with some additional formatting).
The file btwusb.inf can be found at the HP website in the driver/software download section for the nx6310. The package is called "Software Support for HP Integrated Module with Bluetooth Wireless Technology" (sic!) and can be extracted with WINE (or 7zip, see the comment section).
From: Hans Marberg <hmarberg@XXXXXXXXX> Date: Sat, 25 Nov 2006 11:27:36 -0800 (PST) To: erik@diozaka.org Subject: bluetooth on nx6310 Hi Eric, Thanks for your page on the nx6310 which helped me a lot in getting the computer bought. I must say that I am fully satisfied with it running Mandriva 2007 on it. I can tell you a bit on how you can try to set up the bluetooth stuff. Basically I need it to get connected to the internet using a mobile phone. To get it up and running you need to do the folowing: # ndiswrapper -i btwusb.inf Check with # ndiswrappwer -l that you get the line btwusb driver installed, hardware present If you do not see this you might have a different hardware. If you haven't added ndiswrapper to the kernel use # modprobe ndiswrapper Get the packages bluez-utils and bluez-pin So then startup # service bluetooth start Setup your bluetooth device hci0 using the attached hcid.conf (link) then start the device using the following commands # hciconfig hci0 down # hciconfig hci0 up Thats very important - seams that at startup the driver gets somewhat stuck (strange /var/log/syslog entries) Then check with # hciconfig You should see some lines with hci0. Now get some other bluetooth device and use # hcitool scan Hope this information is of value for you, so please feel free to add it to your page. If you get the modem up and running that would be great. Would need it from time to time to send some faxes.... as old fashioned communication will never die.... Cheers Hans
CPU Frequency Scaling
UPDATE: Version F.0B of the BIOS finally allows CPU frequency scaling! You can download the firmware update package (if you do not have a Windows partition on your laptop like me, choose the FreeDOS version) at the HP website and run the setup with wine. Now, you can take the bootable CD image from your wine directory (probably ~/.wine/drive_c/) C:\SWSetup\sp34308\ISO\rom.iso and burn it with your favourite burning tool. Alternatively, you can run FirmwareUpdate.exe from the SWSetup/ directory and follow the installation steps. After rebooting with the CD inserted, the updating tool should start up.
After the update, you have to load the modules acpi_cpufreq and
cpufreq_userspace (add them to your kernel config, if you haven't
done so, yet) and install the cpufrequtils package with aptitude. The following
commands should work now:
$ cpufreq-info
cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006
Report errors and bugs to linux@brodo.de, please.
analyzing CPU 0:
driver: acpi-cpufreq
CPUs which need to switch frequency at the same time: 0 1
hardware limits: 1000 MHz - 1.67 GHz
available frequency steps: 1.67 GHz, 1.33 GHz, 1000 MHz
available cpufreq governors: userspace, performance
current policy: frequency should be within 1000 MHz and 1.67 GHz.
The governor "userspace" may decide which speed to use
within this range.
current CPU frequency is 1.67 GHz (asserted by call to hardware).
analyzing CPU 1:
driver: acpi-cpufreq
CPUs which need to switch frequency at the same time: 0 1
hardware limits: 1000 MHz - 1.67 GHz
available frequency steps: 1.67 GHz, 1.33 GHz, 1000 MHz
available cpufreq governors: userspace, performance
current policy: frequency should be within 1000 MHz and 1.67 GHz.
The governor "userspace" may decide which speed to use
within this range.
current CPU frequency is 1.67 GHz (asserted by call to hardware)
# cpufreq-set -f 1000000 # minimum speed
# cpufreq-set -f 1333000 # average speed
# cpufreq-set -f 1667000 # maximum speed
WLAN
With Intel's ipw3945 driver, the wireless network adapter runs without any troubles. It's a pity that this driver has not found its way into the official kernel sources, yet, as it requires a binary regulatory daemon (ipw3945d) to make the hardware compliant to local and national policies concerning e.g. channels and transmit power levels. However, the iwlwifi project aims at integrating the work the daemon does into the firmware, so the daemon will not be needed anymore. You can find a download link and the HowTo on their website.
Apart from that, the driver's INSTALL and README files give a really comprehensive description of the installation procedure, so I don't have to. :)
The firmware needed to operate the driver can be found in the Debian non-free repository -- the package is called "firmware-ipw3945".
UPDATE: On 2006-11-12, Jurij Smakov
is planning to
upload ipw3945d to Debian (probably non-free). He already prepared a package (ipw3945d),
which is available here.
This package includes an init-script that runs the daemon on every boot-up, if the
module is loaded.
It also seems
that in the next release of the firmware all the work the daemon does is integrated,
so it is not needed anymore. Let's keep our fingers crossed.
UPDATE: Indeed, the daemon is now available in the non-free repository.
X.org
The important parts of my xorg.conf:
...
Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "SHMConfig" "1"
EndSection
...
Section "Device"
Identifier "Intel i915"
Driver "i810"
BusID "PCI:0:2:0"
EndSection
...
# Allow DRI for everyone
Section "DRI"
Mode 0666
EndSection
...
With this configuration, the graphics adapter works with 3d acceleration. Yay! :)
Problems
Due to conflicts between ACPI and the mouse controller, the system has some problems when rebooting from Linux. A work-around is to compile PS/2 support as a module (as shown in the excerpt from my kernel configuration) and unload it before halting or rebooting the machine. You can do so by adding the line
modprobe -r psmouse
to /etc/init.d/halt and /etc/init.d/reboot.
Conclusion
I can definitely recommend this notebook, as most of the hardware devices work with a standard kernel from kernel.org without further tuning. The few devices which do not work yet, seem to be supported anyhow -- I just haven't figured out, how.
This report is listed at TuxMobil - Linux on laptops, notebooks, PDAs, mobile phones and Linux on Laptops.
Last change: Fri, 04 Apr 2008 16:13:55 +0200
Thank you for sharing this howto with me ! Diozaka (Mon, 11 Feb 2008 18:43:17 +0100) The design of the laptop is really neat -- it's just one more of the many reasons I like this machine. It will be just perfect, if I finally get along with the suspend problems! :) Solvalou (Mon, 11 Feb 2008 18:43:17 +0100) On the nx6310 with the good ol' celeron 1.7 i got firewire hd working. Just blacklist eth1394 and make sure ieee1394 ohci1394 raw1394 and sbp2 are loaded. Didn't test FW booting which requires some more tweaking. Boot fron usb stick worked with the damn small linux live cd option.
I'm perfectly happy with this laptop, it was easier to install linux than to remove the windows sticker (didn't want to use solvents so i had to scrub a lot, thank you again mr gates) but as design i sorely miss my apple tibook. Diozaka (Mon, 11 Feb 2008 18:43:17 +0100) Thanks for the info, I'll change the color of the firewire controller in the list from blue to green now. I still haven't tested it on my own, because I do not own any firewire devices, but I'm really convinced that it actually does work on my machine, too.
BTW: Even if removing the windows sticker is a tough job -- it surely has to be done! :) blambi (Mon, 11 Feb 2008 18:43:17 +0100) I've noticed (by some experimentation) that one is able to extract the iso without wine and/or wintendo.
By using 7z (might work with others programs to)
ex: 7z e sp35615.exe
check the md5sum:
version D bios iso: 20d7f4172c634fbd28df2c91be6e6c18
version B bios iso:
accaf4b657d16e9cd028707e3c9f50f4
These values where tested against a wintendo extracted ones.
I hope that helps someone looking for a cleaner way to extract the iso =) Bruno (Mon, 11 Feb 2008 18:43:17 +0100) Hi everyone
I've tried for several weeks make the bluetooth to work, but I haven't the knowledge, so I have tried like follows:
1. I've reinstalled windows XP on the machine, to turn on the bluetooth by software (it was impossible to do it by the BIOS).
2. I've installed Debian Etch, and do what Hans Marberg has told us and it worked very well.
I hope this will help you somehow.
Bruno HW (Mon, 11 Feb 2008 18:43:17 +0100) Hi,
About the ACPI issue - It bugs me for a while but I found a way
Linux Debian Etch 4.0 stable is originally running on kernel 2.6.18 but with that release there are some issue with the acpi management - that are apparently fixed in the 2.6.20 kernel.
hope it will help some who are getting acpi related issues
HW Bill (Mon, 11 Feb 2008 18:43:17 +0100) I have another guide for the nx6310 which is available at:
http://www.linlap.com/wiki/Hewlett-Packard+nx6310 magellan (Fri, 04 Apr 2008 15:59:09 +0200) Hans Marberg told something about attached hcid.conf:
"Setup your bluetooth device hci0 using the attached hcid.conf". Can you publish it here? diozaka (Fri, 04 Apr 2008 16:12:45 +0200) Of course, sorry. You can find it here: http://diozaka.org/downloads/hcid.conf Fowlyer (Mon, 07 Jul 2008 01:33:39 +0200) I really appreciate this site, and i'm glad that people do this kind of things.
I didn't get any idea what graphics driver you have now, and what resolution you use? I can get only 1024x768 only...I've tried to fix xorg.conf over 60 times. I can get fine FPSs
glxgears = 3788 frames in 5.0 seconds = 757.419 FPS
But could you please help to get better resolution. I also try to get dualmonitors work, yay...(I'm using Ubuntu 7.10 now, i could upgrade to 8.04 but it's not so important) diozaka (Mon, 07 Jul 2008 19:31:03 +0200) I'm using the i810 driver with 1024x768, which is the maximum resolution of the display of my model. I'm not sure if HP has released the nx6310 with better displays, so you're probably also bound to this resolution.