These are my experiences installing Gentoo Linux on the Compaq Presario 2598us. I am very inexperienced with Linux, so don't expect insightful comments and comparisons. This is just a log of what I had to do to get various things working, in the hope that it will be useful to others.
(Updated July 2005 after I got dual-booting working with just grub.)
In our hyper-litigious society, I must say what should be common sense to everyone already: I make NO guarantees about the accuracy or safety of this information. Use it at your own risk. This is just what worked for me -- it may not work for you, it may blow up your computer, and your computer may take your whole neighborhood with it (though in my experience that has never happened). Use common sense. Read the Gentoo handbook (or the equivalent documentation for your distribution) first.
Getting ahead of myself, here's the output of lspci(1):
0000:00:00.0 Host bridge: ATI Technologies Inc: Unknown device cbb2 (rev 02) 0000:00:01.0 PCI bridge: ATI Technologies Inc PCI Bridge [IGP 340M] 0000:00:06.0 Multimedia audio controller: ALi Corporation M5451 PCI AC-Link Controller Audio Device (rev 02) 0000:00:07.0 ISA bridge: ALi Corporation M1533 PCI to ISA Bridge [Aladdin IV] 0000:00:08.0 Modem: ALi Corporation M5457 AC'97 Modem Controller 0000:00:09.0 Network controller: Broadcom Corporation BCM94306 802.11g (rev 02) 0000:00:0a.0 CardBus bridge: Texas Instruments PCI1410 PC card Cardbus Controller (rev 02) 0000:00:0b.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 50) 0000:00:0b.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 50) 0000:00:0b.2 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 51) 0000:00:10.0 IDE interface: ALi Corporation M5229 IDE (rev c4) 0000:00:11.0 Bridge: ALi Corporation M7101 PMU 0000:00:12.0 Ethernet controller: National Semiconductor Corporation DP83815 (MacPhyter) Ethernet Controller 0000:01:05.0 VGA compatible controller: ATI Technologies Inc Radeon IGP 340M
If it doesn't mean anything to you, don't worry. All you really need to know how to do is pick out vendor names of components that seem vaguely applicable. (I.e., the ethernet card is made by National Semiconductor). I say that because it's basically all I know how to do at this point. And if I didn't do too horrible a job of writing this page, you won't even need to know how to do that, because I'll tell you which modules to use. ;)
Additionally, the hard drive is a Fujitsu MHT2060AT (60GB), and the optical drive is a Samsung CDRW/DVD SN-324F. Though I've never needed to know that.
If you need more verbosity, the output of "lspci -vv" as root is here. Though chances are, unless you're trying to decide whether or not to buy the machine, you'd be better served just running "lspci -vv" yourself. :)
I'm currently running Gentoo, but my first experience was with Debian (Woody). Even though it's entirely unnecessary for me personally, I like the idea of a source-based distro -- and in general, Gentoo seems more tinker-friendly. All instructions on this page relate to the 2.6.5 kernel on Gentoo as of approximately July 2004, though most information here (e.g., which modules I used, if not the exact method I used to load them automatically, etc) should apply generally (I don't know how extensively the Gentoo kernel has been patched, though).
If you're installing Gentoo, I'm assuming you've read through, and followed, most of the instructions in the Gentoo Handbook and, from those instructions, are fairly familiar with the layout and toolset of Gentoo systems -- rc-update, emerge, etc-update, etc. (In fact, if you've made the decision to install Gentoo, there's a hefty chance you know more about Linux than I do, considering its reputation as the infinitely-tunable, special-application, übergeek's distro. But it's not that difficult to get running -- my machine is functioning proof of that.) If you're installing something else, I'm assuming you've read the equivalent documentation, and are familiar enough to translate, or at least recognize and isolate, the Gentoo-specific parts of this page.
I'm dual-booting between Linux and WinXP. For this, I'm using 4 partitions. In physical disk order, these are:
Grub is installed on the MBR. Remember how the
/dev/hdXX devices map to grub's
hd(hdX,X) format -- it's in the grub docs.
The only thing that gave me difficulty was the fact that the Windows
partition is, apparently, hidden -- this means that the example Windows
entry in the default grub.conf won't work. Add
unhide(hdX,X) (where
(hdX,X) is your Windows partition) to the
Windows entry. You may not need to do this -- if Windows starts to
load, then complains loudly and shuts down, try adding it. For me, this
results in:
title Windows XP unhide (hd0,0) rootnoverify (hd0,0) chainloader +1 makeactive boot
My full grub config is here. Nothing tricky, or even marginally complex.
The installation of the distro itself went fairly normally. Many people complain about Gentoo being hard to install, but it didn't strike me as any more difficult than Debian's installer -- it just took much, much longer, due to the fact that I compiled most everything. (I didn't go all the way and boostrap gcc, though. Maybe next time.) I chose the 2.6 kernel (as mentioned above) since I was installing on a laptop and wanted stuff like ACPI to have the best chance of actually working.
I had spent quite a while getting X to work under Debian, so with Gentoo I took the lazy way out and copied my /etc/X11/XF86Config-4. The main requirement is a recent version (>= 4.3.0, which should be no problem if you're using Gentoo) of XFree86 that will support the "radeon" driver. Parts to notice in the XF86Config are the "Device" section labeled "Radeon IGP 345M" -- the driver is "radeon" and the BusID was obtained from lspci:
[...] 0000:01:05.0 VGA compatible controller: ATI Technologies Inc Radeon IGP 340M
The first part, "0000:01:05.0" is what needs to be copied. 0000:xx:yy.z maps to "BusID xx:yy:z". The "Screen" section then sets "Device" to "Radeon IGP 345M".
The IGP 345M that the Presario 2598 uses is supported for 2D rendering only. DRI is not supported as of when I write this. A very long thread in the Gentoo forums addresses the process of getting it working -- there's also a long thread attached to an XFree86 bug report here. I haven't pursued any of this yet.
Update: I've since switched to X.org. It was painless and went very smoothly. Anyone installing from scratch now should obviously choose X.org. I was able to use my existing config without problem. Still no DRI for the onboard video, though.
The "ntfs" module allows you to mount a WinXP partition. I currently have this line in /etc/fstab so it mounts at boot-time:
/dev/hda1 /windows ntfs ro,umask=0022 0 0
(You'd run "fdisk -l" as root to figure out what the name of your Windows partition is.) Write support is safe, but unfortunately not terribly useful (you can only overwrite existing files without changing the size), so I left that part out.
Loading the "natsemi" module (modprobe natsemi)
got the ethernet card working.
The Gentoo docs have much more extensive instructions that worked perfectly for setting up the network device and environment -- they're useful for both the ethernet card and the wireless card covered below.
Wireless networking is significantly more complicated, as the chip is
made by Broadcom, and there are currently no native Linux drivers. I
used ndiswrapper to
use the Windows drivers. I found the required .inf and .sys files
(bcmwl5.inf and bcmwl5.sys) in C:\SWSetup\WLAN\. (With the
Windows partition mounted at /windows, that maps to
/windows/SWSetup/WLAN/.)
I followed the ndiswrapper instructions (I called the interface "wlan0"), and everything seemed to work except the "ndiswrapper -m" command. Instead, I added "alias wlan0 ndiswrapper" to end of /etc/modules.d/aliases.
To automatically active the wireless card on startup, I copied /etc/init.d/net.eth0 (which I created according to the Gentoo docs) and called it net.wlan0. I added the iwconfig commands I used to get the card up and running ("iwconfig wlan0 mode managed", etc) to the beginning of the iface_start() routine. I then ran "rc-update add net.wlan0 default" to have the script run at startup on the default runlevel. I deactivated net.eth0 ("rc-update del net.eth0 default").
I have a wireless router running a DHCP server, so to connect to that on startup, I added the following in /etc/conf.d/net:
iface_wlan0="dhcp"
after the existing iface_* definitions. I then added "wlan0" before "eth0" (or whatever your ethernet interface is called) in the IFACE definition in /etc/conf.d/dhcp. I
This is all by analogy with the Gentoo docs concerning setting up the initial "eth0" interface. Apart from the iwconfig stuff in /etc/init.d/net.wlan0 and the line in /etc/modules.d/aliases, it's pretty much a clone of the standard "eth0" interface set up as per the Gentoo docs (I'm repeating "Gentoo docs" over and over because they're much more complete than this little web page and are very helpful).
ndiswrapper is in Portage, so you can do emerge
ndiswrapper for a slightly less painful installation.
Sound was a bit tricky. The sound card is the ALi M5451 (according to lspci) -- I enabled the ALi sound card drivers in the kernel and disabled the others. I'm using ALSA, and I ended up having to get the latest alsa-driver sources from alsa-project.org.
This requires configured kernel source -- so make sure you have the exact source of whatever kernel you're running (this was easy for me since I had just recompiled with the changes to the sound drivers, listed above). I ran configure like so:
# ./configure --with-cards=ali5451 --with-kernel=/usr/src/linux-2.6.5-gentoo-r1-custom-mod
Obviously you'd adjust --with-kernel's value for your own kernel location and version. I'm pointing it to a copy of the configured/built kernel source -- the alsa-driver installer modifies the source it uses (I'm not sure in what way), so I didn't trust it with the main copy (I'm probably just paranoid). It was unnecessary for me to run the "./snddevices" script as per the alsa-driver instructions.
I ran "modprobe snd-ali5451" to load the resulting module. After making and installing, the volume still needs to be turned up (this confused me for a bit longer than I'd like to admit) -- I did it with the following three commands:
# amixer set Master 100 unmute # amixer set PCM 100 unmute # amixer set CD 100 unmute
I could then use regular volume control utilities to adjust the volume. Do that first -- the "100"s mean 100% volume, and that's LOUD if you have headphones and aren't expecting it... not that I'd know anything about that.
The "amixer set ..." commands need to be run after every startup, so I wrote a little Gentoo startup script to do that automatically. You can find it here. I called it "mysound" and put it in /etc/init.d/. I then ran "rc-update add mysound default" so it would run on every startup. You'll notice the volume settings in this script are much more subdued than the full-blast 100's I showed above.
I enabled most of the USB modules in the kernel (USB, USB-UHCI, USB mass storage, HID, etc). The Presario 2598 has USB 2.0, so I made sure to compile support for that. I ran "modprobe uhci-hdc". Mouse printer both hotplug fine (haven't tested it with anything else).
I added "uhci-hcd" to /etc/modules.autoload/kernel-2.6 so the module would load automatically on startup.
I followed Gentoo's printing guide and everything worked fine with an Epson Color 740. I spent less time getting it to work under Linux than Windows (MacOS 9/X were the least trouble out of them all, of course).
ACPI (fully)
I can get battery levels, temp readings, etc; and I receive events from the power button, lid closing, AC power [dis]connect, etc. However, any attempt to sleep or hibernate results in a crash or abortion. This power management guide is helpful.
CPU Throttling
cpufreqd(1) says support isn't compiled into the kernel, but it is -- and I get the message "cpufreq: P4/Xeon(TM) CPU On-Demand Clock Modulation available" on startup. I imagine I could get this working if I tried. (But right now I'm not traveling with the laptop enough to care about the power/heat savings.)
CD Burning
As of kernel version 2.6.7, SCSI emulation is no longer required to burn CDs. I haven't tried it, though.
DRI
As mentioned under "XFree86", DRI isn't supported for the video card. I haven't found the courage to patch the kernel, X, etc, to get it working. All the good games that require 3D are on Windows, anyway ;)
This is by no means exhaustive, or even somewhat complete, but I hope it's helpful to someone, much as many similar pages have been helpful to me. A list of ones, both general and covering specific topics, that I found helpful, follows:
I welcome any suggestions, stories, bug reports, updates -- email me here: michael@michaelkelly.org
Copyright © 2001-2008 Michael Kelly.