Installing RHEL 4 on a Compaq nx6125 Laptop

The Compaq nx6125 is a relatively inexpensive laptop with an AMD CPU and ATI chipset. If you try to install Linux with a kernel <= 2.6.9, you will encounter some problems. Here's how I made Red Hat Enterprise Linux 4 work on this laptop.

The first thing you'll see is a frozen progress bar when the installer formats the hard disk. Switching to a virtual console (Ctrl+Alt F2) and running hdparm -tT /dev/hda shows that the installer has not stopped, but that the disk gives you a whopping buffered read speed of 350 KB/sec. hdparm /dev/hda further reveals that DMA is not used, and hdparm -d 1 /dev/hda tells you that you are not allowed to activate DMA.

The reason for this is the ATI chipset, and in particular the IDE controller. Older kernels do not support the IDE controller yet. While there is a generic IDE driver, the kernel doesn't use that either, because some older controllers say they support it, and promptly crash when confronted with generic commands.

While the kernel contains a list of IDE controllers which work in generic mode, hardware vendors do not always announce new controllers in advance. But there is a solution: At the boot prompt, just add the kernel option all-generic-ide, which although fairly recent, is present in the RHEL4 U2 kernel.

With this, installation works, but the machine feels a little slow. top shows a 50% CPU utilization by soft interrupts ("si"), and you might notice that the wall time clock runs about twice as fast as it should. To fix this, add the kernel options "noapic nolapic", which disable the advanced programmable interrupt controller. Not using the APIC hurts performance a bit, but not to noticable degree.

That seemed to be the last problem, until one of the developers started a long compile run on his laptop. The machine froze for a minute and then continued as if nothing had happened. ls -ltr /var/log pointed to a temperature-related message in /var/log/acpid.

watch "cat /proc/acpi/thermal_zone/*/temperature" showed a temperature well above 70C during another compile run, and the CPU had probably been forced to stop previously to prevent permanent damage.

Instead of returning the laptops to the vendor, we put the following into /etc/cpuspeed.conf:

VMAJOR=1
VMINOR=1
DRIVER="powernow-k8"
OPTS="$OPTS -n -i 1 -t /proc/acpi/thermal_zone/TZ1/temperature 70"

This sets the right driver for the AMD CPU, and tells cpuspeed to slow things down when the temperature gets above 70C. Another performance hit, but it works.

10:55, 29 Nov 2005 by Carsten Clasohm Permalink | Comments (0)

RSS

Archive

November 2005
S M T W T F S
   
10  11  12 
13  14  15  16  17  18  19 
20  21  22  23  24  25  26 
27  28  29  30       
September 2008
July 2008
June 2007
May 2007
March 2007
January 2007
December 2006
September 2006
June 2006
April 2006
March 2006
February 2006
January 2006
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
January 2005
December 2004
November 2004
October 2004

Blog Categories

Hiking (5)
Desktop Linux (28)
Server Linux (5)
Palm (3)
Photography (5)
Politics (2)
Web Applications (15)

Notifications

Request notifications

Syndication Feed

RSS

Recent Comments

  1. Anonymous Visitor: AT&T U.S.
  2. Anonymous Visitor: All went well under CentOS 5.0 in Croatia (VIP network)
  3. Anonymous Visitor: tmp crypt not necessary
  4. Anonymous Visitor: Great article
  5. Anonymous Visitor: So it's not a Virus...
  6. Anonymous Visitor: Thanks! Helps also on Windows!
  7. Anonymous Visitor: Thank you
  8. Anonymous Visitor: Economic Incentives
  9. Anonymous Visitor: thank you
  10. B G: Why are multiple device files created for one Treo 650 device on F7?