summaryrefslogtreecommitdiffstats
path: root/initrd/initrd-stuff
diff options
context:
space:
mode:
authorDirk von Suchodoletz2006-03-08 20:16:36 +0100
committerDirk von Suchodoletz2006-03-08 20:16:36 +0100
commit8bd96400a49762c9c8aae0d2cccd53ae129c827a (patch)
treedb080e5062632254416222c49cce2a08617e3ed0 /initrd/initrd-stuff
parentstarted integration of vmware services ... (diff)
downloadcore-8bd96400a49762c9c8aae0d2cccd53ae129c827a.tar.gz
core-8bd96400a49762c9c8aae0d2cccd53ae129c827a.tar.xz
core-8bd96400a49762c9c8aae0d2cccd53ae129c827a.zip
added hard disk detection, swap and special partition "44", started with
new vmware environment integration ... git-svn-id: http://svn.openslx.org/svn/openslx/dxs/ld4@96 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'initrd/initrd-stuff')
-rwxr-xr-xinitrd/initrd-stuff/bin/hwautocfg34
-rwxr-xr-xinitrd/initrd-stuff/bin/servconfig25
-rw-r--r--initrd/initrd-stuff/etc/vmware-prep43
-rwxr-xr-xinitrd/initrd-stuff/init6
4 files changed, 80 insertions, 28 deletions
diff --git a/initrd/initrd-stuff/bin/hwautocfg b/initrd/initrd-stuff/bin/hwautocfg
index ada09a31..bf82c2c2 100755
--- a/initrd/initrd-stuff/bin/hwautocfg
+++ b/initrd/initrd-stuff/bin/hwautocfg
@@ -403,19 +403,14 @@ if [ -n "$IDE" ] ; then
# you might want to check /etc/sysconfig/floppy for more info
strinfile "ZIP" /tmp/hwsetup.info && modprobe ${MODPRV} ide_floppy
strinfile "CDROM" /tmp/hwsetup.info && modprobe ${MODPRV} ide_cd
- strinfile "HD" /tmp/hwsetup.info && modprobe ${MODPRV} ide_disk &
+ strinfile "HD" /tmp/hwsetup.info && modprobe ${MODPRV} ide_disk
fi
# not rather precise ...
if strinfile "SCSI" /tmp/hwsetup.info ; then
strinfile "CDROM" /tmp/hwsetup.info && modprobe -a ${MODPRV} sr_mod sg
- strinfile "HD" /tmp/hwsetup.info && modprobe ${MODPRV} sd_mod &
+ strinfile "HD" /tmp/hwsetup.info && modprobe ${MODPRV} sd_mod
fi
-
-# cdrom/dvd und plattenkonfig. ergaenzen. Module sind hier geladen und
-# devices sind klar
-
-
# fixme - psmouse entladen, falls nicht vorhanden
# configure some variables from configuration file - wait for dhcp or ldap
@@ -427,6 +422,29 @@ data via ldap until now ..." nonfatal
. /etc/machine-setup
# wait for completion of clients root filesystem in /mnt
waitfor /tmp/fscmpl 40000
+
+# postpone some commands into normal bootup environment
+echo -e "\t# entry added by $0: $date" \
+ >>/mnt/etc/${D_INITDIR}/boot.ld
+# cdrom/dvd und plattenkonfig. ergaenzen. Module sind hier geladen und
+# devices sind klar
+for hd in $(cat /tmp/hwsetup.info|sed -n -e '/HD$/,/device:/p'| \
+ sed -n -e '/device:/p' | sed -e 's/device: //') ; do
+ fdisk -l /dev/$hd| sed -n "/^\/dev\//p" > /tmp/hd_part
+ for hdpartnr in $(cat /tmp/hd_part | \
+ sed -n -e "/ 82 /p"|sed -e "s/[[:space:]].*//") ; do
+ echo -e "$hdpartnr\tswap\t\tswap\t\tdefaults\t0 0" >> /mnt/etc/fstab
+ done
+ # we use special non assigned partition type for harddisk scratch space
+ for hdpartnr in $(cat /tmp/hd_part | \
+ sed -n -e "/ 44 /p"|sed -e "s/[[:space:]].*//") ; do
+ echo -e "\t( mke2fs -q $hdpartnr; mount -n $hdpartnr /mnt/tmp ) &" \
+ >>/mnt/etc/${D_INITDIR}/boot.ld
+ #
+ break
+ done
+done
+
# run localizator and configure keyboard and console fonts
DEFKEYTABLE="de-latin1-nodeadkeys"
localization $country
@@ -435,8 +453,6 @@ if [ -z "${KEYTABLE}" ] ; then
'${DEFKEYTABLE}' defined\nin $0."
KEYTABLE=${DEFKEYTABLE}
fi
-echo -e "\t# entry added by $0: $date" \
- >>/mnt/etc/${D_INITDIR}/boot.ld
echo -e "\tloadkeys -q ${KEYTABLE}\n" >>/mnt/etc/${D_INITDIR}/boot.ld
[ -n "${CONSOLE_FONT}" ] && consolefont
# run X11 / Xorg configurator
diff --git a/initrd/initrd-stuff/bin/servconfig b/initrd/initrd-stuff/bin/servconfig
index ce1543ba..a6ce3793 100755
--- a/initrd/initrd-stuff/bin/servconfig
+++ b/initrd/initrd-stuff/bin/servconfig
@@ -194,7 +194,7 @@ if [ "x$start_x" != "xno" ] ; then
chmod a+rwxt /mnt/tmp/.X11-unix
echo "" > /mnt/etc/X11/xdm/Xservers
# define additional sessions offered to the user (via dhcp/ldap config)
- descsession
+ # descsession -> deprecated by new vmware integration concept
# write available X display manager to /etc/X11/xdm/Xaccess
[ -n "$x_display_manager" ] && \
echo -e "# /etc/X11/xdm/Xaccess - file generated by $0: \
@@ -307,7 +307,7 @@ if [ "x$nis_domain" != "x" ] && [ "x$nis_servers" != "x" ] ; then
echo -e "# /etc/yp.conf - file generated by $0:\n\
#\t$date\n\nypserver "$nis_servers >/mnt/etc/yp.conf
# should be last in passwd file
- strinfile "+::::::" /mnt/etc/passwd || echo "+::::::" >>/mnt/etc/passwd
+ strinfile "+::::::" /mnt/etc/passwd||echo "+::::::" >>/mnt/etc/passwd
fi
#######################################################################
@@ -321,20 +321,13 @@ config_nscd
# create needed directories and files
if [ "x$vmware" != "x" ] || [ "x$vmware" != "xno" ] ; then
-for i in /var/lib/vmware /etc/vmware/vmnet1 /etc/vmware/vmnet8 \
- /var/run/vmware ; do
- testmkd /mnt/$i
-done
-chmod 1777 /mnt/var/run/vmware
-rm /mnt/etc/vmware/not_configured
-# device creation might not be needed any longer!?
-for i in 0 1 2 3 4 5 6 7 8 9; do
- [ -c /mnt/dev/vmnet$i ] || mknod /dev/vmnet$i c 119 $i
-done
-chmod 0700 /mnt/dev/vmnet*
-# check for the place of VM images
-
-
+ config_vmware
+ for i in /var/lib/vmware /etc/vmware/vmnet1 /etc/vmware/vmnet8 \
+ /var/run/vmware ; do
+ testmkd /mnt/$i
+ done
+ chmod 1777 /mnt/var/run/vmware
+ rm /mnt/etc/vmware/not_configured 2>/dev/null
fi
# servconfig finished successfully
diff --git a/initrd/initrd-stuff/etc/vmware-prep b/initrd/initrd-stuff/etc/vmware-prep
new file mode 100644
index 00000000..c8a21295
--- /dev/null
+++ b/initrd/initrd-stuff/etc/vmware-prep
@@ -0,0 +1,43 @@
+
+ # main part of vmware preparation script. The wrapper is
+ # distro specific ...
+ #
+ # Description: Adaptation of a generic runlevel script file
+ # for use with Diskless X Stations (v4.0) - script prepares
+ # vmware environment
+ #
+ # Author(s): Michael Janczyk, 26-08-2005
+ # Dirk von Suchodoletz <dirk@goe.net>, 08-03-2006
+ # Copyright: (c) 2003, 2006 - RZ Universitaet Freiburg
+ #
+ # Version: 0.1a
+
+ . /etc/machine-setup
+
+ # device creation - the module does not trigger udev properly
+ for i in 0 1 2 3 4 5 6 7 8 9; do
+ [ -c /dev/vmnet$i ] || mknod /dev/vmnet$i c 119 $i; done
+ chmod 0700 /dev/vmnet*
+
+ # loop file for exchanging information between linux and vmware
+ #cp /var/lib/vmware/import/templ/empty1440.img
+
+ # special start script for vmware with predefined image
+ if test -w /usr/X11R6/bin ; then
+ path="/usr/X11R6/bin"
+ cp /var/lib/vmware/import/templ/runvmware \
+ /usr/X11R6/bin
+ else
+ path="/var/X11R6/bin"
+ test -d /var/X11R6/bin || mkdir -p /var/X11R6/bin
+ cp /var/lib/vmware/import/templ/runvmware \
+ /var/X11R6/bin
+ fi
+
+ echo -e "#!/bin/sh\n#\n# file generated by\n#\t$0:\n#\t$date\n
+OSTYPE=\`echo \$0 | sed -e \"s,-, ,\" -e \"s,.*/,,\" | awk '{print \$1}'\`
+SPECTYPE=\`echo \$0 | sed -e \"s,-, ,\" -e \"s,.*/,,\" | awk '{print \$2}'\`\n
+OPTS=\"-o \$OSTYPE \${SPECTYPE:+\"-s \$SPECTYPE\"}\"\n
+xterm -bg black -fg white -geometry 170x30+0-0 +sb \
+-e \"$path/runvmware \$OPTS $debug\"\n" > $path/desktop-session
+
diff --git a/initrd/initrd-stuff/init b/initrd/initrd-stuff/init
index b917189e..39280a4d 100755
--- a/initrd/initrd-stuff/init
+++ b/initrd/initrd-stuff/init
@@ -8,7 +8,7 @@
#
# Copyright: (c) 2006 - RZ Universitaet Freiburg
#
-# Version: 0.2.3a
+# Version: 0.2.3b
# functions common for all distros
errmsg="functions file contains a lot of script \
@@ -379,7 +379,7 @@ echo -e "# /etc/fstab - file generated by\n#\t$0:\n#\tDirk von \
Suchodoletz, dirk@goe.net\n\nrootfs\t\t/\t\trootfs\t\tro\t\t 0 0\n\
proc\t\t/proc\t\tproc\t\tdefaults\t 0 0\ninitramdevs\t/dev\t\ttmpfs\
\t\trw\t\t 0 0\ndevpts\t\t/dev/pts\tdevpts\t\tmode=0620,gid=5\t 0 0\n\
-usbfs\t\t/proc/bus/usb\tusbfs\t\tnoauto\t\t 0 0">/mnt/etc/fstab || \
+usbfs\t\t/proc/bus/usb\tusbfs\t\tnoauto\t\t 0 0" >>/mnt/etc/fstab || \
error "Failed to create /etc/fstab in the clients root filesystem. The\n\
noexistence of the file might produce some unexpected behaviour of\n\
mount commands."
@@ -413,7 +413,7 @@ d_mkbootld close
# should be killed if started within init
killall -9 dhcpcd dhclient pump 2>/dev/null
-#bash
+bash
# post init for some distro specific
postinit