1 |
#!/bin/bash |
#!/bin/bash |
2 |
# $Header: /home/cvsd/magellan-cvs/magellan-src/mkinitrd-magellan/livecd/mkinitrd-livecd.in,v 1.3 2008-03-31 13:50:09 niro Exp $ |
# $Id$ |
3 |
|
|
4 |
# mkinitrd-livecd |
# mkinitrd-livecd |
5 |
# |
# |
48 |
MODULES_SATA="${LIBDIR}/mkinitrd/modules.sata" |
MODULES_SATA="${LIBDIR}/mkinitrd/modules.sata" |
49 |
MODULES_PATA="${LIBDIR}/mkinitrd/modules.pata" |
MODULES_PATA="${LIBDIR}/mkinitrd/modules.pata" |
50 |
MODULES_FRAMEBUFFER="${LIBDIR}/mkinitrd/modules.framebuffer" |
MODULES_FRAMEBUFFER="${LIBDIR}/mkinitrd/modules.framebuffer" |
|
MAKEDEV="${LIBDIR}/mkinitrd/MAKEDEV.sh" |
|
51 |
|
|
52 |
compress=1 |
compress=1 |
53 |
allowmissing="" |
allowmissing="" |
93 |
|
|
94 |
echo "Looking for deps of module $1" |
echo "Looking for deps of module $1" |
95 |
deps=$(awk 'BEGIN { searched=ARGV[2]; ARGV[2]=""; rc=1 } \ |
deps=$(awk 'BEGIN { searched=ARGV[2]; ARGV[2]=""; rc=1 } \ |
96 |
function modname(filename) { match(filename, /\/([^\/]+)\.k?o:?$/, ret); return ret[1] } \ |
function modname(filename) { match(filename, /\/([^\/]+)\.k?o.?g?z?:?$/, ret); return ret[1] } \ |
97 |
function show() { if (orig == searched) { print dep; orig=""; rc=0; exit } } \ |
function show() { if (orig == searched) { print dep; orig=""; rc=0; exit } } \ |
98 |
/^\/lib/ { show(); \ |
/^.*kernel/ { show(); \ |
99 |
orig=modname($1); dep=""; \ |
orig=modname($1); dep=""; \ |
100 |
if ($2) { for (i = 2; i <= NF; i++) { dep=sprintf("%s %s", dep, modname($i)); } } } \ |
if ($2) { for (i = 2; i <= NF; i++) { dep=sprintf("%s %s", dep, modname($i)); } } } \ |
101 |
/^ / { dep=sprintf("%s %s", dep, modname($1)); } \ |
/^ / { dep=sprintf("%s %s", dep, modname($1)); } \ |
131 |
|
|
132 |
case "${MODULES} " in |
case "${MODULES} " in |
133 |
*"/${modName}.ko "*) return ;; |
*"/${modName}.ko "*) return ;; |
134 |
|
*"/${modName}.ko.gz "*) return ;; |
135 |
esac |
esac |
136 |
|
|
137 |
if echo ${builtins} | egrep -q '(^| )'${modName}'( |$)' |
if echo ${builtins} | egrep -q '(^| )'${modName}'( |$)' |
164 |
done |
done |
165 |
fi |
fi |
166 |
|
|
167 |
for modExt in o.gz o ko |
for modExt in o.gz o ko ko.gz |
168 |
do |
do |
169 |
for modDir in /lib/modules/${kernel}/updates /lib/modules/${kernel} |
for modDir in /lib/modules/${kernel}/updates /lib/modules/${kernel} |
170 |
do |
do |
237 |
if [ -x /usr/bin/strip ] && [[ ${NOSTRIP} = false ]] |
if [ -x /usr/bin/strip ] && [[ ${NOSTRIP} = false ]] |
238 |
then |
then |
239 |
/usr/bin/strip -g ${verbose} ${MODULE} -o ${DEST}/lib/$(basename ${MODULE}) || die |
/usr/bin/strip -g ${verbose} ${MODULE} -o ${DEST}/lib/$(basename ${MODULE}) || die |
240 |
|
# handle gzip compressed modules right |
241 |
|
elif [[ ${MODULE##*.} = gz ]] |
242 |
|
then |
243 |
|
zcat ${verbose} ${MODULE} > ${DEST}/lib/$(basename ${MODULE} .gz) || die |
244 |
|
MODULE="${MODULE/.gz/}" |
245 |
else |
else |
246 |
cp ${verbose} -a ${MODULE} ${DEST}/lib || die |
cp ${verbose} -a ${MODULE} ${DEST}/lib || die |
247 |
fi |
fi |
248 |
|
|
249 |
# generate modules load file |
# generate modules load file |
250 |
echo "$(basename ${MODULE} .ko)" >> ${DEST}/etc/$(basename ${list}) || die |
local modname i |
251 |
|
modname="${MODULE##*/}" |
252 |
|
for i in .o .ko .gz |
253 |
|
do |
254 |
|
modname="${modname/${i}/}" |
255 |
|
done |
256 |
|
echo "${modname}" >> ${DEST}/etc/$(basename ${list}) || die |
257 |
done |
done |
258 |
|
|
259 |
export ALL_MODULES="${ALL_MODULES} ${MODULES}" |
export ALL_MODULES="${ALL_MODULES} ${MODULES}" |
310 |
[[ ! -e ${LINUXRC} ]] && die "linuxrc '${LINUXRC}' not found." |
[[ ! -e ${LINUXRC} ]] && die "linuxrc '${LINUXRC}' not found." |
311 |
|
|
312 |
# create basic filesystem layout |
# create basic filesystem layout |
313 |
install -d ${DEST}/{bin,dev,etc,lib,loopfs,proc,sbin,sys,sysroot} || die |
install -d ${DEST}/{bin,dev,etc,lib,loopfs,proc,sbin,sys,sysroot,usr/bin,usr/sbin} || die |
314 |
|
|
315 |
# install busybox |
# install busybox |
316 |
echo "$(which busybox.mkinitrd)" |
echo "$(which busybox.mkinitrd)" |
330 |
# sbin related |
# sbin related |
331 |
for i in chroot init losetup modprobe pivot_root |
for i in chroot init losetup modprobe pivot_root |
332 |
do |
do |
333 |
# static links |
ln -s ${DEST}/bin/busybox ${DEST}/sbin/${i} || die "${i}" |
|
ln ${DEST}/bin/busybox ${DEST}/sbin/${i} || die "${i}" |
|
334 |
done |
done |
335 |
|
|
336 |
# install run-init |
# install run-init |
338 |
install -m0755 $(which run-init.mkinitrd) ${DEST}/sbin/run-init || die |
install -m0755 $(which run-init.mkinitrd) ${DEST}/sbin/run-init || die |
339 |
|
|
340 |
# install insmod.static |
# install insmod.static |
341 |
echo "$(which insmod.static)" |
#echo "$(which insmod.static)" |
342 |
install -m0755 $(which insmod.static) ${DEST}/sbin/insmod || die |
#install -m0755 $(which insmod.static) ${DEST}/sbin/insmod || die |
343 |
|
|
344 |
# install v86d for uvesafb support if installed |
# install v86d for uvesafb support if installed |
345 |
if which v86d &> /dev/null |
if which v86d &> /dev/null |
346 |
then |
then |
347 |
echo "$(which insmod.static)" |
echo "$(which v86d)" |
348 |
install -m0755 $(which v86d) ${DEST}/sbin/v86d || die |
install -m0755 $(which v86d) ${DEST}/sbin/v86d || die |
349 |
fi |
fi |
350 |
|
|
|
# create some needed device nodes |
|
|
install -o root -g root -m0754 ${MAKEDEV} ${DEST}/dev/MAKEDEV || die |
|
|
( cd ${DEST}/dev; ./MAKEDEV -v generic-nopty) |
|
|
|
|
351 |
## install kernel modules ## |
## install kernel modules ## |
352 |
# generic needed |
# generic needed |
353 |
install_kernel_modules "${MODULES_GENERIC}" |
install_kernel_modules "${MODULES_GENERIC}" |