summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--initrd/distro-specs/suse/functions-default19
-rw-r--r--initrd/distro-specs/ubuntu/functions-default24
-rwxr-xr-xinitrd/initrd-stuff/init77
-rwxr-xr-xinstaller/ld4-inst6
4 files changed, 74 insertions, 52 deletions
diff --git a/initrd/distro-specs/suse/functions-default b/initrd/distro-specs/suse/functions-default
index 34cf34c9..a2d5ba48 100644
--- a/initrd/distro-specs/suse/functions-default
+++ b/initrd/distro-specs/suse/functions-default
@@ -179,7 +179,9 @@ if [ "${DEBUGLEVEL}" -gt 0 ] ; then
else
local debug="false"
fi
-echo -e "# /etc/opt/gnome/gdm/gdm.conf - file generated by $0\n\
+# check if a gdm.conf was provided via ConfTGZ
+if [ ! -f /etc/opt/gnome/gdm/gdm.conf ] ; then
+ echo -e "# /etc/opt/gnome/gdm/gdm.conf - file generated by $0\n\
[daemon]
AutomaticLoginEnable=false
TimedLoginEnable=false
@@ -269,24 +271,27 @@ Hosts=$xdmcp_hosts
[debug]
Enable=$debug" >/mnt/etc/opt/gnome/gdm/gdm.conf
-if [ "x$start_x" = "xindirect" ] ; then
- # when X server consumes to much mem set X -terminate
- echo -e "\n[servers]\n0=Terminal -audit 0 -indirect \
+ if [ "x$start_x" = "xindirect" ] ; then
+ # when X server consumes to much mem set X -terminate
+ echo -e "\n[servers]\n0=Terminal -audit 0 -indirect \
$host_name\n\n\
[server-Terminal]\nname=Terminal server\ncommand=/usr/X11R6/bin/X \
-audit 0\n\
flexible=true\nhandled=true\nchooser=true" >>/mnt/etc/opt/gnome/gdm/gdm.conf
-else
- echo -e "\n[servers]\n0=Standard\n\n\
+ else
+ echo -e "\n[servers]\n0=Standard\n\n\
[server-Standard]\nname=Standard server\ncommand=/usr/X11R6/bin/X\n\
flexible=true\nhandled=true" >>/mnt/etc/opt/gnome/gdm/gdm.conf
+ fi
fi
}
# configure kdm as display manager
config_kdm () {
config_dm_entry yes
-echo -e "# /etc/opt/kde3/share/config/kdm/kdmrc - \
+# check if a kdmrc was provided via ConfTGZ
+[ -f /rootfs/etc/opt/kde3/share/config/kdm/kdmrc ] || \
+ echo -e "# /etc/opt/kde3/share/config/kdm/kdmrc - \
file generated by\n\
#\t$0: $date\n\
[General]\n\
diff --git a/initrd/distro-specs/ubuntu/functions-default b/initrd/distro-specs/ubuntu/functions-default
index ea9841ee..0310d1c7 100644
--- a/initrd/distro-specs/ubuntu/functions-default
+++ b/initrd/distro-specs/ubuntu/functions-default
@@ -1,14 +1,12 @@
-# Description: configuration script for general Ubuntu to configure
-# linux diskless clients (executed within initial ramdisk
-# after genconfig)
+# configuration script for general Ubuntu to configure OpenSLX linux
+# diskless clients (executed within initial ramdisk after genconfig)
#
-# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 23-06-2006
-# Nico Dietrich
-# Felix Endres
+# Dirk von Suchodoletz <dirk@goe.net>, 23-06-2006
+# Nico Dietrich
+# Felix Endres
#
-# Copyright: (c) 2006 - RZ Universitaet Freiburg
-#
-# Version: 0.3.0a
+# (c) 2006 - RZ Universitaet Freiburg
+# (c) 2006 - OpenSLX.ORG project
# empty functions are defined at the beginning of /etc/functions
@@ -219,6 +217,8 @@ fi
echo "gdm:x:113:">>/etc/group
echo "gdm:x:106:113:Gnome Display Manager" >> /etc/shadow
+# fixme: check if a gdm.conf was provided via ConfTGZ
+# [ -f /rootfs/etc/gdm/gdm.conf ??? ] || \
echo -e "# /etc/gdm/gdm.conf - file generated by $0\n\
[daemon]
@@ -328,14 +328,20 @@ fi
# configure kdm as display manager
config_kdm () {
+# fixme: check if a kdmrc was provided via ConfTGZ
+#[ -f /rootfs/etc/opt/???? kdmrc ] || \
+# echo " ..." > kdmrc
+#if [ "x$late_dm" = "xyes" ] ; then
rllinker "kdm" "25" "01"
if [ "x$start_xdmcp" = "xkdm" ]; then
echo /usr/bin/kdm > /mnt/etc/X11/default-display-manager
fi
+#else
# ln -sf ../${D_INITDIR}/kdm /mnt/etc/rc3.d/K20kdm
# echo -e "\t/etc/${D_INITDIR}/kdm start >${LOGFILE} 2>&1\n\
# \t( sleep 120; ln -sf /etc/${D_INITDIR}/kdm /etc/rc3.d/S01kdm \
# >${LOGFILE} 2>&1) &\n" >>/mnt/etc/${D_INITDIR}/boot.ld
+#fi
}
# configure hal, dbus, resmgr and services like that
diff --git a/initrd/initrd-stuff/init b/initrd/initrd-stuff/init
index 78ab8732..55ee6de9 100755
--- a/initrd/initrd-stuff/init
+++ b/initrd/initrd-stuff/init
@@ -1,13 +1,11 @@
#!/bin/sh
-# Description: main script for new type of initial ramdisk for
-# linux diskless clients version 4
+# main script for new type of initial ramdisk for OpenSLX linux diskless
+# clients version 4
#
-# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 15-08-2006
+# Dirk von Suchodoletz <dirk@goe.net>, 07-09-2006
#
-# Copyright: (c) 2006 - RZ Universitaet Freiburg
-# (c) 2006 - openslx.org project
-#
-# Version: 0.2.6e
+# (c) 2006 - RZ Universitaet Freiburg
+# (c) 2006 - OpenSLX.ORG project
# functions common for all distros, messages contains all error and info
# output
@@ -46,8 +44,8 @@ echo 256 > /proc/sys/kernel/real-root-dev
# redirect console (after /dev/console is available, and /dev mounted)
exec < /dev/console > /dev/console 2>&1
-# set defaults for some important variables, might be overwritten via kernel
-# commandline
+# set defaults for some important variables, might be overwritten via
+# kernel commandline
TMPFSSIZE="50%"
COWSIZE="50%"
RWDIR=/dev/shm
@@ -102,10 +100,9 @@ in $0\ncountry=\"${COUNTRY}\"" >> /etc/machine-setup
LDAP="yes"
rm /tmp/ldap-done
;;
- # if (external, via tftp) configuration file retrieval should
- # be triggered, if no source is given try dhcp server and
- # predefined standard path (~/tftpboot/client-conf/default,
- # client-conf/<name-of-export>/default, ...)
+ # if (external, via tftp) configuration file retrieval should be
+ # triggered, if no source is given try dhcp server and predefined
+ # standard path (~/tftpboot/client-conf/ ...)
file)
FILE="yes"
rm /tmp/file-done
@@ -133,23 +130,41 @@ in $0\ncountry=\"${COUNTRY}\"" >> /etc/machine-setup
COWLOOP=1
#COWSIZE=${opts#cowloop=}
;;
- # dnbd server:port,filesystem (filesystem is optional)
- dnbdroot=*)
- NBD=dnbd # name of kernel module
- NBDOPT=${opts#dnbdroot=}
+ # rootfs will void the variables (d)nbdroot, nfsroot ...
+ # fixme: allow multiple rootfs sources to be unioned!?
+ # if strinstr " " "$ROOTFS" ...
+ rootfs=*)
+ ROOTFS=${opts#rootfs=}
+ srvproto=$(uri_token $ROOTFS prot)
+ case $srvproto in
+ nfs)
+ NFSROOT=$(uri_token $ROOTFS server)":/"$(uri_token $ROOTFS path)
+ echo -e "\n# nfs root information gotten via kernel command \
+line in $0\nnfsroot=\"${NFSROOT}\"\n" >> /etc/machine-setup
+ ;;
+ *nbd)
+ nbdmod=$srvproto
+ # get settings for nbd-client, filesystem equals to path in URI
+ # notation
+ nbdhost=$(uri_token $ROOTFS server)
+ nbdport=$(uri_token $ROOTFS port)
+ nbdrfst=$(uri_token $ROOTFS path)
+ ;;
+ aoe)
+ echo "Not implemented yet"
+ ;;
+ iscsi)
+ echo "Not implemented yet"
+ ;;
+ esac
;;
# size of cache dnbd should use within ram
dcsize=*)
DNBDCACHESIZE=${opts#dcsize=};;
- # nbd server:port,filesystem (filesystem is optional)
- nbdroot=*)
- NBD=nbd # name of kernel module
- NBDOPT=${opts#nbdroot=}
- ;;
# ip configuration client-ip:server-ip:gateway:netmask
ip=*)
IPINFO=${opts#ip=};;
- # nfs server and path
+ # deprecated: nfs server and path (will be removed soon)
nfsroot=*)
NFSROOT=${opts#nfsroot=}
echo -e "\n# nfs root information gotten via kernel command line in $0\n\
@@ -247,19 +262,15 @@ fi
[ -n "$FILE" ] && fileget &
# if root filesystem should be imported via (d) network block device
-if [ -n "${NBD}" ] ; then
+if [ -n "${nbdmod}" ] ; then
# load block device driver if needed
- modprobe ${MODPRV} ${NBD} || error "$init_errnbd"
- # get settings for nbd-client, filesystem equals to path in URI notation
- nbdhost=$(uri_token $NBDOPT server)
- nbdport=$(uri_token $NBDOPT port)
- nbdrfst=$(uri_token $NBDOPT path)
+ modprobe ${MODPRV} ${nbdmod} || error "$init_errnbd"
[ -z "$nbdrfst" ] && nbdrfst=ext2
- echo "Diskless client using ${NBD} on $nbdhost:$nbdport with $nbdrfst"
+ echo "Diskless client using ${nbdmod} on $nbdhost:$nbdport with $nbdrfst"
# fixme: check for fs in /proc/filesystems before trying to load the module
modprobe ${MODPRV} ${nbdrfst} || error "$init_errnbd" nonfatal
- case "${NBD}" in
+ case "${nbdmod}" in
# network block device present in standard kernel
nbd)
RDEV=/dev/nbd0
@@ -322,7 +333,7 @@ fi
# if no type of root filesystem is passed via kernel command line try
# information gathered from dhcp process
-if [ -z "${DNBDOPT}" -a -z "${NBDOPT}" -a -z "${NFSROOT}" ] ; then
+if [ -z "${nbdmod}" -a -z "${nbdhost}" -a -z "${NFSROOT}" ] ; then
# information has to be read from dhcp configuration
if [ -z "$noipyet" ] ; then
waitfor /tmp/dhcp-done 20000
@@ -332,7 +343,7 @@ if [ -z "${DNBDOPT}" -a -z "${NBDOPT}" -a -z "${NFSROOT}" ] ; then
NFSROOT=${serverip}:${root_path}
fi
# call function for nfs mounts
-if [ -z "${DNBDOPT}" -a -z "${NBDOPT}" ] ; then
+if [ -z "${nbdmod}" -a -z "${nbdserver}" ] ; then
nfsmnt ${NFSROOT} || error "$init_nfs"
fi
diff --git a/installer/ld4-inst b/installer/ld4-inst
index a1479d8b..686f168b 100755
--- a/installer/ld4-inst
+++ b/installer/ld4-inst
@@ -4,7 +4,7 @@
# cloning from rsync source for Diskless X Stations (v4.0)
#
# Author(s): Nico Dietrich, 04-04-2006
-# Dirk von Suchodoletz <dirk@goe.net>, 31-08-2006
+# Dirk von Suchodoletz <dirk@goe.net>, 07-09-2006
# Michael Janczyk, <mj0>, 06-07-2006
#
# Copyright: (c) 2003, 2006 - RZ Universitaet Freiburg
@@ -445,7 +445,7 @@ ${rootdir} ${netname}/${netmask}(ro,no_root_squash,async)" \
echo -e "LABEL ${client_distro}-${current_kernel}\n${default_string}\
MENU LABEL $j. ${client_distro}-${client_distro_ver} ${current_kernel} Diskless\n\
KERNEL ${server}::${tftpbootdir}/vmlinuz-${current_kernel}\n\
- APPEND nfsroot=${server}:${rootdir} apic dhcp noldsc debug=$debuglevel vci=DXS \
+ APPEND rootfs=nfs://${server}${rootdir} apic dhcp noldsc debug=$debuglevel vci=DXS \
initrd=${server}::${tftpbootdir}/initrd-dxs-${current_kernel} \n\
ipappend 1\n" >> ${dxs_conf}/${dxs_pxedefault_conf}-${timestamp}
@@ -455,7 +455,7 @@ ${rootdir} ${netname}/${netmask}(ro,no_root_squash,async)" \
echo -e "LABEL ${client_distro}-${current_kernel}-nbd\n\
MENU LABEL $j. ${client_distro}-${client_distro_ver} ${current_kernel} Diskless NBD\n\
KERNEL ${server}::${tftpbootdir}/vmlinuz-${current_kernel}\n\
- APPEND nbdroot=${server}:5000/${nbdfs} apic dhcp noldsc debug=$debuglevel elevator=\"noop\" vci=DXS \
+ APPEND rootfs=nbd://${server}:5000/${nbdfs} apic dhcp noldsc debug=$debuglevel elevator=\"noop\" vci=DXS \
initrd=${server}::${tftpbootdir}/initrd-dxs-${current_kernel}\n\
ipappend 1\n" >> ${dxs_conf}/${dxs_pxedefault_conf}-${timestamp}
fi