diff options
-rw-r--r-- | initrd/distro-specs/suse/functions-default | 19 | ||||
-rw-r--r-- | initrd/distro-specs/ubuntu/functions-default | 24 | ||||
-rwxr-xr-x | initrd/initrd-stuff/init | 77 | ||||
-rwxr-xr-x | installer/ld4-inst | 6 |
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 |