#!/bin/sh # Work out which firmware files to include in the image # Several steps: # # 1. Look for packages which contain "firmware" or "microcode" in their package names # 2. Check each of those packages to see if they contain files in /lib/firmware # 3. For those that do, add them into the firmware temp tree # 4. Make images (tar.gz, zip) of that tree set -e MIRROR=$1 SUITE=$2 TMPDIR=$3 export LC_ALL=C if [ "$MIRROR"x = ""x ] || \ [ "$SUITE"x = ""x ] || \ [ "$TMPDIR"x = ""x ] ; then echo "$0: Need parameters" exit 1 fi rm -rf $TMPDIR/firmware mkdir -p $TMPDIR/firmware FILES=`$BASEDIR/tools/catz ${MIRROR}/dists/${SUITE}/*/binary-*/Packages.*z* | \ grep-dctrl -Pe '.*(firmware|microcode).*' -s Filename -n | sort -u` for FILE in $FILES; do # Don't use "grep -q" here, it causes errors from tar if (dpkg --contents ${MIRROR}/${FILE} | grep " ./lib/firmware/" >/dev/null) ; then cp ${MIRROR}/${FILE} $TMPDIR/firmware fi done cd $TMPDIR/firmware tar czf ../firmware.tar.gz . zip -9rq ../firmware.zip . cd .. find firmware | cpio --quiet -o -H newc | gzip -9 > firmware.cpio.gz ls -l $PWD/firmware.cpio.gz $PWD/firmware.tar.gz $PWD/firmware.zip md5sum firmware.* > MD5SUMS sha1sum firmware.* > SHA1SUMS sha256sum firmware.* > SHA256SUMS sha512sum firmware.* > SHA512SUMS