HP Compaq 6005 Pro MT VN797EA + Debian Lenny

I had to replace my home computer (one which I built myself from parts). A fortnight ago the clamp of the CPU cooler simply broke in two pieces, probably due to material fatigue, and the huge cooler landed on top of my video card. I won't name the cooler's vendor, in order to protect the guilty; suffice it to say that it was a real brand name. I obtained a new cooler, another (physically) huge piece of hardware, because I love silence and low RPM, and tried to install it.

The problem was that I tried to execute the installation during the night, after working my ass off in $DAYJOB. To say the least, I wasn't really patient. I simply didn't want to believe that I'd have to pick the whole damn thing completely apart to get access to the clamp claws of the new cooler. So I struggled with a screwdriver until I damaged my motherboard. Yes, I know, that was patently dumb.

I realized, beside being no professional computer assembler, I also don't have the required patience and foresight, coming home each night from current $DAYJOB_PROJECT, to qualify as an amateur one. So I bought a desktop computer from a brand name manufacturer.

Criteria were: (1) brand name :) (I don't ever want to open the case again), (2) affordable (Apple products are out of question, sorry), (3) AMD-based (I like big per-core caches much more than huge shared caches).

I chose a HP Compaq 6005 Pro MT VN797EA. I really like the computer. I wasn't paid to do some HP advertising, but I'll do it nonetheless: the computer has a great finish, it's very quiet, it radiates quality.

(If you disagree, please express your disapproval in a grown-up manner. Thanks.)

First I allowed the default installation to run to completion, because I wanted to see how it fares. It went without a hitch; from the first time I turned it on, I only had to answer two or three questions at most and it finished with an installed WinXP SP3 OS, all drivers in place, and some bundled McAffee antivirus software. I was very pleased, and if I was a Windows user by choice, I would have been extremely happy, even. Then I rebooted from my trusty Debian Lenny installation DVD... :)

Since I'll never open the case, partly because I don't want to, partly because that would void the three year hardware warranty, encrypting the entire hard disk was a necessity. (If something needs fixing later, god forbid, I'll have to pass the entire machine to a professional repair technician. I want my data protected.)

I had to learn the device mapper / lvm2 / cryptsetup terminology over a few days (umm, nights), but in the end, I was able to create a cleartext boot partition and another one, encrypted with twofish-cbc-essiv:sha256. Into that dm-crypt partition I placed a volume group with two logical volumes, one volume holding /home, the other one holding everything else. In the end, I was able to replace all /dev/sd* pathnames in /etc/fstab with /dev/disk/by-id/* ones; and I also managed to replace the sda2_crypt device mapper name in /etc/crypttab, chosen originally by the debian installer, by a more likeable name. Unfortunately, as I was getting to know the entire device mapper and lvm2 toolset, and the Debian infrastructure on the top of 'em during the process, I made some mistakes. For example, I removed the busybox package, then I regenerated the initial ramdisk. Since the initrd scripts employ busybox to set up the volumes on the encrypted block device right after boot, my initrd was unable to finish up the boot correctly, and it was also unable to provide me with a busybox shell to fix things manually. Luckily, the Lenny install DVD features a rescue mode, and with much pain and suffering I was able to fix everything. (Sorry for not writing specific commands and steps, but all is kinda hazy in retrospect; I was falling out of my chair from drowsiness while correcting stuff.)

After booting cleanly into "console mode", I installed the packages I use (

dpkg --clear-selections && dpkg --set-selections < earlier_package_list && apt-get dselect-upgrade

) and configured everything under

/etc

to meet my taste. I realized
X doesn't work (the computer has an integrated Radeon HD 4200), and sound doesn't work (integrated Intel HDA). Great! I felt again like a college student -- exactly ten years ago I was searching the net with lynx for that damn libglide.so, in order to get basic X (or 3D accel?) under my second-hand 3dfx Voodoo Banshee.

I remembered reading the 10.6 Catalyst announcement here on hup. As anybody knows, navigating a corporate website with a console-based browser is outright impossible, so I was extremely grateful in hindsight for the direct link. Thanks, trey!

I tried to build a Debian-specific package with the Catalyst installer. It failed. Lenny's X (1.4.2, I guess, I'm writing this from memory on a different machine) is recognized az 7.3, and for that the package builder didn't work. Ultimately, I let it install everything directly from the ncurses interface. It worked. I hunted down the installed files with

find / ! -type d -cnewer ati-driver-installer-10-6-x86.x86_64.run

(since the mtime of that file, downloaded by links2, was set to the download time). In retrospect, checkinstall would have been much more elegant, but this brute-force way worked too. I examined the file list, removed a few entries that were obviously unrelated, and tarred up the rest. I noticed that the installer sourced in an ATI-related shell script at the end of /etc/profile, to export an env var or two. I removed that command without any consequences.

After experimenting with

aticonfig --initial

a bit, I threw away the generated xorg.conf and only had to change two entries in my original, minimalistic xorg.conf: BusId and the driver (to fglrx IIRC). I also removed all options specific to my previous driver. Oh wait, in the DRI section I had to specify Group "video" manually (permissions were already set to 660 from before). This gave me direct rendering. Great!

Unfortunately, when logging out of an X session, the screen became garbled. The computer didn't freeze, but X remained unreadable during any further logins. Thankfully, I could fix this by asking xdm in xdm-config (yes, I do use xdm! (and IceWM)) not only to reset the X server between sessions, but also to terminate and restart it. X was working!

I hear that the kernel and the X versions in Squeeze (or in unstable?) support the Radeon HD 4200 with free software as well, so I guess the 64-bit proprietary Catalyst driver is going to enjoy a transitory residence on my disk :) (Judging after howto's on the net, after installing a recent kernel, I suppose I could have built a new ati or radeon or radeonhd X driver module (I can't remember which one), but I'm not that hard-core anymore. I'm past college, sorry. I can't waste more than one week's nights on getting the software stack to work!)

Then came sound... Originally, the box produced no sound; dmesg told me that the snd-intel-hda module failed to identify my sound card model from the BIOS (which is ALC662 rev1 IIRC, according to /proc/asound/card0/codec#0 or so). I had no better idea than to look up the vanilla kernel source that is at least the basis for the Lenny version, and the relevant docs, and try each possibility in turn. I settled for the following module options:

model=3stack-6ch position_fix=1

. That allows me to connect the backside output jack to the amplifier, the frontside one to my headphones, and to turn off the damn blaring builtin speakers by muting the Surround channel. (I did the muting in gnome-alsamixer I believe, and made that setting persist across reboots by installing alsactl, as part of the alsa-utils package.)

Networking worked out of the box, from the start.

In the end, the computer seems to be completely supported under Debian GNU/Linux Lenny for my needs. I'm absolutely pleased with both the hardware and the software experience. The software setup took some effort on my part, but now the fluid, no-fluff environment compensates me. It does everything I need, it doesn't get in my way, and the best part: I did not and will not have to open the case.