Debian GNU/Linux on ASRock 939DUAL-SATA2

As of Tuesday Sept. 13, I am the proud owner of the following hardware:

This page documents the trials and tribulations required to get Linux operating on the system.

PXE Boot - the no FDD, no CD/DVD solution

Current Status - Need to patch Debian-Installer kernel

Since I have no removable media in the computer, the only solution for loading the operating system was to use the PXE boot option of the ASRock 939DUAL-SATA2. To enable this, look in the BIOS. I will document this more when I have time.

On the server side, I have my trust IBM Thinkpad X24. Since I didn't have a crossover cable handy and I had only one ethernet cable (yes I know I need to get better equipped), I had the X24 connected to a Netgear wireless router via 802.11b, and the ASRock's onboard NIC directly connected to the router.

The problem with the Thinkpad, however, is that there is a bad sector on the dpkg database. So, I needed to install all the required software by hand (until I can back up my data on the ASRock system and fix dpkg).

Setting up the DHCP/TFTP Server

Order of operations:

DHCP

  1. Go to ISC and download DHCP 3.0.3 src.
  2. ./configure, make, no make install (I didn't want to mess up my local fs)
  3. copy the provided example dhcpd.conf to /etc/dhcpd.conf, and modify it so that the subnet that the router is handed out is configured. Make sure authoritative is set (so that it overrides the dhcp server on the router), and that you are giving the IP address of the router (not the DHCP server) as "routers". Example file will be attached later.
  4. In that same dhcpd.conf file, create a 'host' entry for the ASRock Device.
    host pxeinstall { hardware ethernet 00:11:22:33:44:55; filename "pxelinux.0"; next-server ; }
  5. Add a line to dhcpd.conf so that it doesn't whine about ddns (the example config file is incomplete) -
    ddns-update-style ad-hoc;
  6. create the directory /var/state/dhcp, touch the file dhcpd.leases in that dir
  7. run the DHCP server with the command (source-dir)/work.linux-2.2/server/dhcpd

TFTP

  1. Go to kernel.org and download the latest version of tftp ( I used tftp-hpa-0.40.tar.bz2 ).
  2. ./configure; make; again no make install
  3. run tftpd/tftpd -l -v -v -s /tftpboot
    the '-v's are so that you can tail -f /var/log/syslog to see which files are being picked off (or not) by the ASRock device.
  4. ok, time to prepare /tftpboot. so, mkdir /tftpboot first off.
  5. using ncftp (or your favourite ftp program), ftp to amd64.debian.net
  6. cd to debian-installer/daily/netboot, and mget -r (or whatever) the debian-installer (dir), pxelinux.0, and pxelinux.cfg (dir) files/directories to /tftpboot.

Booting/Installing

Turn on your ASRock system. It should eventually load the Intel PXE boot agent, get an IP address, and start booting syslinux.
At this point, if you tail -f /var/log/syslog on the TFTP server, you should see various files being sent over to the ASRock system. One problem you may notice is that if you failed to set next-server for the host in dhcpd.conf, syslinux will try to tftp files from the broadcast address, which tftpd-hpa won't answer.
From here, it should look like the typical debian-install.
Select language/keyboard layout/etc. When it gets to network card autodetection, however, it fails. If you manually tell the installer to use the tulip driver, it will load and say "success" on DHCP, but that success is falsely reported. The network is still unusable at this point.

The Problem

It appears the onboard ethernet chip (ULI M5263) doesn't work as-is with the tulip driver. I believe the patch tulip-fixes-for-uli5261.patch will fix it, but I have yet to figure out how to compile a custom-module for debian-installer.
Without this patch, you'll currently get
eth0: Invalid media table
selection 128

and you own't be able to connect to any HTTP or FTP servers. ifconfig will likely show 10 or so RX packets, and 2 TX errors w/ no TX packets. I'll update as soon as I've figured out the next step, likely tonight.