Installation report

The Compaq/HP nx7010 is a nice laptop based on the Intel Centrino motherboard. With some work, it's possible to run GNU/Linux on it, making an excellent desktop replacement.


The nx7010 used here is the Centrion 1.6MHz model. Brief summary: 1GB RAM, 60GB HDD, CD-RW/DVD Combo, 15.4" screen, ATI Radeon Mobility 9200, on-board modem, 10/100 LAN, audio. (Full Specs)


Unfortunately, HP appears not to be particularly Linux friendly.

When you buy the nx7010, you pay the Microsoft tax; the machine comes with Windows XP pre-installed. It's fairly easy to solve this problem (/sbin/fdisk...) although it is probably worthwhile keeping the WinXP partition working until after you have your linux installtion working satisfactoraly.

Keeping Windows XP on the machine is not necessarily easy, as the default WinXP installation takes up quite some space on the hard drive. It's worthwhile turning off hibernation and the pagefile.sys as this will release around 1.5 GB of disk space. Also, resize the NTFS partition before visiting WindowsUpdate, as installation of the updates will cause significant fragmentation of the data on the hard drive.

If you have PartitionMagic, then it can be used to defragment the data on the NTFS partition as well as shrink the partition.

Problems with ACPI also highlight the unfriendliness of HP towards Linux.

Note to HP: I will happily rewrite these comments if you give buyers the option of not having Windows XP installed in the first place. Until such time, these comments are fair and just criticism.

Installation procedure

Initial installtion

The installation of Debian GNU/Linux was undertaken using a Debian Woody bootable CD. Rather than using the entire Woody CD set, the Woody mini-CD was used to boot to a working system then upgrade to a system based on the Debian testing (Sarge) distribution. Since the hardware in this laptop is quite new, Woody doesn't really handle it easily, so it's worthwhile making use of the newer versions in Sarge (at the usual price of a little less stability).

Using the Woody boot-floppies (in this case the mini-CD) make sure you use bf24 at the boot prompt to make use of the 2.4 kernel from the beginning. Support for hardware will be improved, plus ext3 support is built-in from the beginning.

The new Debian Installer for Sarge is definitely worth investigating rather than bootstrapping from Woody to Sarge... it will make for a much cleaner process and will reduce the amount of downloading you need to do.

During the initial installation, neither tasksel nor dselect were used for package selection, since everything will get upgraded to testing/Sarge as soon as installation has completed. The on-board network card was detected automatically the woody installer; hence, this works quite well as an installation strategy.

Upgrade to Sarge

The upgrade to testing/sarge was done using the procedure outlined in the Debian manual. In short, edit /etc/apt/sources.list to change stable to testing for each of your sources (you can add testing and unstable to this file, but make sure you change your package pinning!). Then, edit /etc/apt/preferences to set pin preferences for the testing distribution:

 Package: *
 Pin: release a=testing
 Pin-Priority: 600
 Package: *
 Pin: release a=unstable
 Pin-Priority: 50

Upgrade to testing can then be achieved by:

 # apt-get update
 # apt-get dist-upgrade

This is why people love Debian! Package management is just so easy.

Upgrade to 2.6 kernel

The upgrading to the 2.6 kernel (from the bf24 install kernel) gave an impressive improvement in performance. It's hard to say whether this is related to improvements in the, VM the scheduler or just from using an i686 kernel not a generic installation kernel. Whatever the case, it's worthwhile installing the latest 2.6 kernel from sarge.

Make use of the Debian kernel upgrade notes to ensure that the upgraded system is still bootable.

 # apt-get install kernel-image-2.6.3-1-686

Another trap in upgrading from the bf24 installation kernel to the 2.6 kernel is that modules for the network card must be explicitly loaded. Add 8139cp to /etc/modules to keep the network card running after reboot.

Setup X

Use either apt-get aptitude or dselect to install xfree86 and your favourite window manager (e.g. KDE). Note that aptitide or dselect are now listed as the prefered methods for undertaking a major upgrade such as this due to their superior handling of Suggests and Recommends dependencies compared to plain old apt-get.

fglrx installation

Update 1: there are deb packages (untested by me) that would appear to make this process much easier... The debian-laptop list has had several good reports on using these packages.
Update 2: I have now switched over to the XFree86 4.3.x radeon driver as it seems to have much better Xinerama support, but that could be related to some .so versioning problems.

In this installation, the proprietry ATI Radeon drivers were used. An rpm package is available from ATI (pick the appropriate version of XFree for your installation). It can be installed using alien and dpkg...

 # apt-get install alien
 # alien fglrx-4.3.0-3.7.6.i386.rpm
 # dpkg-divert --package fglrx --divert /usr/X11R6/lib/ \
 # dpkg -i fglrx_4.3.0-4.7_i386.deb

NOTE: Do not follow the instructions on the ATI website and force installation of the fglrx package as that will break apt (there is a clash over one of the OpenGL libraries and forcing that will cause later XFree86 package upgrades to fail). Instead, use dpkg-divert to divert away the XFree86 provided version so that the fglrx version is used.

 # dpkg-divert --list | grep fglrx
 diversion of /usr/X11R6/lib/ to /usr/X11R6/lib/ by fglrx

Use the ATI configuration utility to generate a suitable XFree86Config-4.

 # fglrxconfig

Settings that appear to work for the LCD are: vertical refresh range: 50 - 75 Hz, horizontal refresh range: 28 - 96 kHz.

At the end of the configuration using fglrxconfig, the resolution must be manually altered in /etc/X11/XFree86Config-4. The 15.4" LCD is capable of displaying at 1680×1050. (sample XF86Config with TV-out enabled as a second head (not clone mode))

As final steps, you can uncompress one of the ATI display manager applets and link it into /usr/X11R6/bin so that the link on the KDE menu works.

 # cd /usr/X11R6/bin
 # bunzip2 fireglcontrol.qt3.gcc3.2.bz2
 # ln -s fireglcontrol.qt3.gcc3.2.bz2 fireglcontrol

You also need to make the kernel module to fit with your installed kernel (there appears to be some errors in the packaging that require some messing about to do this):

 # apt-get install kernel-headers-2.6.6 kernel-source-2.6.6
 # cd /usr/src
 # ln -s kernel-headers-2.6.6 linux
 # cd /lib/modules/fglrx/build_mod
 # vi
 (change drmincludes (line 181) to drmincludes=/usr/src/kernel-source-2.6.6/drivers/char/drm)
 # vi 2.6.x/Makefile
 (add an extra line to EXTRA_CFLAGS: -I/usr/src/kernel-source-2.6.6/drivers/char/drm \ )
 # sh
 # cd ..
 # sh

If you get into trouble in this build process, make sure that the -I line you added to the Makefile has the backslash at the end of it. Also, do a cd 2.6.x; make clean and remove the patch directory before having another go.

Also, add fglrx to /etc/modules so that the ATI module is actually loaded so that DRI will work later.

radeon installation

If you prefer to use the XFree86 4.3.x radeon driver, then none of the above messing around is necessary: sample XF86Config with xinerama enabled

Usable (hopefully!) system

At this stage, the system is quite usable as a desktop machine. X and KDE work fine. Package management through synaptic is now possible.

The following should be working: X, KDE, networking, touchpad (but not scrollwheel section).

The following probably will not be working: audio, DRI (accelerated 3D graphics). (Actually, if you are inserting the fglrx module into the kernel before starting X, it probably will be working.)

From now on, tweaking of individual components is necessary: see the status page

TuxMobil - Linux on Laptops, Notebooks, PDAs and Mobile Phones        Linux On Laptops

Last edited: Tuesday April 1, 2008

Valid XHTML 1.1 Valid CSS 2