Recently I had the opportunity to wipe out my HP tx1000, and upon reinstalling Debian, I discovered that things have changed since my previous writeup. The tx1000 is still Linux-unfriendly, and I would not yet recommend it for someone who is not willing to commit a fair amount of time to working out the kinks; however, progress has been made and I've done things a little differently than last time, which has made things work a little better than before. So, I've done a total re-write of my previous article.
As I discover new and exciting things about running Linux on this laptop, I'll update this page. If you want to be notified when this page is updated, you can subscribe using the controls at the bottom of this page.
As always, this information is supplied with no warranty, expressed or implied. If your computer blows up, your cat dies, or anything else happens, don't come crying to me.
The laptop is setup as a dual-boot between Windows Vista Business and Debian sid. Grub is used to boot the system, instead of Vista's bootloader. The switch to Vista Business made the HP recovery partition useless (since it's Vista Home), which removed the need to use Vista's bootloader, and using GRUB in the MBR allows me to hibernate either OS when switching to the other (if you're using Vista's bootloader and hibernate Vista, the bootloader will not let you boot into another OS until you resume Vista and shut it down properly.)
The move to Debian sid also means that most things work out of the box. The only thing I've had to dance with so far is the Wireless NIC, which is explained below.
The following worked with no effort on my part:
The following needed a little work from me to function:
The following are things I've tried and not got working yet:
Following are things I haven't tried yet:
Using Vista's Disk Management tool, shrink your Windows partition to allow some space for your Linux installation.
Install using your method of choice. I installed the "Laptop", "Desktop", and "Standard system" packages, which gives me a full Gnome GUI and utilities for most of the hardware. When booting the installation system, append 'noapic' and 'irqpoll' to the kernel options. 'noapic' prevents the system from randomly freezing, and 'irqpoll' stops the "disabling IRQ7" messages, which coincide with a loss of USB hot-plug functionality. After your installation is complete, make sure that these options are passed through GRUB to the kernel on subsequent boots.
Using your method of choice, modify your APT sources to point to the sid repository and do a dist-upgrade. Don't forget to install (and use!) the latest kernel; this is necessary to get sound and wireless ethernet to work. Leave some deb-src URLs in your sources.list for installation of ndiswrapper.
(source)
rmmod ssb
echo "blacklist ssb" >> /etc/modprobe.d/blacklist
update-initramfs -u
apt-get install module-assistant
module-assistant a-i ndiswrapper
ndiswrapper -i bcmwl5.inf
ndiswrapper -m
echo ndiswrapper >> /etc/modules
modprobe ndiswrapper
Add non-free to your sources list.
Install the following packages:
Run nvidia-xconfig to reconfigure your xorg.conf to use the new NVidia driver. Restart X (or the entire system, just to be safe.)
Here's the list of buttons on the remote, and the corresponding keypress events:
| Button | Key Event(s) |
|---|---|
| Power | Suspend |
| Windows | Alt-Win-Enter |
| Circular arrow thing | keycode 205 |
| Up | Up |
| DVD | keycode 237 |
| Left | Left |
| OK | Enter |
| Right | Right |
| right-up | Backspace |
| Down | Down |
| Info | Menu |
| Rewind | Ctrl-Shift-B |
| Play/Pause | keycode 162 |
| FF | Ctrl-Shift-F |
| Previous | keycode 144 |
| Stop | keycode 164 |
| Next | keycode 153 |
| Vol dn | keycode 174 |
| Mute | keycode 160 |
| Vol up |
keycode 176 |
Out of the box, suspend-to-disk and suspend-to-RAM do not work reliably. To combat the problems suspending to disk, I tried TuxOnIce. Formerly called suspend2, TuxOnIce is a kernel patch that provides suspend-to-disk functionality in a different fashion than what is included in the stock kernel. I used it before, with my Toshiba Satellite 2800 and my Dell Inspiron 6000, and it worked well. Some people are intimidated by the idea of patching their kernel, but in Debian, it's not really that difficult.
However, TuxOnIce alone was not enough to eliminate the problems. I ended up extensively reconfiguring my kernel, avoiding the initramfs/initrd boot method, compiling in the drivers I needed for the root filesystem, and disabling anything I didn't need.
Install the following packages:
Unpack the kernel, and configure it (substitute 2.6.26 with whatever version of the kernel you're using):
cd /usr/src/
tar -xjvf linux-source-2.6.26
cd linux-source-2.6.26
My configuration is posted at the bottom of this page. You can copy it to /usr/usrc/linux-source-2.6.26/.config. Be sure to tweak it to suit your application. It will work if your system uses an ext3 root fs on the internal SATA drive, but that is the only thing compiled in - everything else is modular, and quite a lot of stuff is disabled altogether. This kernel boots old-school, without using an initramfs or initrd - I did this to make troubleshooting and reconfigurating the suspend/resume systems easier. It also decreases the boot time, since the system boots straight to the root filesystem.
The stock configuration file that comes with the Debian kernel source package compiles nearly everything. In addition, this configuration prevents TuxOnIce from working reliably. (The machine will panic or reset itself during resume.) Now's the time to run the "make config" of your choice and pare down the configuration as much as possible. I've attached the configuration I use to the bottom of this page, which works for me. It is minimalistic and does away with the initramfs/initrd boot method, so make sure you have the proper drivers configured in for your root filesystem.
The next thing you're going to want to do is read the section below on CPU Frequency scaling, specifically the section on cpufreqd. Otherwise, your machine may overheat during the compile.
Now run the following command to start the build:
CONCURRENCY_LEVEL=2 PATCH_THE_KERNEL=YES make-kpkg kernel_image modules_image
This will compile a Debian package of the custom kernel, with patches, and packages for all the modules you have in /usr/src/modules. After adding the TuxOnIce patches, there are a couple new config options. I merely accepted the defaults when asked, and the build process got underway.
The build will take some time, longer than it should actually, due to the cooling problems in this laptop. However, it will take even longer if cpufreqd doesn't stay on top of the heating situation and your machine dies.
While the build is progressing, you have time to make some needed modifications to /boot/grub/menu.lst, so that TuxOnIce can find your resume partition after hibernation. Add the following to your kopt line in /boot/grub/menu.lst:
resume=swap:/dev/sda5
Of course, replace /dev/sda5 with your swap partition.
Once the compile is done, I had three DEB files in /usr/src, that represented the linux-image, nvidia-kernel, and ndiswrapper-modules packages. I installed this with dpkg -i
At this point, you can reboot into your new kernel, test that everything is working as it should be, and then try hibernating. The TuxOnIce patches replace the original suspend-to-disk functionality, and my system automatically started using TuxOnIce instead of the old method. YMMV.
First, to enable users to change the CPU frequency or scaling governor, the cpufreq-selector program needs to be SUID root. You can set this option by running the following command:
dpkg-reconfigure gnome-applets
and answer 'Yes' to the appropriate question.
GNOME sets the default governor to "ondemand", which seems to always want to use the highest frequency. I change my governor to "conservative" using the GNOME applet, which allows the frequency to scale down when the machine is not under load. However, GNOME likes to change this back to "ondemand" from time to time. You have to change GNOME's default, but the UI is not suitable for this task. You have to make the changes in the GNOME Configuration Editor:
While doing a kernel compile, I discovered that the tx1000's cooling system is not capable of keeping the CPU happy during a long period of high load. In fact, midway through my compile, the CPU overheated and the machine switched off. To fix this, I installed cpufreqd and modified the configuration to bottom the clock speed when the CPU gets too warm. You can find my custom configuration here. I heartily recommend you set this up before doing anything too strenuous, like building a custom kernel for TuxOnIce.
Recent comments
5 weeks 2 days ago
15 weeks 1 day ago
15 weeks 1 day ago
15 weeks 2 days ago
15 weeks 2 days ago
15 weeks 2 days ago
17 weeks 10 hours ago
17 weeks 2 days ago
20 weeks 3 days ago
20 weeks 5 days ago