function actionMkInitrd
{
- echo "Creating initrd: $PATH_/minirt26.gz"
- isExistent "$PATH_/minirt26.gz" && echo "$PATH_/minirt26.gz does already exist, skipping initrd creation" && return 0
+ echo -n "Creating initrd $PATH_/minirt26.gz: "
+ isExistent "$PATH_/minirt26.gz" && echo && echo "$PATH_/minirt26.gz exists already, skipping initrd creation" && return 0
mkInitrd
- echo 'done'
+ echo done
}
function mkInitrd
# implanting my initrd changes into the original initrd
# copy programs, check if there are already links with this name to busybox
- for i in $USR_SHARE_/discover* $USR_SHARE_/udhcpc $USR_SHARE_/udhcp-config.sh $USR_SHARE_/cdir $USR_SHARE_/rdir /usr/bin/ldd ;do
+ for i in $USR_SHARE_/timeout $USR_SHARE_/discover* $USR_SHARE_/udhcpc $USR_SHARE_/udhcp-config.sh $USR_SHARE_/cdir $USR_SHARE_/rdir /usr/bin/ldd ;do
tmp_name_="${i##*/}"
isNotExistent "$INITRD_/static/$tmp_name_" eprint || execute "rm $INITRD_/static/$tmp_name_"
cp $i "$INITRD_/static/$tmp_name_"
isNotExistent $CARDS_DETECTED_BY_DISCOVER && awk '/ethernet/{print $3}' /lib/discover/pci.lst |sort |uniq > $CARDS_DETECTED_BY_DISCOVER
else # newer discover does not provide /lib/discover/pci.lst, get a list of all network drivers therefore
isNotExistent $CARDS_DETECTED_BY_DISCOVER && \
- find /lib/modules/`uname -r`/kernel/drivers/net/ -name \*.ko | sed 's#.*./## ; s#\.ko##' | sort | uniq > $CARDS_DETECTED_BY_DISCOVER
+ # find *all* network drivers
+ find /lib/modules/`uname -r`/kernel/drivers/net/ -name \*.ko | grep -v 'wireless\|wan\|hamradio\|wlan\|ppp\|irda\|pcmcia' | \
+ sed 's#.*./## ; s#\.ko##' | sort | uniq > $CARDS_DETECTED_BY_DISCOVER
+ # find the ones supported by discover
+ # for mod in `grep "name'>.*</data>" /lib/discover/pci-device.xml | sed "s#.*name'>## ; s#</data>##" | sort -u`; do
+ # find /lib/modules/${KERNEL_VERSION_}/kernel/drivers/net -name ${mod}.ko | sed 's#.*./## ; s#\.ko##' >> $CARDS_DETECTED_BY_DISCOVER
+ # done
fi
local modules="`cat $CARDS_DETECTED_BY_DISCOVER |xargs` af_packet"
local modules_dep=""
- # get paths of modules + paths of all dependet modules
+ # get paths of modules + paths of all dependent modules
echo -n "" >"$TMP_"
for i in $modules; do
tmp_=`awk -F: '{if($1~/'"$i".ko'/) {print $0}}' $MODULES_PATH_/$KERNEL_VERSION_/modules.dep`
echo "${tmp_%%:*}"
# FIXME ugly sed hack :(
- echo "${tmp_#*:}" |xargs -n1 echo |sed 's/://'
+ echo "${tmp_#*:}" | xargs -n1 echo | sed 's/://'
done \
| sort | uniq | while read module relax; do
if [ -n "$module" ]; then
local tmp_size=`du -s $INITRD_ |awk '{print $1}'` # in kB
let tmp_size=$tmp_size+1000
if (( $tmp_size >= 16000 )); then
- warn "Your initrd is $tmp_size kByte large => TOO BIG (should be 16000kByte)"
+ warn "Your initrd is $tmp_size kByte large => TOO BIG (should be <= 16000kB)"
warn "Please remove a few modules from $CARDS_DETECTED_BY_DISCOVER or edit $INITRD_ manually"
return 1
fi