#!/bin/bash CWD=`pwd` OUT="$1" if [[ "$OUT" = "" ]] then echo "Usage: $0 " exit 1 fi mkdir $OUT (cd $OUT ; tar xf $CWD/skeleton_initrd.tar.xz) (cd $OUT/lib ; tar xf $CWD/firmware.tar.xz) if [[ "$LIBDIRSUFFIX" = "" ]] then (cd $OUT mv lib64/* lib/ rmdir lib64 ) fi for d in *.list do d=`basename $d .list` dorig="$d" if [[ "$d" = "lib64" && "$LIBDIRSUFFIX" = "" ]] then d="lib" fi mkdir -p $OUT/$d for file in `cat $d.list` do dfile=`dirname $file` file=`basename $file` if [[ "$dfile" = "." ]] then dfile="" else if [[ "$LIBDIRSUFFIX" = "" ]] then dfile=`echo $dfile | sed 's|lib64/|lib/|g'` fi mkdir -p $OUT/$d/$dfile dfile="$dfile/" fi ofile="/$d/${dfile}"`basename $file .bin` if [[ ! -f $ofile ]] then if [[ "$d" = "sbin" || "$d" = "bin" || "$dorig" = "lib64" ]]; then ofile="/usr/$d/$dfile"`basename $file .bin` if [[ ! -f $ofile ]] then if [[ "$d" = "sbin" ]]; then ofile="/usr/bin/$dfile"`basename $file .bin` fi fi fi fi if [[ -f $ofile ]] then cp -p $ofile "$OUT/$d/$dfile$file" else echo "WARNING: file $ofile not found" fi done done chroot $OUT ldconfig cd $OUT find . | cpio -o -H newc | gzip -9c > $TMP/initrd-setup.gz cd -