Getting d-i to find firmware on the CD generated by debian-cd
In the Debian Edu project, we generate our own CDs with adjustment to
the installer and provided packages. We have also included some
non-free firmware deb packages in the naive hope that d-i would use
them when needed. This has proven to not work, as d-i do not look for
firmware packages in the APT repository on the CD.
Yesterday, I figured out a workaround for this, and I wanted to share
the solution with the rest of you, and ask if perhaps the default
behaviour of debian-cd or d-i (hw-detect) should change to make this
workaround unneeded.
The d-i package hw-detect look for firmware packages in / and
/firmware/ on the CD and USB stick available during installation,
while debian-cd build CDs with packages under /pool/. To get d-i to
find the provided firmware packages, I wrote a script to create
/firmware/ on the CD and populate it with symlinks to the packages in
/pool/.
To enable it, set DISC_FINISH_HOOK in CONF.sh to point to a script
looking like this:
#!/bin/sh
#
# Debian installer (hw-detect) do not look in pool/ for firmware packages.
# It only look in / and /firmware/ on the CDs and USB sticks. Adjust
# the CD and DVD to also provide the firmware packages in a location
# checked by hw-detect.
set -e
CDDIR="$4"
mkdir $CDDIR/firmware
cd $CDDIR/firmware
ln -s ../pool/non-free/f/firmware-nonfree/*.deb .
Should this be the default behaviour of debian-cd, or should hw-detect
be changed to look for firmware packages where debian-cd put them when
firmware debs is in the package list?
CC to debian-edu, to keep us in the loop.
Happy hacking,
--
Petter Reinholdtsen
Reply to: