summaryrefslogtreecommitdiffstats
path: root/initrd/mkdxsinitrd
diff options
context:
space:
mode:
authorDirk von Suchodoletz2006-01-20 20:56:11 +0100
committerDirk von Suchodoletz2006-01-20 20:56:11 +0100
commit20dc751c0cc775e6098d9b4d324efa428803047e (patch)
tree18c97cfbb71a47d7270899ec5592dba395fc6df7 /initrd/mkdxsinitrd
parenteinige fixes - repco funktioniert allerdings noch nicht (diff)
downloadcore-20dc751c0cc775e6098d9b4d324efa428803047e.tar.gz
core-20dc751c0cc775e6098d9b4d324efa428803047e.tar.xz
core-20dc751c0cc775e6098d9b4d324efa428803047e.zip
Heftiges Bugfixing in mkdxsinitrd ... intensiv gecheckt mit SuSE 10.0 -
wieder funktionsfähig. git-svn-id: http://svn.openslx.org/svn/openslx/dxs/ld4@29 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'initrd/mkdxsinitrd')
-rwxr-xr-xinitrd/mkdxsinitrd72
1 files changed, 33 insertions, 39 deletions
diff --git a/initrd/mkdxsinitrd b/initrd/mkdxsinitrd
index 47d2ffb2..2865b183 100755
--- a/initrd/mkdxsinitrd
+++ b/initrd/mkdxsinitrd
@@ -3,7 +3,7 @@
# Description: universal (distro independent) generator for initial
# ramdisks for linux diskless clients
#
-# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 16-01-2006
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 20-01-2006
# Blabla
# Blub
#
@@ -66,17 +66,21 @@ repco()
local FILENAME=$1
# do not forget to define all variables which should be replaced within
# the start and configuration scripts
-if [ -d ${FILENAME} ] ; then
- mkdir -p;
+if [ -d initrd-stuff/${FILENAME} ] ; then
+ [ -d ${INSTDIR}/${FILENAME} ] || mkdir -p ${INSTDIR}/${FILENAME}
else
- sed -e "s,@@@INSTDIR@@@,${INSTDIR},g" \
- -e "s,@@@NWMODULES@@@,${NWMODULES},g" \
- -e "s,@@@KERNVER@@@,${KERNVER},g" \
- -e "s,@@@COMDIRINDXS@@@,${COMDIRINDXS},g" \
- -e "s,@@@COMETCEXCL@@@,${COMETCEXCL},g" \
- -e "s,@@@DISTRO@@@,${DISTRO},g" \
- -e "s,@@@NETIF@@@,${NET_IF},g" \
- ${FILENAME} >> ${INSTDIR}/${FILENAME}
+ if file initrd-stuff/${FILENAME}| grep "ELF" &>/dev/null ; then
+ cp initrd-stuff/${FILENAME} ${INSTDIR}/${FILENAME}
+ else
+ sed -e "s,@@@INSTDIR@@@,${INSTDIR},g" \
+ -e "s,@@@NWMODULES@@@,${NWMODULES},g" \
+ -e "s,@@@KERNVER@@@,${KERNVER},g" \
+ -e "s,@@@COMDIRINDXS@@@,${COMDIRINDXS},g" \
+ -e "s,@@@COMETCEXCL@@@,${COMETCEXCL},g" \
+ -e "s,@@@DISTRO@@@,${DISTRO},g" \
+ -e "s,@@@NETIF@@@,${NET_IF},g" \
+ initrd-stuff/${FILENAME} >> ${INSTDIR}/${FILENAME}
+ fi
fi
}
@@ -159,10 +163,6 @@ resolve_modules() {
--set-version $kernel_version --ignore-install \
--show-depends $module 2> /dev/null \
| sed -ne 's:.*insmod /\?::p' )
- if [ -z "$module_list" ]; then
- echo "Cannot determine dependencies of module $module." \
- "Is modules.dep up to date?"
- fi
echo "$module_list"
done \
| awk ' # filter duplicates: we must not reorder modules here!
@@ -265,26 +265,23 @@ mkdir -p ${INSTDIR}/etc/sysconfig
# source configuration file for the distribution used
#DISTRO=debian
-if [ -z "${DISTRO}" ] ; then
- for i in ${ROOTDIR}/bin/lsb_release ${ROOTDIR}/usr/bin/lsb_release; do
- if [ -e $i ] ; then
- DISTRO=`. $i -a | grep "Distributor" | sed "s/.*\t//"`
- echo $DISTRO
- DISTRO_VER=`. $i -a | grep "Release:" | sed "s/.*\t//"`
- break
- fi
- done
-fi
+# fixmee!! Funktion knallt, wenn lsb_release nicht da!!
+#if [ -z "${DISTRO}" ] ; then
+# for i in ${ROOTDIR}/bin/lsb_release ${ROOTDIR}/usr/bin/lsb_release; do
+# if [ -e $i ] ; then
+# DISTRO=`. $i -a | grep "Distributor" | sed "s/.*\t//"`
+# echo $DISTRO
+# DISTRO_VER=`. $i -a | grep "Release:" | sed "s/.*\t//"`
+# break
+# fi
+# done
+#fi
if [ -z "${DISTRO}" ] ; then
if [ -e ${ROOTDIR}/etc/SuSE-release ] ; then
DISTRO=suse
DISTRO_VER=`grep "VERSION" /etc/SuSE-release | sed "s/.*= //"`
- fi
-fi
-
-if [ -z "${DISTRO}" ] ; then
- if [ -e ${ROOTDIR}/etc/debian-version ] ; then
+ elif [ -e ${ROOTDIR}/etc/debian-version ] ; then
DISTRO=debian
DISTRO_VER=`cat ${ROOTDIR}/etc/debian-version`
fi
@@ -342,11 +339,6 @@ for bbins in ip ifconfig; do
else echo "Binary not found"; fi
done
-# copy and replace variable names
-find initrd-stuff -exec repco '{}' \;
-
-# distro dependet stuff for etc, booting !?
-
# needed standard binaries
for bbins in \
cat chmod chown chroot cp expr killall ln mkdir modprobe \
@@ -383,6 +375,7 @@ mkdir -p ${INSTDIR}/var/lib/nfs/state
#if nfs - dann modul suchen, kopieren
+# distro specific additional stuff
case "${DISTRO}" in
debian*)
cp /lib/libnss_compat.so.2 ${INSTDIR}/lib;;
@@ -421,12 +414,13 @@ for module in `resolve_modules ${KERNVER} af_packet ${NWMODULES} ${FSMODULES}`;
done
cp /lib/modules/${KERNVER}/modules.* ${INSTDIR}/lib/modules/${KERNVER}
-#die beiden repco-zeilen koennen hier bald weg, weil oben schon alles kopiert wird.
-
-#repco initrd-stuff/init ${INSTDIR}/init
+# initial ramdisk scripts: init, functions, servconfig, hwautocfg, ...
+# copy and replace variable names
+for dirs in `find initrd-stuff/* ! -regex ".*/\..*"` ; do
+ repco ${dirs##initrd-stuff/}
+done
chmod 755 ${INSTDIR}/init ${INSTDIR}/bin/servconfig \
${INSTDIR}/bin/hwautocfg ${INSTDIR}/bin/dhcpmkconfig
-#repco initrd-stuff/etc/functions ${INSTDIR}/etc/functions
#########################################################################
# End of file copy procedures