Installing Lucid with the Maverick installer, to get the built-in NIC of an HP Compaq 8200 Elite with 82579LM chipset to work in Lucid

May 2011


So we 've got this HP Compaq 8200 Elite microtower with an Intel Corporation 82579LM Gigabit Network Connection. The Ubuntu Lucid installer stops, complaining that it can't find a network connection.

So we use the Maverick installer. We feed it suite=lucid as one of its boot parameters, although that doesn't seem to be enough to have Lucid installed instead of Maverick. And in the preseed.txt that we use, we put:

<snip>
# The installer itself should use Maverick packages
d-i mirror/udeb/suite string maverick

# Suite to install. This doesn't seem to cause Lucid to be installed instead of Maverick
d-i mirror/suite string lucid

#  This doesn't seem to cause Lucid to be installed instead of Maverick either
base-config mirror/suite select lucid

<snip>

# We need backports for the updated e1000e driver
d-i apt-setup/backports boolean true

<snip>
    

The next step is important. Without it, Maverick is installed instead of Lucid. In the preseed, at d-i preseed/early_command string, we cause a script to run that edits the /etc/lsb-release of the installer.

#!/bin/sh

sed -i 's/^DISTRIB_RELEASE=.*$/DISTRIB_RELEASE=10.04/g ;
s/^DISTRIB_CODENAME=.*$/DISTRIB_CODENAME=lucid/g ;
s/^DISTRIB_DESCRIPTION=.*$/DISTRIB_DESCRIPTION="Ubuntu 10.04.2 LTS"/g' /etc/lsb-release
    

And by d-i preseed/late_command string, we run a script:

#!/bin/sh           

# This needs to be done in a script. If we require the package in
# "d-i pkgsel/include string" in the preseed, then the first boot fails with a kernel panic
apt-get install -y linux-image-generic-lts-backport-maverick
    

That does the trick.

However, as my comments say, while the Maverick preseed manual states that The parameter mirror/suite determines the suite for the installed system, this doesn't work in my setup. Not even using base-config helps. The udeb package choose-mirror just greps maverick from /etc/lsb-release. Hence the script at early_command.

[Note]Note

This also works for installing Precise through the Trusty installer. The sed script above is still necessary. It now reads:

sed -i 's/^DISTRIB_RELEASE=.*$/DISTRIB_RELEASE=12.04/g ; \
s/^DISTRIB_CODENAME=.*$/DISTRIB_CODENAME=precise/g ; \
s/^DISTRIB_DESCRIPTION=.*$/DISTRIB_DESCRIPTION="Ubuntu 12.04 LTS"/g' /etc/lsb-release