From f0a273c0d7c6bffc7f01cd31872f0a8f8c2c1c64 Mon Sep 17 00:00:00 2001 From: Nico Dietrich Date: Thu, 26 Jan 2006 04:15:16 +0000 Subject: weiter und svn-chaos beseitigen git-svn-id: http://svn.openslx.org/svn/openslx/dxs/ld4@36 95ad53e4-c205-0410-b2fa-d234c58c8868 --- initrd/distro-specs/debian/config | 47 --- initrd/distro-specs/debian/config-3.1 | 47 +++ .../distro-specs/debian/files-3.1/etc/init.d/boot | 286 ++++++++++++++++ .../distro-specs/debian/files-3.1/etc/init.d/halt | 90 +++++ initrd/distro-specs/debian/functions-3.1 | 202 +++++++++++ initrd/distro-specs/debian/functions-debian | 202 ----------- initrd/distro-specs/gentoo/config | 42 --- initrd/distro-specs/gentoo/config-2005.1 | 42 +++ initrd/distro-specs/gentoo/functions-2005.1 | 20 ++ initrd/distro-specs/gentoo/functions-gentoo | 20 -- initrd/distro-specs/suse-10.0/.servconf.swp | Bin 12288 -> 0 bytes initrd/distro-specs/suse-10.0/config | 48 --- .../distro-specs/suse-10.0/files/etc/init.d/boot | 286 ---------------- .../distro-specs/suse-10.0/files/etc/init.d/halt | 90 ----- initrd/distro-specs/suse-10.0/functions-suse-10.0 | 380 --------------------- initrd/distro-specs/suse/.servconf.swp | Bin 12288 -> 0 bytes initrd/distro-specs/suse/config | 48 --- initrd/distro-specs/suse/config-9.3 | 48 +++ initrd/distro-specs/suse/files-9.3/etc/init.d/boot | 286 ++++++++++++++++ initrd/distro-specs/suse/files-9.3/etc/init.d/halt | 90 +++++ initrd/distro-specs/suse/files/etc/init.d/boot | 286 ---------------- initrd/distro-specs/suse/files/etc/init.d/halt | 90 ----- initrd/distro-specs/suse/functions-10.0 | 380 +++++++++++++++++++++ initrd/distro-specs/suse/functions-suse-10.0 | 380 --------------------- initrd/distro-specs/ubuntu/config | 47 --- initrd/distro-specs/ubuntu/config-5.10 | 47 +++ initrd/distro-specs/ubuntu/functions-5.10 | 224 ++++++++++++ initrd/distro-specs/ubuntu/functions-ubuntu | 224 ------------ 28 files changed, 1762 insertions(+), 2190 deletions(-) delete mode 100644 initrd/distro-specs/debian/config create mode 100644 initrd/distro-specs/debian/config-3.1 create mode 100755 initrd/distro-specs/debian/files-3.1/etc/init.d/boot create mode 100755 initrd/distro-specs/debian/files-3.1/etc/init.d/halt create mode 100644 initrd/distro-specs/debian/functions-3.1 delete mode 100644 initrd/distro-specs/debian/functions-debian delete mode 100644 initrd/distro-specs/gentoo/config create mode 100644 initrd/distro-specs/gentoo/config-2005.1 create mode 100644 initrd/distro-specs/gentoo/functions-2005.1 delete mode 100644 initrd/distro-specs/gentoo/functions-gentoo delete mode 100644 initrd/distro-specs/suse-10.0/.servconf.swp delete mode 100644 initrd/distro-specs/suse-10.0/config delete mode 100755 initrd/distro-specs/suse-10.0/files/etc/init.d/boot delete mode 100755 initrd/distro-specs/suse-10.0/files/etc/init.d/halt delete mode 100644 initrd/distro-specs/suse-10.0/functions-suse-10.0 delete mode 100644 initrd/distro-specs/suse/.servconf.swp delete mode 100644 initrd/distro-specs/suse/config create mode 100644 initrd/distro-specs/suse/config-9.3 create mode 100755 initrd/distro-specs/suse/files-9.3/etc/init.d/boot create mode 100755 initrd/distro-specs/suse/files-9.3/etc/init.d/halt delete mode 100755 initrd/distro-specs/suse/files/etc/init.d/boot delete mode 100755 initrd/distro-specs/suse/files/etc/init.d/halt create mode 100644 initrd/distro-specs/suse/functions-10.0 delete mode 100644 initrd/distro-specs/suse/functions-suse-10.0 delete mode 100644 initrd/distro-specs/ubuntu/config create mode 100644 initrd/distro-specs/ubuntu/config-5.10 create mode 100644 initrd/distro-specs/ubuntu/functions-5.10 delete mode 100644 initrd/distro-specs/ubuntu/functions-ubuntu (limited to 'initrd') diff --git a/initrd/distro-specs/debian/config b/initrd/distro-specs/debian/config deleted file mode 100644 index a38f1fb0..00000000 --- a/initrd/distro-specs/debian/config +++ /dev/null @@ -1,47 +0,0 @@ -# Description: distro specific settings for Debian/Sarge -# -# Author(s): Dirk von Suchodoletz , 16-01-2006 -# Blablub -# -# Copyright: (c) 2003, 2005 - RZ Universitaet Freiburg - -# D_SYSCONFDIR - system wide configuration settings - /etc/sysconfig in SuSE -# and RedHat, /etc/default in Debian and Ubuntu -# D_ETCEXCL - list of files, wildcards to be excluded from /etc when using -# bind mounts -# D_DIRINBINDMNT - lists of directories to be created in bind mounted rw -# part of the client filesystem -# D_RODIRSINRW - ReadOnly Directories in RW part of filesystem to save on -# TempFS usage -# D_DIRINDXS - directories in client filesystem which should be present -# anyhow -# D_BINDMNT - any code which is specific in bind mount environment -# D_RCDIRS - runlevel directories relative to /etc -# D_XF86CONFFILE - name and location of XFree/Xorg config file, e.g. -# /etc/X11/xorg.conf or /etc/X11/XF86config, ... -# D_XFONTPATH - path(es) where X11 fonts are installed (with trailing /*) -# D_DEFAULTCOUNTRY - localization (see common functions) - -D_SYSCONFDIR=/default -D_ETCEXCL="etc/gconf/*\n*.old\n*-\n\ -etc/autoinstall\nlogrotate*\nbootloader\n*~\n\ -pptp.d\nisdn\nyouservers\nhardware/hwcfg*\n\ -X11/xdm/pixmaps\ndhclient.script\n\ -rc2.d/*\nrc5.d/*" -D_BINDMPTS="tmp root home" -D_DIRINBINDMNT="/var/run /var/log /var/tmp" -D_RODIRSINRW="etc/gconf etc/X11/xkb /var/adm /var/lib/texmf /var/lib/gdm" -D_DIRINDXS="/var/X11R6/compose-cache \ -/var/run/sysconfig/tmp /var/adm /var/lib/rpm /var/lib/nobody \ -/var/lib/pam_devperm /var/lib/bluetooth \ -/var/lib/texmf /var/lib/nfs/sm \ -/var/lib/misc /var/lib/acpi /var/spool/cron \ -/var/lock/subsys/sysconfig" -D_BINDMNT="# " -D_INITDIR="/init.d" -D_INITBOOTD="/rcS.d" -D_RCDIRS="/rc0.d /rc1.d /rc2.d /rc3.d /rc4.d /rc5.d /rc6.d" -D_INITSCRIPTS="udev procps.sh bootlogd keymap.sh hwclock.sh sudo" -D_XF86CONFFILE="/etc/X11/xorg.conf" -D_XFONTPATH="/usr/X11R6/lib/X11/fonts/*" -D_DEFAULTCOUNTRY="de" diff --git a/initrd/distro-specs/debian/config-3.1 b/initrd/distro-specs/debian/config-3.1 new file mode 100644 index 00000000..a38f1fb0 --- /dev/null +++ b/initrd/distro-specs/debian/config-3.1 @@ -0,0 +1,47 @@ +# Description: distro specific settings for Debian/Sarge +# +# Author(s): Dirk von Suchodoletz , 16-01-2006 +# Blablub +# +# Copyright: (c) 2003, 2005 - RZ Universitaet Freiburg + +# D_SYSCONFDIR - system wide configuration settings - /etc/sysconfig in SuSE +# and RedHat, /etc/default in Debian and Ubuntu +# D_ETCEXCL - list of files, wildcards to be excluded from /etc when using +# bind mounts +# D_DIRINBINDMNT - lists of directories to be created in bind mounted rw +# part of the client filesystem +# D_RODIRSINRW - ReadOnly Directories in RW part of filesystem to save on +# TempFS usage +# D_DIRINDXS - directories in client filesystem which should be present +# anyhow +# D_BINDMNT - any code which is specific in bind mount environment +# D_RCDIRS - runlevel directories relative to /etc +# D_XF86CONFFILE - name and location of XFree/Xorg config file, e.g. +# /etc/X11/xorg.conf or /etc/X11/XF86config, ... +# D_XFONTPATH - path(es) where X11 fonts are installed (with trailing /*) +# D_DEFAULTCOUNTRY - localization (see common functions) + +D_SYSCONFDIR=/default +D_ETCEXCL="etc/gconf/*\n*.old\n*-\n\ +etc/autoinstall\nlogrotate*\nbootloader\n*~\n\ +pptp.d\nisdn\nyouservers\nhardware/hwcfg*\n\ +X11/xdm/pixmaps\ndhclient.script\n\ +rc2.d/*\nrc5.d/*" +D_BINDMPTS="tmp root home" +D_DIRINBINDMNT="/var/run /var/log /var/tmp" +D_RODIRSINRW="etc/gconf etc/X11/xkb /var/adm /var/lib/texmf /var/lib/gdm" +D_DIRINDXS="/var/X11R6/compose-cache \ +/var/run/sysconfig/tmp /var/adm /var/lib/rpm /var/lib/nobody \ +/var/lib/pam_devperm /var/lib/bluetooth \ +/var/lib/texmf /var/lib/nfs/sm \ +/var/lib/misc /var/lib/acpi /var/spool/cron \ +/var/lock/subsys/sysconfig" +D_BINDMNT="# " +D_INITDIR="/init.d" +D_INITBOOTD="/rcS.d" +D_RCDIRS="/rc0.d /rc1.d /rc2.d /rc3.d /rc4.d /rc5.d /rc6.d" +D_INITSCRIPTS="udev procps.sh bootlogd keymap.sh hwclock.sh sudo" +D_XF86CONFFILE="/etc/X11/xorg.conf" +D_XFONTPATH="/usr/X11R6/lib/X11/fonts/*" +D_DEFAULTCOUNTRY="de" diff --git a/initrd/distro-specs/debian/files-3.1/etc/init.d/boot b/initrd/distro-specs/debian/files-3.1/etc/init.d/boot new file mode 100755 index 00000000..f975046f --- /dev/null +++ b/initrd/distro-specs/debian/files-3.1/etc/init.d/boot @@ -0,0 +1,286 @@ +#!/bin/sh +# +# Description: Modificated /etc/init.d/boot for use with Diskless +# X Stations (v4.0) -> replaces /etc/init.d/boot +# simply copied over the original file in initrd +# +# Author(s): Dirk von Suchodoletz , 08-01-2006 +# Copyright: (c) 2003, 2006 - RZ Universitaet Freiburg +# +# Version: 0.0.2b +# +# Some parts taken from /etc/init.d/boot by +# +# Copyright (c) 1996-2004 SuSE Linux AG, Nuernberg, Germany. +# All rights reserved. +# +# Author: Ruediger Oertel , 1996-2002 +# Werner Fink , 1996-2003 +# Burchard Steinbild, 1996-2000 +# Florian La Roche, 1996 +# +# first script to be executed from init on system startup +# +# Most of preparation is done within the initial ramdisk +# +################################################################ +LD_LIBRARY_PATH=/usr/lib + +# Before we do anything else, try at first to activate SELinux support +test -d /selinux && mount -n -t selinuxfs none /selinux &>/dev/null + +# Configuration and coloring of the boot messages +. /etc/rc.status +. /etc/sysconfig/boot +. /etc/sysconfig/logfile + +# Avoid be interrupted by child or keyboard +trap "echo" SIGINT SIGSEGV SIGQUIT +set +e + +# reasonable start values for bootsplash progress +export progress=0 +export sscripts=45 +export kscripts=45 + +echo -n "System Boot Control: " +echo "Running $0" + +################################################################ +# + +# some important (un)mounts +rc_reset +echo -n "Mounting /proc, /sys and /dev/pts filesystems" +# file /etc/fstab in some scenarios not available +mount -n -t proc proc /proc &>/dev/null +rc_status -v -r + +echo -n "Mounting /dev/pts" +mount -t devpts -o mode=0620,gid=5 devpts /dev/pts +rc_status -v -r +if [ -d /sys ] ; then + while read a b c ; do + case "$b" in + sysfs) + echo -n "Mounting /sys filesystem" + echo -e "sysfs\t\t/sys\t\tsysfs\t\trw\t\t 0 0\n" \ + >>/etc/fstab + mount -t sysfs sysfs /sys + rc_status -v -r + break + ;; + esac + done < /proc/filesystems +fi + +# Start blogd, requires /proc and /dev/pts. +# Export the real device in variable REDIRECT. +test -x /sbin/blogd -a -n "$REDIRECT" && /sbin/blogd $REDIRECT +if test -z "$REDIRECT" ; then + if (echo -n > /dev/tty) 2>/dev/null ; then + REDIRECT=/dev/tty + else + REDIRECT=/dev/console + fi +fi + +################################################################ +# +# Save old terminal settings and set -nl to avoid staircase +# effect, do not lock scrolling, and avoid break characters. +otty=$(stty -g) +if test "$FLOW_CONTROL" = "yes" ; then + stty -nl ixon ignbrk -brkint +else + stty -nl -ixon ignbrk -brkint +fi + +################################################################ +# +# Should we ask for interactive boot mode +DO_CONFIRM="" +read -t 2 check < /proc/cmdline 2> /dev/null +case "$check" in + *confirm*) DO_CONFIRM=yes ;; +esac +test -z "$CONFIRM_PROMPT_TIMEOUT" && CONFIRM_PROMPT_TIMEOUT=5 +if test "$PROMPT_FOR_CONFIRM" = "yes" -a "$DO_CONFIRM" != "yes" ; then + echo -en "${extd}Enter Interactive startup mode?${norm}" + rc_timer_on "$CONFIRM_PROMPT_TIMEOUT" 37 + read -t "$CONFIRM_PROMPT_TIMEOUT" -n 1 \ + -p " ${extd}y${norm}/[${extd}n${norm}]\ +("${CONFIRM_PROMPT_TIMEOUT}s") " answer + rc_timer_off + case "$answer" in + [yYiI]) DO_CONFIRM=yes ;; + *) DO_CONFIRM= ;; + esac + unset answer + echo +fi +export DO_CONFIRM + +################################################################ +# +# Common used variables +bootrc=/etc/init.d/boot.d +rex="[0-9][0-9]" +failed="" +skipped="" +callord="" + +# +# Initialize boosplash progressbar variables +# +. /etc/rc.splash B +splashtrigger "rlchange B" + +################################################################ +# +# Do we stop/start script in parallel? +startpar=$(type -p startpar) +test "$RUN_PARALLEL" = "yes" || startpar="" +test "$DO_CONFIRM" = "yes" && startpar="" + +# Start bootup client scripts. +if test -d ${bootrc}/ ; then + for i in ${bootrc}/S*; do + test -f $i || continue + + B=${i##*/} + script=${B#*S$rex} + B=${B%$script} + + rc_splash "$script start" + + if test "$DO_CONFIRM" = "yes" ; then + rc_confirm -t 5 "Start bootup script ${script}" \ + < $REDIRECT > $REDIRECT 2>&1 + case "$?" in + 0) true ;; + 1) continue ;; + 2) DO_CONFIRM="" + esac + fi + + if test -z "$startpar" ; then + blogger "$script start" + + if test -x "$i" ; then + $i start + else + echo Running $i + /bin/sh $i b + rc_status -v1 -r + fi + status=$? + echo -en "$rc_reset" + + case $status in + [1-4]) failed="${failed:+$failed }$script" ;; + [56]) skipped="${skipped:+$skipped }$script" ;; + [07]|*) ;; + esac + + blogger "'$script start' exits with status $status" + else + # Parallel boot only for valid scripts + test -x $i || continue + + # Current vector + eval cur=\${$B} + test -n "$cur" || callord="${callord:+$callord }$B" + + # Remember scripts + eval $B="\${cur:+$i }\${cur:-$i}" + fi + done +fi + +################################################################ +# +# Call the scripts in correct order +if test -n "$startpar" ; then + declare -i s + for p in $callord ; do + vect=$p + eval p=(\${$p}) + + blogger "run boot scripts (${p[@]##*S$rex})" + if test ${#p[@]} -eq 1 ; then + ${p} start + status=($?) + else + status=($($startpar -t 30 -T 3 -a start ${p[@]})) + fi + echo -en "$rc_reset" + blogger "exit status of (${p[@]##*S$rex}) is (${status[@]})" + + s=0 + for script in ${p[@]##*S$rex} ; do + case "${status[$s]}" in + [1-4]) failed="${failed:+$failed }$script" ;; + [56]) skipped="${skipped:+$skipped }$script" ;; + 0|*) ;; + esac + : $((s++)) + done + done +fi + +################################################################ +# +# Be verbose and print stats +echo -n "System Boot Control: " +echo -e "The system has been ${stat}${extd}set up${norm}" +if test -n "$failed" ; then + n=$((${#failed} + 7)) + echo -n "Failed features: " + test $n -lt 47 && echo -en "\033[${COLUMNS}C\033[${n}D" + echo -e "${warn}${failed}${norm}" +fi +if test -n "$skipped" ; then + n=$((${#skipped} + 7)) + echo -n "Skipped features: " + test $n -lt 47 && echo -en "\033[${COLUMNS}C\033[${n}D" + echo -e "${attn}${skipped}${norm}" +fi + + +################################################################ +# +# Check for boot cycle detection +test -s /lib/bootcycle/stats && . /lib/bootcycle/stats + + +# Remember for master resource script +if test "$DO_CONFIRM" = "yes" ; then + touch /var/run/do_confirm +fi + +# Restore old terminal settings +stty $otty + +################################################################ +# +# Let zic set timezone - if present (from boot.ldconfig). +if test -n "$TIMEZONE" -a -x /usr/sbin/zic ; then + echo -n Setting up timezone data + /usr/sbin/zic -l $TIMEZONE + rc_status -v -r +fi + +################################################################ +# +# start user defined bootup script. +if test -f /etc/init.d/boot.local ; then + ECHO_RETURN=$rc_done_up + echo "Running /etc/init.d/boot.local" + /bin/sh /etc/init.d/boot.local || rc_failed + rc_status -v1; rc_reset + rc_splash "boot.local start" +fi + +rc_reset +exit 0 diff --git a/initrd/distro-specs/debian/files-3.1/etc/init.d/halt b/initrd/distro-specs/debian/files-3.1/etc/init.d/halt new file mode 100755 index 00000000..65e5b0ad --- /dev/null +++ b/initrd/distro-specs/debian/files-3.1/etc/init.d/halt @@ -0,0 +1,90 @@ +#! /bin/sh +# +# Description: Modificated /etc/init.d/halt for use with Diskless +# X Stations (v4.0) +# -> replaces /etc/init.d/halt +# +# Author(s): Dirk von Suchodoletz , 13-12-2005 +# Copyright: (c) 2003, 2005 - RZ Universitaet Freiburg +# +# Version: 0.0.3a +# +# Some parts taken from /etc/init.d/halt by +# +# Copyright (c) 1996-2004 SuSE Linux AG, Nuernberg, Germany. +# All rights reserved. + +. /etc/rc.status +. /etc/sysconfig/clock +. /etc/sysconfig/suseconfig + +# +# Avoid being interrupted by child or keyboard +trap "echo" SIGINT SIGSEGV SIGQUIT SIGTERM +set +e + +rc_reset +case "$0" in + *halt) + message="The system is halted." + command="halt" + modprobe -q apm &>/dev/null + if test -e /proc/apm -o -e /proc/acpi -o -e /proc/sys/acpi ; then + command="halt -p" + else + read cmdline < /proc/cmdline + case "$cmdline" in + *apm=smp-power-off*|*apm=power-off*) + command="halt -p" ;; + esac + fi + ;; + *reboot) + message="Please stand by while rebooting the system..." + command="reboot" + ;; + *) + echo "$0: call me as \"halt\" or \"reboot\" please!" + exit 1 + ;; +esac + +# Write to wtmp file before unmounting /var (only needed with +# persistent mounted filesystem) +# $command -w + +rc_reset +echo "Turning off swap" +sync ; sync +swapoff -a || rc_failed +rc_status + +UMOUNT_FAILED=false +rc_reset +echo "Unmounting file systems and devices" +for unmount in /media/* ; do + umount -fnt $unmount &>/dev/null +done +umount -fnt /tmp/scratch &>/dev/null +eject /dev/zip &>/dev/null & +rc_status -v1 + +umount -anft noproc,nonfs &>/dev/null + +rc_reset +# maybe we use multiple devices +if test -f /etc/mdtab -a -x /sbin/mdadd ; then + echo -n "Disable Multiple Devices" + /sbin/mdstop -a || rc_failed + rc_status -v1 +fi + +sync + +# show "the system is down" message +if test "$SPLASH" = yes ; then + /sbin/splash -q -p 65535 -t "isdown" +fi + +echo $message +exec $command -d -f diff --git a/initrd/distro-specs/debian/functions-3.1 b/initrd/distro-specs/debian/functions-3.1 new file mode 100644 index 00000000..4344ac96 --- /dev/null +++ b/initrd/distro-specs/debian/functions-3.1 @@ -0,0 +1,202 @@ +# Description: configuration script for SuSE 10.0 to configure +# linux diskless clients (executed within initial +# ramdisk after genconfig) +# +# Author(s): Dirk von Suchodoletz , 18-01-2006 +# Blabla +# Blub +# +# Copyright: (c) 2006 - RZ Universitaet Freiburg +# +# Version: 0.2.1a + +# distro specific stuff to initialize +preinit () { + echo "dhcp:x:101:">>/etc/group + echo "dhcp:x:101:101::/nonexistent:/bin/false">>/etc/passwd +} + +# linking runlevel scripts +rllinker () { +local script="$1" +local start="$2" +local stop="$3" +# empty runlevel links - decision on running certain services is +# passed via configuration +for i in rc3.d/K$stop$script rc5.d/K$stop$script \ + rc3.d/S$start$script rc5.d/S$start$script ; do + ln -sf ../$script /mnt/etc/init.d/$i + echo "Linked $script" +done +} + +# group of functions for the normal runlevels - first parameter is start +# second stop +# function for ntp configuration +config_ntp () { +local start=$1 +local stop=$2 +if [ -f /mnt/etc/init.d/ntp ] ; then + echo -e "ntp:x:74:65534:NTP daemon:/var/lib/ntp:/bin/false" \ + >>/mnt/etc/passwd + testmkd /mnt/var/lib/ntp/var/run/ntp &>/dev/null + if [ "x$start_ntp" = "xinitial" ] ; then + echo -e "# entry added by $0: $date" \ + >>/mnt/etc/${D_INITDIR}/boot.ld + echo "ntpdate -s -b $ntp_servers >${LOGFILE} 2>&1 &" \ + >>/mnt/etc/${D_INITDIR}/boot.ld + else + rllinker "ntp" "$start" "$stop" + fi +fi +} + +# function for atd +config_atd () { +if [ "x$start_atd" = "xyes" ]; then + rllinker "atd" "$1" "$2" +fi +} + +# function for configuration of cron services +config_cron () { +if [ "x$start_cron" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/cron ] ; then + testmkd /mnt/var/spool/cron/lastrun + testmkd /mnt/var/spool/cron/tabs + echo -e "# /etc/crontab - file generated by $0:\n\ +#\t$date\nSHELL=/bin/sh\nPATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin\ +\nMAILTO=\n-*/15 * * * *\troot\ttest -x /usr/lib/cron/run-crons && \ +/usr/lib/cron/run-crons >/dev/null 2>&1\n" >/mnt/etc/crontab + else + error " The cron start script seems not to be installed, so requesting \ +\n the start of cron services make no sense." nonfatal + fi +fi +} + +# syslog service +config_syslog () { +if [ "x$start_syslog" = "xyes" ] ; then + echo >/dev/null +fi +} + +# secure shell service +config_sshd () { +if [ "x$start_sshd" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/sshd ] ; then + testmkd /mnt/var/lib/sshd; testmkd /mnt/var/lib/empty + rllinker "sshd" "$1" "$2" + fi +fi +} + +# snmp agent for remote monitoring +config_snmp () { +if [ "x$start_snmp" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/snmpd ] ; then + rllinker "snmpd" "$1" "$2" + testmkd /mnt/var/lib/net-snmp >/dev/null 2>&1 + fi + # fixme!! + # write service monitor depending on services started + fi +} + +# x11 stuff +descsession () { +if [ "x$desktop_session" != "x" ] ; then + windowmanagers="$desktop_session" + # write script for desktop-session chooser + if [ "x$vmware" != "xno" ] ; then + debug="" + [ ${DEBUGLEVEL} -gt 0 ] && debug="--debug 1" + 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 \"runvmware \$OPTS $debug\"\n" > /mnt/var/X11R6/bin/desktop-session + chmod a+x /mnt/var/X11R6/bin/desktop-session + addpath="true"; + fi +else + windowmanagers="kde,gnome,icewm,failsafe" +fi +# check if /usr/X11R6/bin is writeable, else use /var/X11R6/bin +if [ -w /mnt/usr/X11R6/bin/WM-Session ] ; then + sesspath="/usr/X11R6/bin" +else + sesspath="/var/X11R6/bin" + addpath="true" +fi + +# create links to desktop-session chooser +[ -f /mnt/usr/bin/X11/wmlist ] && wmlist=`cat /mnt/usr/bin/X11/wmlist` + +for i in `echo $windowmanagers|sed -e "s/,/ /g"` ; do + # beware!! quickhack for VMware sessions + strinstr "$i" "$wmlist" || \ + test -x /mnt/usr/X11R6/bin/$i || \ + echo -e "[Desktop Entry]\nX-SuSE-translate=true\nEncoding=UTF-8\n\ +Type=XSession\nExec=$i\nTryExec=$sesspath/$i\n\ +Name=$i\n" > /mnt/etc/X11/sessions/$i.desktop + # does not work correctly (add /var/X11R6/bin to path!!) + test -x /mnt/usr/X11R6/bin/$i || \ + ln -fs /var/X11R6/bin/desktop-session /mnt/$sesspath/$i +done + +# add special path /var/X11R6/bin to the PATH variable +[ "x$addpath" != "x" ] && \ + echo -e "# added path component by $0: $date\n\ +PATH=\"\$PATH:/var/X11R6/bin\"" >>/mnt/etc/SuSEconfig/profile + +} + +# configure display manager (runlevel links and kind of manager) +config_dm () { + # should be stated that entries were made (fixmee how??) + sed -e "s,DISPLAYMANAGER=.*,DISPLAYMANAGER=\"$start_xdmcp\"," \ + -e "s,.*_XSERVER.*,DISPLAYMANAGER_STARTS_XSERVER=\"$dsx\"," \ + /mnt/etc/sysconfig/displaymanager > /etc/displaymanager + cp /etc/displaymanager /mnt/etc/sysconfig/displaymanager + +# echo -e "#!/bin/sh\n# entry added by $0: $date\n\ +#(sleep 1; /etc/init.d/xdm start) &" >>/mnt/etc/${D_INITDIR}/boot.ld + ln -sf /etc/init.d/xdm /mnt/etc/init.d/rc5.d/S01xdm + ln -sf /etc/init.d/xdm /mnt/etc/init.d/rc5.d/K20xdm +} + +# consolefont +consolefont () { +echo -e "setfont ${CONSOLE_FONT} >${LOGFILE} 2>&1" \ + >>/mnt/etc/${D_INITDIR}/boot.ld +} + +# acpi and powersave +config_acpi () { + echo >/dev/null +} + +# configure xdm as display manager +config_xdm () { + echo >/dev/null +} + +# configure gdm as display manager +config_gdm () { + echo >/dev/null +} + +# configure kdm as display manager +config_kdm () { + echo >/dev/null +} + +# configure hal, dbus, resmgr and services like that +config_dreshal () { +if [ "x$start_dreshal" = "xyes" ]; then + echo >/dev/null +fi +} diff --git a/initrd/distro-specs/debian/functions-debian b/initrd/distro-specs/debian/functions-debian deleted file mode 100644 index 4344ac96..00000000 --- a/initrd/distro-specs/debian/functions-debian +++ /dev/null @@ -1,202 +0,0 @@ -# Description: configuration script for SuSE 10.0 to configure -# linux diskless clients (executed within initial -# ramdisk after genconfig) -# -# Author(s): Dirk von Suchodoletz , 18-01-2006 -# Blabla -# Blub -# -# Copyright: (c) 2006 - RZ Universitaet Freiburg -# -# Version: 0.2.1a - -# distro specific stuff to initialize -preinit () { - echo "dhcp:x:101:">>/etc/group - echo "dhcp:x:101:101::/nonexistent:/bin/false">>/etc/passwd -} - -# linking runlevel scripts -rllinker () { -local script="$1" -local start="$2" -local stop="$3" -# empty runlevel links - decision on running certain services is -# passed via configuration -for i in rc3.d/K$stop$script rc5.d/K$stop$script \ - rc3.d/S$start$script rc5.d/S$start$script ; do - ln -sf ../$script /mnt/etc/init.d/$i - echo "Linked $script" -done -} - -# group of functions for the normal runlevels - first parameter is start -# second stop -# function for ntp configuration -config_ntp () { -local start=$1 -local stop=$2 -if [ -f /mnt/etc/init.d/ntp ] ; then - echo -e "ntp:x:74:65534:NTP daemon:/var/lib/ntp:/bin/false" \ - >>/mnt/etc/passwd - testmkd /mnt/var/lib/ntp/var/run/ntp &>/dev/null - if [ "x$start_ntp" = "xinitial" ] ; then - echo -e "# entry added by $0: $date" \ - >>/mnt/etc/${D_INITDIR}/boot.ld - echo "ntpdate -s -b $ntp_servers >${LOGFILE} 2>&1 &" \ - >>/mnt/etc/${D_INITDIR}/boot.ld - else - rllinker "ntp" "$start" "$stop" - fi -fi -} - -# function for atd -config_atd () { -if [ "x$start_atd" = "xyes" ]; then - rllinker "atd" "$1" "$2" -fi -} - -# function for configuration of cron services -config_cron () { -if [ "x$start_cron" = "xyes" ] ; then - if [ -f /mnt/etc/init.d/cron ] ; then - testmkd /mnt/var/spool/cron/lastrun - testmkd /mnt/var/spool/cron/tabs - echo -e "# /etc/crontab - file generated by $0:\n\ -#\t$date\nSHELL=/bin/sh\nPATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin\ -\nMAILTO=\n-*/15 * * * *\troot\ttest -x /usr/lib/cron/run-crons && \ -/usr/lib/cron/run-crons >/dev/null 2>&1\n" >/mnt/etc/crontab - else - error " The cron start script seems not to be installed, so requesting \ -\n the start of cron services make no sense." nonfatal - fi -fi -} - -# syslog service -config_syslog () { -if [ "x$start_syslog" = "xyes" ] ; then - echo >/dev/null -fi -} - -# secure shell service -config_sshd () { -if [ "x$start_sshd" = "xyes" ] ; then - if [ -f /mnt/etc/init.d/sshd ] ; then - testmkd /mnt/var/lib/sshd; testmkd /mnt/var/lib/empty - rllinker "sshd" "$1" "$2" - fi -fi -} - -# snmp agent for remote monitoring -config_snmp () { -if [ "x$start_snmp" = "xyes" ] ; then - if [ -f /mnt/etc/init.d/snmpd ] ; then - rllinker "snmpd" "$1" "$2" - testmkd /mnt/var/lib/net-snmp >/dev/null 2>&1 - fi - # fixme!! - # write service monitor depending on services started - fi -} - -# x11 stuff -descsession () { -if [ "x$desktop_session" != "x" ] ; then - windowmanagers="$desktop_session" - # write script for desktop-session chooser - if [ "x$vmware" != "xno" ] ; then - debug="" - [ ${DEBUGLEVEL} -gt 0 ] && debug="--debug 1" - 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 \"runvmware \$OPTS $debug\"\n" > /mnt/var/X11R6/bin/desktop-session - chmod a+x /mnt/var/X11R6/bin/desktop-session - addpath="true"; - fi -else - windowmanagers="kde,gnome,icewm,failsafe" -fi -# check if /usr/X11R6/bin is writeable, else use /var/X11R6/bin -if [ -w /mnt/usr/X11R6/bin/WM-Session ] ; then - sesspath="/usr/X11R6/bin" -else - sesspath="/var/X11R6/bin" - addpath="true" -fi - -# create links to desktop-session chooser -[ -f /mnt/usr/bin/X11/wmlist ] && wmlist=`cat /mnt/usr/bin/X11/wmlist` - -for i in `echo $windowmanagers|sed -e "s/,/ /g"` ; do - # beware!! quickhack for VMware sessions - strinstr "$i" "$wmlist" || \ - test -x /mnt/usr/X11R6/bin/$i || \ - echo -e "[Desktop Entry]\nX-SuSE-translate=true\nEncoding=UTF-8\n\ -Type=XSession\nExec=$i\nTryExec=$sesspath/$i\n\ -Name=$i\n" > /mnt/etc/X11/sessions/$i.desktop - # does not work correctly (add /var/X11R6/bin to path!!) - test -x /mnt/usr/X11R6/bin/$i || \ - ln -fs /var/X11R6/bin/desktop-session /mnt/$sesspath/$i -done - -# add special path /var/X11R6/bin to the PATH variable -[ "x$addpath" != "x" ] && \ - echo -e "# added path component by $0: $date\n\ -PATH=\"\$PATH:/var/X11R6/bin\"" >>/mnt/etc/SuSEconfig/profile - -} - -# configure display manager (runlevel links and kind of manager) -config_dm () { - # should be stated that entries were made (fixmee how??) - sed -e "s,DISPLAYMANAGER=.*,DISPLAYMANAGER=\"$start_xdmcp\"," \ - -e "s,.*_XSERVER.*,DISPLAYMANAGER_STARTS_XSERVER=\"$dsx\"," \ - /mnt/etc/sysconfig/displaymanager > /etc/displaymanager - cp /etc/displaymanager /mnt/etc/sysconfig/displaymanager - -# echo -e "#!/bin/sh\n# entry added by $0: $date\n\ -#(sleep 1; /etc/init.d/xdm start) &" >>/mnt/etc/${D_INITDIR}/boot.ld - ln -sf /etc/init.d/xdm /mnt/etc/init.d/rc5.d/S01xdm - ln -sf /etc/init.d/xdm /mnt/etc/init.d/rc5.d/K20xdm -} - -# consolefont -consolefont () { -echo -e "setfont ${CONSOLE_FONT} >${LOGFILE} 2>&1" \ - >>/mnt/etc/${D_INITDIR}/boot.ld -} - -# acpi and powersave -config_acpi () { - echo >/dev/null -} - -# configure xdm as display manager -config_xdm () { - echo >/dev/null -} - -# configure gdm as display manager -config_gdm () { - echo >/dev/null -} - -# configure kdm as display manager -config_kdm () { - echo >/dev/null -} - -# configure hal, dbus, resmgr and services like that -config_dreshal () { -if [ "x$start_dreshal" = "xyes" ]; then - echo >/dev/null -fi -} diff --git a/initrd/distro-specs/gentoo/config b/initrd/distro-specs/gentoo/config deleted file mode 100644 index 77716408..00000000 --- a/initrd/distro-specs/gentoo/config +++ /dev/null @@ -1,42 +0,0 @@ -# Description: distro specific settings for Gentoo -# -# Author(s): Dirk von Suchodoletz , 21-01-2006 -# -# Copyright: (c) 2005,6 - RZ Universitaet Freiburg - -# D_SYSCONFDIR - system wide configuration settings in /etc - sysconfig in -# SuSE and RedHat, default in Debian and Ubuntu, conf.d in Gentoo -# D_ETCEXCL - list of files, wildcards to be excluded from /etc when using -# bind mounts -# D_DIRINBINDMNT - lists of directories to be created in bind mounted rw -# part of the client filesystem -# D_RODIRSINRW - ReadOnly Directories in RW part of filesystem to save on -# TempFS usage -# D_DIRINDXS - directories in client filesystem which should be present -# anyhow -# D_BINDMNT - any code which is specific in bind mount environment -# D_RCDIRS - runlevel directories relative to /etc -D_SYSCONFDIR=conf.d -D_ETCEXCL="opt/gnome/gconf/*\n*.old\n*-\n\ -etc/autoinstall\nlogrotate*\nbootloader\n*~\n\ -pptp.d\nisdn\nyouservers\nhardware/hwcfg*\n\ -X11/xdm/pixmaps\ndhclient.script\nrunlevels/boot/*\n\ -runlevels/default/*\nrunlevels/nonetwork/*" -D_BINDMPTS="tmp root home" -D_DIRINBINDMNT="/var/run /var/log /var/tmp" -D_RODIRSINRW="/var/adm /var/lib/texmf" -D_DIRINDXS="/var/X11R6/compose-cache \ -/var/run/sysconfig/tmp /var/lib/init.d/started /var/lib/nobody \ -/var/lib/bluetooth \ -/var/lib/texmf /var/lib/nfs/sm /var/lib/nfs/state \ -/var/lib/misc /var/lib/acpi /var/spool/cron \ -/var/lock/subsys/sysconfig" -D_BINDMNT="# spielspass fuer splash" -D_INITDIR="/init.d" -D_INITBOOTD="/runlevels/boot" -D_RCDIRS="/runlevels/default /runlevels/nonetwork /runlevels/single" -D_INITSCRIPTS="bootmisc clock modules urandom" -D_XF86CONFFILE="/etc/X11/xorg.conf" -D_XFONTPATH="/usr/share/fonts/*" -D_DEFAULTCOUNTRY="de" - diff --git a/initrd/distro-specs/gentoo/config-2005.1 b/initrd/distro-specs/gentoo/config-2005.1 new file mode 100644 index 00000000..77716408 --- /dev/null +++ b/initrd/distro-specs/gentoo/config-2005.1 @@ -0,0 +1,42 @@ +# Description: distro specific settings for Gentoo +# +# Author(s): Dirk von Suchodoletz , 21-01-2006 +# +# Copyright: (c) 2005,6 - RZ Universitaet Freiburg + +# D_SYSCONFDIR - system wide configuration settings in /etc - sysconfig in +# SuSE and RedHat, default in Debian and Ubuntu, conf.d in Gentoo +# D_ETCEXCL - list of files, wildcards to be excluded from /etc when using +# bind mounts +# D_DIRINBINDMNT - lists of directories to be created in bind mounted rw +# part of the client filesystem +# D_RODIRSINRW - ReadOnly Directories in RW part of filesystem to save on +# TempFS usage +# D_DIRINDXS - directories in client filesystem which should be present +# anyhow +# D_BINDMNT - any code which is specific in bind mount environment +# D_RCDIRS - runlevel directories relative to /etc +D_SYSCONFDIR=conf.d +D_ETCEXCL="opt/gnome/gconf/*\n*.old\n*-\n\ +etc/autoinstall\nlogrotate*\nbootloader\n*~\n\ +pptp.d\nisdn\nyouservers\nhardware/hwcfg*\n\ +X11/xdm/pixmaps\ndhclient.script\nrunlevels/boot/*\n\ +runlevels/default/*\nrunlevels/nonetwork/*" +D_BINDMPTS="tmp root home" +D_DIRINBINDMNT="/var/run /var/log /var/tmp" +D_RODIRSINRW="/var/adm /var/lib/texmf" +D_DIRINDXS="/var/X11R6/compose-cache \ +/var/run/sysconfig/tmp /var/lib/init.d/started /var/lib/nobody \ +/var/lib/bluetooth \ +/var/lib/texmf /var/lib/nfs/sm /var/lib/nfs/state \ +/var/lib/misc /var/lib/acpi /var/spool/cron \ +/var/lock/subsys/sysconfig" +D_BINDMNT="# spielspass fuer splash" +D_INITDIR="/init.d" +D_INITBOOTD="/runlevels/boot" +D_RCDIRS="/runlevels/default /runlevels/nonetwork /runlevels/single" +D_INITSCRIPTS="bootmisc clock modules urandom" +D_XF86CONFFILE="/etc/X11/xorg.conf" +D_XFONTPATH="/usr/share/fonts/*" +D_DEFAULTCOUNTRY="de" + diff --git a/initrd/distro-specs/gentoo/functions-2005.1 b/initrd/distro-specs/gentoo/functions-2005.1 new file mode 100644 index 00000000..5f7afa09 --- /dev/null +++ b/initrd/distro-specs/gentoo/functions-2005.1 @@ -0,0 +1,20 @@ +# initialize boot.ld - skript to be executed during early system startup +# (before most of the normal boot init scripts) +# this script should operate like a normal runlevel script +d_mkbootld () { +case "$1" in + init) + echo -e "#!/sbin/runskript\n# skeleton of /etc/${D_INITDIR}/boot.ld \ +written from $0" >/mnt/etc/${D_INITDIR}/boot.ld + echo -e '\n\nstart() {' \ + >>/mnt/etc/${D_INITDIR}/boot.ld + echo -e '\tebegin "Running post configuration required by initrd"' \ + >>/mnt/etc/${D_INITDIR}/boot.ld + chmod u+x /mnt/etc/${D_INITDIR}/boot.ld + ;; + close) + echo -e "\teend ${?}\n}" \ + >>/mnt/etc/${D_INITDIR}/boot.ld + ;; +esac +} diff --git a/initrd/distro-specs/gentoo/functions-gentoo b/initrd/distro-specs/gentoo/functions-gentoo deleted file mode 100644 index 5f7afa09..00000000 --- a/initrd/distro-specs/gentoo/functions-gentoo +++ /dev/null @@ -1,20 +0,0 @@ -# initialize boot.ld - skript to be executed during early system startup -# (before most of the normal boot init scripts) -# this script should operate like a normal runlevel script -d_mkbootld () { -case "$1" in - init) - echo -e "#!/sbin/runskript\n# skeleton of /etc/${D_INITDIR}/boot.ld \ -written from $0" >/mnt/etc/${D_INITDIR}/boot.ld - echo -e '\n\nstart() {' \ - >>/mnt/etc/${D_INITDIR}/boot.ld - echo -e '\tebegin "Running post configuration required by initrd"' \ - >>/mnt/etc/${D_INITDIR}/boot.ld - chmod u+x /mnt/etc/${D_INITDIR}/boot.ld - ;; - close) - echo -e "\teend ${?}\n}" \ - >>/mnt/etc/${D_INITDIR}/boot.ld - ;; -esac -} diff --git a/initrd/distro-specs/suse-10.0/.servconf.swp b/initrd/distro-specs/suse-10.0/.servconf.swp deleted file mode 100644 index 2452cd37..00000000 Binary files a/initrd/distro-specs/suse-10.0/.servconf.swp and /dev/null differ diff --git a/initrd/distro-specs/suse-10.0/config b/initrd/distro-specs/suse-10.0/config deleted file mode 100644 index 52b22880..00000000 --- a/initrd/distro-specs/suse-10.0/config +++ /dev/null @@ -1,48 +0,0 @@ -# Description: distro specific settings for SuSE 10.0 -# -# Author(s): Dirk von Suchodoletz , 06-01-2006 -# -# Copyright: (c) 2003, 2005 - RZ Universitaet Freiburg - - -# D_SYSCONFDIR - system wide configuration settings - /etc/sysconfig in SuSE -# and RedHat, /etc/default in Debian and Ubuntu -# D_ETCEXCL - list of files, wildcards to be excluded from /etc when using -# bind mounts -# D_DIRINBINDMNT - lists of directories to be created in bind mounted rw -# part of the client filesystem -# D_RODIRSINRW - ReadOnly Directories in RW part of filesystem to save on -# TempFS usage -# D_DIRINDXS - directories in client filesystem which should be present -# anyhow -# D_BINDMNT - any code which is specific in bind mount environment -# D_RCDIRS - runlevel directories relative to /etc -# D_XF86CONFFILE - name and location of XFree/Xorg config file, e.g. -# /etc/X11/xorg.conf or /etc/X11/XF86config, ... -# D_XFONTPATH - path(es) where X11 fonts are installed (with trailing /*) -# D_DEFAULTCOUNTRY - localization (see common functions) - -D_SYSCONFDIR=/sysconfig -D_ETCEXCL="opt/gnome/gconf/*\n*.old\n*-\n*.rpmorig\n*.rpmnew\n\ -*.YaST2save\netc/autoinstall\nlogrotate*\nbootloader\n*~\n\ -*.SuSEconfig.saved\npptp.d\nisdn\nyouservers\nhardware/hwcfg*\n\ -X11/xdm/pixmaps\n*.rpmsave\ndhclient*script\ninit.d/boot.d/*\n\ -init.d/rc3.d/*\ninit.d/rc5.d/*\nX11/xorg.conf*\n" -D_BINDMPTS="tmp root media home" -D_DIRINBINDMNT="/var/run /var/log /var/tmp" -D_RODIRSINRW="/etc/opt/gnome/gconf /etc/X11/xkb /var/adm /var/lib/texmf /var/lib/rpm" -D_DIRINDXS="/var/X11R6/compose-cache \ -/var/run/sysconfig/tmp /var/adm /var/lib/rpm /var/lib/nobody \ -/var/lib/pam_devperm /var/lib/bluetooth \ -/var/lib/texmf /var/lib/nfs/sm \ -/var/lib/misc /var/lib/acpi /var/spool/cron \ -/var/lock/subsys/sysconfig" -D_BINDMNT="# spielspass fuer splash" -D_INITDIR="/init.d" -D_INITBOOTD="${D_INITDIR}/boot.d" -D_RCDIRS="/init.d/rc0.d /init.d/rc1.d /init.d/rc2.d /init.d/rc3.d /init.d/rc4.d /init.d/rc5.d /init.d/rc6.d /init.d/rcS.d" -D_INITSCRIPTS="boot.udev boot.proc boot.shm boot.klog boot.loadmodules boot.clock boot.sysctl boot.ipconfig" -D_XF86CONFFILE="/etc/X11/xorg.conf" -D_XFONTPATH="/usr/X11R6/lib/X11/fonts/*" -D_DEFAULTCOUNTRY="de" - diff --git a/initrd/distro-specs/suse-10.0/files/etc/init.d/boot b/initrd/distro-specs/suse-10.0/files/etc/init.d/boot deleted file mode 100755 index f975046f..00000000 --- a/initrd/distro-specs/suse-10.0/files/etc/init.d/boot +++ /dev/null @@ -1,286 +0,0 @@ -#!/bin/sh -# -# Description: Modificated /etc/init.d/boot for use with Diskless -# X Stations (v4.0) -> replaces /etc/init.d/boot -# simply copied over the original file in initrd -# -# Author(s): Dirk von Suchodoletz , 08-01-2006 -# Copyright: (c) 2003, 2006 - RZ Universitaet Freiburg -# -# Version: 0.0.2b -# -# Some parts taken from /etc/init.d/boot by -# -# Copyright (c) 1996-2004 SuSE Linux AG, Nuernberg, Germany. -# All rights reserved. -# -# Author: Ruediger Oertel , 1996-2002 -# Werner Fink , 1996-2003 -# Burchard Steinbild, 1996-2000 -# Florian La Roche, 1996 -# -# first script to be executed from init on system startup -# -# Most of preparation is done within the initial ramdisk -# -################################################################ -LD_LIBRARY_PATH=/usr/lib - -# Before we do anything else, try at first to activate SELinux support -test -d /selinux && mount -n -t selinuxfs none /selinux &>/dev/null - -# Configuration and coloring of the boot messages -. /etc/rc.status -. /etc/sysconfig/boot -. /etc/sysconfig/logfile - -# Avoid be interrupted by child or keyboard -trap "echo" SIGINT SIGSEGV SIGQUIT -set +e - -# reasonable start values for bootsplash progress -export progress=0 -export sscripts=45 -export kscripts=45 - -echo -n "System Boot Control: " -echo "Running $0" - -################################################################ -# - -# some important (un)mounts -rc_reset -echo -n "Mounting /proc, /sys and /dev/pts filesystems" -# file /etc/fstab in some scenarios not available -mount -n -t proc proc /proc &>/dev/null -rc_status -v -r - -echo -n "Mounting /dev/pts" -mount -t devpts -o mode=0620,gid=5 devpts /dev/pts -rc_status -v -r -if [ -d /sys ] ; then - while read a b c ; do - case "$b" in - sysfs) - echo -n "Mounting /sys filesystem" - echo -e "sysfs\t\t/sys\t\tsysfs\t\trw\t\t 0 0\n" \ - >>/etc/fstab - mount -t sysfs sysfs /sys - rc_status -v -r - break - ;; - esac - done < /proc/filesystems -fi - -# Start blogd, requires /proc and /dev/pts. -# Export the real device in variable REDIRECT. -test -x /sbin/blogd -a -n "$REDIRECT" && /sbin/blogd $REDIRECT -if test -z "$REDIRECT" ; then - if (echo -n > /dev/tty) 2>/dev/null ; then - REDIRECT=/dev/tty - else - REDIRECT=/dev/console - fi -fi - -################################################################ -# -# Save old terminal settings and set -nl to avoid staircase -# effect, do not lock scrolling, and avoid break characters. -otty=$(stty -g) -if test "$FLOW_CONTROL" = "yes" ; then - stty -nl ixon ignbrk -brkint -else - stty -nl -ixon ignbrk -brkint -fi - -################################################################ -# -# Should we ask for interactive boot mode -DO_CONFIRM="" -read -t 2 check < /proc/cmdline 2> /dev/null -case "$check" in - *confirm*) DO_CONFIRM=yes ;; -esac -test -z "$CONFIRM_PROMPT_TIMEOUT" && CONFIRM_PROMPT_TIMEOUT=5 -if test "$PROMPT_FOR_CONFIRM" = "yes" -a "$DO_CONFIRM" != "yes" ; then - echo -en "${extd}Enter Interactive startup mode?${norm}" - rc_timer_on "$CONFIRM_PROMPT_TIMEOUT" 37 - read -t "$CONFIRM_PROMPT_TIMEOUT" -n 1 \ - -p " ${extd}y${norm}/[${extd}n${norm}]\ -("${CONFIRM_PROMPT_TIMEOUT}s") " answer - rc_timer_off - case "$answer" in - [yYiI]) DO_CONFIRM=yes ;; - *) DO_CONFIRM= ;; - esac - unset answer - echo -fi -export DO_CONFIRM - -################################################################ -# -# Common used variables -bootrc=/etc/init.d/boot.d -rex="[0-9][0-9]" -failed="" -skipped="" -callord="" - -# -# Initialize boosplash progressbar variables -# -. /etc/rc.splash B -splashtrigger "rlchange B" - -################################################################ -# -# Do we stop/start script in parallel? -startpar=$(type -p startpar) -test "$RUN_PARALLEL" = "yes" || startpar="" -test "$DO_CONFIRM" = "yes" && startpar="" - -# Start bootup client scripts. -if test -d ${bootrc}/ ; then - for i in ${bootrc}/S*; do - test -f $i || continue - - B=${i##*/} - script=${B#*S$rex} - B=${B%$script} - - rc_splash "$script start" - - if test "$DO_CONFIRM" = "yes" ; then - rc_confirm -t 5 "Start bootup script ${script}" \ - < $REDIRECT > $REDIRECT 2>&1 - case "$?" in - 0) true ;; - 1) continue ;; - 2) DO_CONFIRM="" - esac - fi - - if test -z "$startpar" ; then - blogger "$script start" - - if test -x "$i" ; then - $i start - else - echo Running $i - /bin/sh $i b - rc_status -v1 -r - fi - status=$? - echo -en "$rc_reset" - - case $status in - [1-4]) failed="${failed:+$failed }$script" ;; - [56]) skipped="${skipped:+$skipped }$script" ;; - [07]|*) ;; - esac - - blogger "'$script start' exits with status $status" - else - # Parallel boot only for valid scripts - test -x $i || continue - - # Current vector - eval cur=\${$B} - test -n "$cur" || callord="${callord:+$callord }$B" - - # Remember scripts - eval $B="\${cur:+$i }\${cur:-$i}" - fi - done -fi - -################################################################ -# -# Call the scripts in correct order -if test -n "$startpar" ; then - declare -i s - for p in $callord ; do - vect=$p - eval p=(\${$p}) - - blogger "run boot scripts (${p[@]##*S$rex})" - if test ${#p[@]} -eq 1 ; then - ${p} start - status=($?) - else - status=($($startpar -t 30 -T 3 -a start ${p[@]})) - fi - echo -en "$rc_reset" - blogger "exit status of (${p[@]##*S$rex}) is (${status[@]})" - - s=0 - for script in ${p[@]##*S$rex} ; do - case "${status[$s]}" in - [1-4]) failed="${failed:+$failed }$script" ;; - [56]) skipped="${skipped:+$skipped }$script" ;; - 0|*) ;; - esac - : $((s++)) - done - done -fi - -################################################################ -# -# Be verbose and print stats -echo -n "System Boot Control: " -echo -e "The system has been ${stat}${extd}set up${norm}" -if test -n "$failed" ; then - n=$((${#failed} + 7)) - echo -n "Failed features: " - test $n -lt 47 && echo -en "\033[${COLUMNS}C\033[${n}D" - echo -e "${warn}${failed}${norm}" -fi -if test -n "$skipped" ; then - n=$((${#skipped} + 7)) - echo -n "Skipped features: " - test $n -lt 47 && echo -en "\033[${COLUMNS}C\033[${n}D" - echo -e "${attn}${skipped}${norm}" -fi - - -################################################################ -# -# Check for boot cycle detection -test -s /lib/bootcycle/stats && . /lib/bootcycle/stats - - -# Remember for master resource script -if test "$DO_CONFIRM" = "yes" ; then - touch /var/run/do_confirm -fi - -# Restore old terminal settings -stty $otty - -################################################################ -# -# Let zic set timezone - if present (from boot.ldconfig). -if test -n "$TIMEZONE" -a -x /usr/sbin/zic ; then - echo -n Setting up timezone data - /usr/sbin/zic -l $TIMEZONE - rc_status -v -r -fi - -################################################################ -# -# start user defined bootup script. -if test -f /etc/init.d/boot.local ; then - ECHO_RETURN=$rc_done_up - echo "Running /etc/init.d/boot.local" - /bin/sh /etc/init.d/boot.local || rc_failed - rc_status -v1; rc_reset - rc_splash "boot.local start" -fi - -rc_reset -exit 0 diff --git a/initrd/distro-specs/suse-10.0/files/etc/init.d/halt b/initrd/distro-specs/suse-10.0/files/etc/init.d/halt deleted file mode 100755 index 65e5b0ad..00000000 --- a/initrd/distro-specs/suse-10.0/files/etc/init.d/halt +++ /dev/null @@ -1,90 +0,0 @@ -#! /bin/sh -# -# Description: Modificated /etc/init.d/halt for use with Diskless -# X Stations (v4.0) -# -> replaces /etc/init.d/halt -# -# Author(s): Dirk von Suchodoletz , 13-12-2005 -# Copyright: (c) 2003, 2005 - RZ Universitaet Freiburg -# -# Version: 0.0.3a -# -# Some parts taken from /etc/init.d/halt by -# -# Copyright (c) 1996-2004 SuSE Linux AG, Nuernberg, Germany. -# All rights reserved. - -. /etc/rc.status -. /etc/sysconfig/clock -. /etc/sysconfig/suseconfig - -# -# Avoid being interrupted by child or keyboard -trap "echo" SIGINT SIGSEGV SIGQUIT SIGTERM -set +e - -rc_reset -case "$0" in - *halt) - message="The system is halted." - command="halt" - modprobe -q apm &>/dev/null - if test -e /proc/apm -o -e /proc/acpi -o -e /proc/sys/acpi ; then - command="halt -p" - else - read cmdline < /proc/cmdline - case "$cmdline" in - *apm=smp-power-off*|*apm=power-off*) - command="halt -p" ;; - esac - fi - ;; - *reboot) - message="Please stand by while rebooting the system..." - command="reboot" - ;; - *) - echo "$0: call me as \"halt\" or \"reboot\" please!" - exit 1 - ;; -esac - -# Write to wtmp file before unmounting /var (only needed with -# persistent mounted filesystem) -# $command -w - -rc_reset -echo "Turning off swap" -sync ; sync -swapoff -a || rc_failed -rc_status - -UMOUNT_FAILED=false -rc_reset -echo "Unmounting file systems and devices" -for unmount in /media/* ; do - umount -fnt $unmount &>/dev/null -done -umount -fnt /tmp/scratch &>/dev/null -eject /dev/zip &>/dev/null & -rc_status -v1 - -umount -anft noproc,nonfs &>/dev/null - -rc_reset -# maybe we use multiple devices -if test -f /etc/mdtab -a -x /sbin/mdadd ; then - echo -n "Disable Multiple Devices" - /sbin/mdstop -a || rc_failed - rc_status -v1 -fi - -sync - -# show "the system is down" message -if test "$SPLASH" = yes ; then - /sbin/splash -q -p 65535 -t "isdown" -fi - -echo $message -exec $command -d -f diff --git a/initrd/distro-specs/suse-10.0/functions-suse-10.0 b/initrd/distro-specs/suse-10.0/functions-suse-10.0 deleted file mode 100644 index 8b63085f..00000000 --- a/initrd/distro-specs/suse-10.0/functions-suse-10.0 +++ /dev/null @@ -1,380 +0,0 @@ -# Description: configuration script for SuSE 10.0 to configure -# linux diskless clients (included by init, hwautocfg, -# servconfig, ... within initial ramdisk after inclusion -# of the main functions file) -# -# Author(s): Dirk von Suchodoletz , 20-01-2006 -# Blabla -# Blub -# -# Copyright: (c) 2006 - RZ Universitaet Freiburg -# -# Version: 0.2.1a - -# distro specific stuff to initialize -preinit () { - # do nothing yet - echo > /dev/null -} - -# linking runlevel scripts -rllinker () { -local script="$1" -local start="$2" -local stop="$3" -# empty runlevel links - decision on running certain services is -# passed via configuration -for i in rc3.d/K$stop$script rc5.d/K$stop$script \ - rc3.d/S$start$script rc5.d/S$start$script ; do - ln -sf ../$script /mnt/etc/init.d/$i -done -} - -# group of functions for the normal runlevels - first parameter is start -# second stop -# function for ntp configuration -config_ntp () { -local start=$1 -local stop=$2 -if [ -f /mnt/etc/init.d/ntp ] ; then - strinfile "ntp:" /mnt/etc/passwd || \ - echo -e "ntp:x:74:65534:NTP daemon:/var/lib/ntp:/bin/false" \ - >>/mnt/etc/passwd - testmkd /mnt/var/lib/ntp/var/run/ntp &>/dev/null - if [ "x$start_ntp" = "xinitial" ] ; then - echo -e "\t# entry added by $0: $date" \ - >>/mnt/etc/${D_INITDIR}/boot.ld - echo -e "\tntpdate -s -b $ntp_servers >${LOGFILE} 2>&1 &" \ - >>/mnt/etc/${D_INITDIR}/boot.ld - else - rllinker "ntp" "$start" "$stop" - fi -fi -} - -# function for atd -config_atd () { -if [ "x$start_atd" = "xyes" ]; then - rllinker "atd" "$1" "$2" -fi -} - -# function for configuration of cron services -config_cron () { -if [ "x$start_cron" = "xyes" ] ; then - if [ -f /mnt/etc/init.d/cron ] ; then - testmkd /mnt/var/spool/cron/lastrun - testmkd /mnt/var/spool/cron/tabs - echo -e "# /etc/crontab - file generated by $0:\n\ -#\t$date\nSHELL=/bin/sh\nPATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin\ -\nMAILTO=\n-*/15 * * * *\troot\ttest -x /usr/lib/cron/run-crons && \ -/usr/lib/cron/run-crons >/dev/null 2>&1\n" >/mnt/etc/crontab - else - error " The cron start script seems not to be installed, so requesting \ -\n the start of cron services make no sense." nonfatal - fi -fi -} - -# syslog service -config_syslog () { -if [ "x$start_syslog" = "xyes" ] ; then - if [ -f /mnt/etc/init.d/syslog ] ; then - # how to configure remote log server? - # logging servers might be specified in $log_servers (from e.g. dhcp) - echo -e "# File modified by $0 within initial ramdisk" \ - > /etc/syslog-ng.conf - sed -e "s,.*dhcp/dev.*,," -e "s,.*named/dev.*,," \ - /mnt/etc/syslog-ng/syslog-ng.conf >> /etc/syslog-ng.conf - cp /etc/syslog-ng.conf /mnt/etc/syslog-ng/syslog-ng.conf - rllinker syslog "$1" "$2" - fi -fi -} - -# secure shell service -config_sshd () { -if [ "x$start_sshd" = "xyes" ] ; then - if [ -f /mnt/etc/init.d/sshd ] ; then - testmkd /mnt/var/lib/sshd; testmkd /mnt/var/lib/empty - rllinker "sshd" "$1" "$2" - fi -fi -} - -# snmp agent for remote monitoring -config_snmp () { -if [ "x$start_snmp" = "xyes" ] ; then - if [ -f /mnt/etc/init.d/snmpd ] ; then - rllinker "snmpd" "$1" "$2" - testmkd /mnt/var/lib/net-snmp >/dev/null 2>&1 - fi - # fixme!! - # write service monitor depending on services started - fi -} - -# x11 stuff -descsession () { -if [ "x$desktop_session" != "x" ] ; then - windowmanagers="$desktop_session" - # write script for desktop-session chooser - if [ "x$vmware" != "xno" ] ; then - debug="" - [ ${DEBUGLEVEL} -gt 0 ] && debug="--debug 1" - 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 \"runvmware \$OPTS $debug\"\n" > /mnt/var/X11R6/bin/desktop-session - chmod a+x /mnt/var/X11R6/bin/desktop-session - addpath="true"; - fi -else - windowmanagers="kde,gnome,icewm,failsafe" -fi -# check if /usr/X11R6/bin is writeable, else use /var/X11R6/bin -if [ -w /mnt/usr/X11R6/bin/WM-Session ] ; then - sesspath="/usr/X11R6/bin" -else - sesspath="/var/X11R6/bin" - addpath="true" -fi - -# create links to desktop-session chooser -[ -f /mnt/usr/bin/X11/wmlist ] && wmlist=`cat /mnt/usr/bin/X11/wmlist` -testmkd /mnt/etc/X11/sessions -for i in `echo $windowmanagers|sed -e "s/,/ /g"` ; do - # beware!! quickhack for VMware sessions - strinstr "$i" "$wmlist" || \ - test -x /mnt/usr/X11R6/bin/$i || \ - echo -e "[Desktop Entry]\nX-SuSE-translate=true\nEncoding=UTF-8\n\ -Type=XSession\nExec=$i\nTryExec=$sesspath/$i\n\ -Name=$i\n" > /mnt/etc/X11/sessions/$i.desktop - # does not work correctly (add /var/X11R6/bin to path!!) - test -x /mnt/usr/X11R6/bin/$i || \ - ln -fs /var/X11R6/bin/desktop-session /mnt/$sesspath/$i -done - -# add special path /var/X11R6/bin to the PATH variable -[ "x$addpath" != "x" ] && \ - echo -e "# added path component by $0: $date\n\ -PATH=\"\$PATH:/var/X11R6/bin\"" >>/mnt/etc/SuSEconfig/profile - -} - -# configure X display manager (/etc/sysconfig/displaymanager) -config_dm_entry () { -local dm="$1" -# should be stated that entries were made (fixmee how??) -sed -e "s,DISPLAYMANAGER=.*,DISPLAYMANAGER=\"$start_xdmcp\"," \ - -e "s,.*_XSERVER.*,DISPLAYMANAGER_STARTS_XSERVER=\"$dm\"," \ - /mnt/etc/sysconfig/displaymanager > /etc/displaymanager -cp /etc/displaymanager /mnt/etc/sysconfig/displaymanager -# start the display manager as early as possible -ln -sf /etc/init.d/xdm /mnt/etc/init.d/boot.d/S12boot.xdm -ln -sf /etc/init.d/xdm /mnt/etc/init.d/rc5.d/S01xdm -ln -sf /etc/init.d/xdm /mnt/etc/init.d/rc5.d/K20xdm -} - -# configure X display manager (runlevel links and kind of manager) -config_xdm () { -config_dm_entry yes -} - -# configure gdm as display manager -config_gdm () { -config_dm_entry yes -testmkd /mnt/var/lib/gdm -strinfile "gdm:" /mnt/etc/passwd || echo "gdm:x:50:15:Gnome Display Manager \ -Daemon:/var/lib/gdm:/bin/false" >>/mnt/etc/passwd -# hack - gdm should be user 50 and shadow group 15 -chown 50:15 /mnt/var/lib/gdm -chmod 0750 /mnt/var/lib/gdm -xdmcp_hosts=`echo $x_display_manager|sed -e "s; ;,;"` -if [ "${DEBUGLEVEL}" -gt 0 ] ; then - debug="true" -else - debug="false" -fi -echo -e "# /etc/opt/gnome/gdm/gdm.conf - file generated by $0\n\ -[daemon] -AutomaticLoginEnable=false -TimedLoginEnable=false -#AlwaysRestartServer=false -Chooser=/opt/gnome/lib/gdm/gdmchooser -Greeter=/opt/gnome/lib/gdm/gdmgreeter -RemoteGreeter=/opt/gnome/lib/gdm/gdmgreeter -DefaultPath=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/bin:\ -/opt/gnome/bin:/opt/kde3/bin:/opt/kde/bin:/usr/openwin/bin -RootPath=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/local/bin:/usr/bin:\ -/usr/X11R6/bin:/bin:/usr/games:/opt/bin:/opt/gnome/bin:/opt/kde3/bin:\ -/opt/kde/bin:/usr/openwin/bin:/opt/cross/bin -User=gdm -Group=shadow -#KillInitClients=true -LogDir=/var/lib/gdm -ServAuthDir=/var/lib/gdm -PostLoginScriptDir=/etc/opt/gnome/gdm/PostLogin/ -PreSessionScriptDir=/etc/opt/gnome/gdm/PreSession/ -PostSessionScriptDir=/etc/opt/gnome/gdm/PostSession/ -DisplayInitDir=/etc/opt/gnome/gdm/Init -XKeepsCrashing=/etc/opt/gnome/gdm/XKeepsCrashing -RebootCommand=/sbin/shutdown -r now -HaltCommand=/sbin/shutdown -h now -SuspendCommand=/usr/bin/powersave --suspend-to-disk -BaseXsession=/etc/opt/gnome/gdm/Xsession -SessionDesktopDir=/usr/share/xsessions/:/etc/X11/sessions/:\ -/etc/opt/gnome/dm/Sessions/:/opt/gnome/share/gdm/BuiltInSessions/ -BaseXsession=/etc/opt/gnome/gdm/Xsession -SessionDesktopDir=/usr/share/xsessions/:/etc/opt/gnome/dm/Sessions/:\ -/opt/gnome/share/gdm/BuiltInSessions/ -UserAuthFBDir=/tmp -UserAuthFile=.Xauthority -StandardXServer=/usr/X11R6/bin/X -Xnest=/usr/X11R6/bin/Xnest -audit 0 -name Xnest - -[security] -AllowRoot=true -AllowRemoteRoot=true -AllowRemoteAutoLogin=false -CheckDirOwner=true -#UserMaxFile=65536 -RetryDelay=1 -#SessionMaxFile=524388 -NeverPlaceCookiesOnNFS=true - -[xdmcp] -Enable=$xdmcp -HonorIndirect=true -MaxPending=4 -MaxPendingIndirect=4 -MaxSessions=10 -MaxWait=15 -MaxWaitIndirect=15 -DisplaysPerHost=2 -Willing=/etc/X11/xdm/Xwilling - -[gui] -#MaxIconWidth=128 -#MaxIconWidth=128 - -[greeter] -Browser=false -#TitleBar=true -MinimalUID=500 -Quiver=true -Welcome=Welcome to %n -LockPosition=true -BackgroundImage=0 -BackgroundColor=#000000 -ShowGnomeFailsafeSession=false -ShowXtermFailsafeSession=false -ShowLastSession=false -Use24Clock=true -GraphicalTheme=GDM-SuSE -GraphicalTheme=circles -GraphicalThemeDir=/opt/gnome/share/gdm/themes/ -GraphicalThemeRand=false -#SystemMenu=true -InfoMsgFile=/opt/gnome/share/gdm/UserInfo -InfoMsgFont=monospace 10 -SoundOnLogin=false -[chooser] -HostImageDir=/opt/gnome/share/hosts/ -Broadcast=false -Multicast=false -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 \ -$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\ -[server-Standard]\nname=Standard server\ncommand=/usr/X11R6/bin/X\n\ -flexible=true\nhandled=true" >>/mnt/etc/opt/gnome/gdm/gdm.conf -fi -} - -# configure gdm as display manager -config_kdm () { -config_dm_entry yes - -} - -# consolefont -consolefont () { -echo -e "\tsetfont ${CONSOLE_FONT} >${LOGFILE} 2>&1\n" \ - >>/mnt/etc/${D_INITDIR}/boot.ld -} - -# acpi and powersave -config_acpi () { -local start_acpi=$1 -local stop_acpi=$2 -local start_powersave=`expr $1 + 5` -local stop_powersave=`expr $1 - 1` -rllinker acpid "$start_acpi" "$stop_acpi" -rllinker powersaved "$start_powersave" "$stop_powersave" -} - -# configure dbus (inter application communication for kde and gnome), hal -# (hardware abstraction layer - used e.g. by powersaved) and resmgr -# (resource manager - the user gets permissions to devices when loggin on) -config_dreshal () { -local start="$1" -local stop="$2" -if [ "x$start_dreshal" = "xyes" ]; then - if [ -f /mnt/etc/init.d/dbus ] ; then - strinfile "messagebus:" /mnt/etc/passwd || \ - echo "messagebus:x:100:101:User for D-BUS:/var/run/dbus:/bin/false" \ - >> /mnt/etc/passwd - testmkd /mnt/var/run/dbus - # chown 100:101 /mnt/var/run/dbus - rllinker "dbus" "$start" "$stop" - fi - if [ -f /mnt/etc/init.d/resmgr ] ; then - testmkd /mnt/var/run/resmgr/classes - start="0"`expr $start + 1` - stop="0"`expr $start - 1` - rllinker "resmgr" "$start" "$stop" - fi - if [ -f /mnt/etc/init.d/haldaemon ] ; then - strinfile "haldaemon:" /mnt/etc/passwd || \ - echo "haldaemon:x:101:102:User for haldaemon:/var/run/hal:/bin/false" \ - >> /mnt/etc/passwd - start="0"`expr $start + 1` - stop="0"`expr $start - 1` - rllinker "haldaemon" "$start" "$stop" - fi -fi -} - -# initialize boot.ld - skript to be executed during early system startup -# (before most of the normal boot init scripts) -# this script should operate like a normal runlevel script -d_mkbootld () { -case "$1" in - init) - echo -e "#!/bin/sh\n# skeleton of /etc/${D_INITDIR}/boot.ld written \ -from $0" >/mnt/etc/${D_INITDIR}/boot.ld - echo -e '\n. /etc/rc.status\nrc_reset\ncase "$1" in\n start)' \ - >>/mnt/etc/${D_INITDIR}/boot.ld - echo -e '\techo -n "Running post configuration required by initrd"' \ - >>/mnt/etc/${D_INITDIR}/boot.ld - chmod u+x /mnt/etc/${D_INITDIR}/boot.ld - ;; - close) - echo -e "\trc_status -v\n\t;;\n stop)\n\t;;\nesac\nrc_exit" \ - >>/mnt/etc/${D_INITDIR}/boot.ld - - ;; -esac -} diff --git a/initrd/distro-specs/suse/.servconf.swp b/initrd/distro-specs/suse/.servconf.swp deleted file mode 100644 index 2452cd37..00000000 Binary files a/initrd/distro-specs/suse/.servconf.swp and /dev/null differ diff --git a/initrd/distro-specs/suse/config b/initrd/distro-specs/suse/config deleted file mode 100644 index 52b22880..00000000 --- a/initrd/distro-specs/suse/config +++ /dev/null @@ -1,48 +0,0 @@ -# Description: distro specific settings for SuSE 10.0 -# -# Author(s): Dirk von Suchodoletz , 06-01-2006 -# -# Copyright: (c) 2003, 2005 - RZ Universitaet Freiburg - - -# D_SYSCONFDIR - system wide configuration settings - /etc/sysconfig in SuSE -# and RedHat, /etc/default in Debian and Ubuntu -# D_ETCEXCL - list of files, wildcards to be excluded from /etc when using -# bind mounts -# D_DIRINBINDMNT - lists of directories to be created in bind mounted rw -# part of the client filesystem -# D_RODIRSINRW - ReadOnly Directories in RW part of filesystem to save on -# TempFS usage -# D_DIRINDXS - directories in client filesystem which should be present -# anyhow -# D_BINDMNT - any code which is specific in bind mount environment -# D_RCDIRS - runlevel directories relative to /etc -# D_XF86CONFFILE - name and location of XFree/Xorg config file, e.g. -# /etc/X11/xorg.conf or /etc/X11/XF86config, ... -# D_XFONTPATH - path(es) where X11 fonts are installed (with trailing /*) -# D_DEFAULTCOUNTRY - localization (see common functions) - -D_SYSCONFDIR=/sysconfig -D_ETCEXCL="opt/gnome/gconf/*\n*.old\n*-\n*.rpmorig\n*.rpmnew\n\ -*.YaST2save\netc/autoinstall\nlogrotate*\nbootloader\n*~\n\ -*.SuSEconfig.saved\npptp.d\nisdn\nyouservers\nhardware/hwcfg*\n\ -X11/xdm/pixmaps\n*.rpmsave\ndhclient*script\ninit.d/boot.d/*\n\ -init.d/rc3.d/*\ninit.d/rc5.d/*\nX11/xorg.conf*\n" -D_BINDMPTS="tmp root media home" -D_DIRINBINDMNT="/var/run /var/log /var/tmp" -D_RODIRSINRW="/etc/opt/gnome/gconf /etc/X11/xkb /var/adm /var/lib/texmf /var/lib/rpm" -D_DIRINDXS="/var/X11R6/compose-cache \ -/var/run/sysconfig/tmp /var/adm /var/lib/rpm /var/lib/nobody \ -/var/lib/pam_devperm /var/lib/bluetooth \ -/var/lib/texmf /var/lib/nfs/sm \ -/var/lib/misc /var/lib/acpi /var/spool/cron \ -/var/lock/subsys/sysconfig" -D_BINDMNT="# spielspass fuer splash" -D_INITDIR="/init.d" -D_INITBOOTD="${D_INITDIR}/boot.d" -D_RCDIRS="/init.d/rc0.d /init.d/rc1.d /init.d/rc2.d /init.d/rc3.d /init.d/rc4.d /init.d/rc5.d /init.d/rc6.d /init.d/rcS.d" -D_INITSCRIPTS="boot.udev boot.proc boot.shm boot.klog boot.loadmodules boot.clock boot.sysctl boot.ipconfig" -D_XF86CONFFILE="/etc/X11/xorg.conf" -D_XFONTPATH="/usr/X11R6/lib/X11/fonts/*" -D_DEFAULTCOUNTRY="de" - diff --git a/initrd/distro-specs/suse/config-9.3 b/initrd/distro-specs/suse/config-9.3 new file mode 100644 index 00000000..52b22880 --- /dev/null +++ b/initrd/distro-specs/suse/config-9.3 @@ -0,0 +1,48 @@ +# Description: distro specific settings for SuSE 10.0 +# +# Author(s): Dirk von Suchodoletz , 06-01-2006 +# +# Copyright: (c) 2003, 2005 - RZ Universitaet Freiburg + + +# D_SYSCONFDIR - system wide configuration settings - /etc/sysconfig in SuSE +# and RedHat, /etc/default in Debian and Ubuntu +# D_ETCEXCL - list of files, wildcards to be excluded from /etc when using +# bind mounts +# D_DIRINBINDMNT - lists of directories to be created in bind mounted rw +# part of the client filesystem +# D_RODIRSINRW - ReadOnly Directories in RW part of filesystem to save on +# TempFS usage +# D_DIRINDXS - directories in client filesystem which should be present +# anyhow +# D_BINDMNT - any code which is specific in bind mount environment +# D_RCDIRS - runlevel directories relative to /etc +# D_XF86CONFFILE - name and location of XFree/Xorg config file, e.g. +# /etc/X11/xorg.conf or /etc/X11/XF86config, ... +# D_XFONTPATH - path(es) where X11 fonts are installed (with trailing /*) +# D_DEFAULTCOUNTRY - localization (see common functions) + +D_SYSCONFDIR=/sysconfig +D_ETCEXCL="opt/gnome/gconf/*\n*.old\n*-\n*.rpmorig\n*.rpmnew\n\ +*.YaST2save\netc/autoinstall\nlogrotate*\nbootloader\n*~\n\ +*.SuSEconfig.saved\npptp.d\nisdn\nyouservers\nhardware/hwcfg*\n\ +X11/xdm/pixmaps\n*.rpmsave\ndhclient*script\ninit.d/boot.d/*\n\ +init.d/rc3.d/*\ninit.d/rc5.d/*\nX11/xorg.conf*\n" +D_BINDMPTS="tmp root media home" +D_DIRINBINDMNT="/var/run /var/log /var/tmp" +D_RODIRSINRW="/etc/opt/gnome/gconf /etc/X11/xkb /var/adm /var/lib/texmf /var/lib/rpm" +D_DIRINDXS="/var/X11R6/compose-cache \ +/var/run/sysconfig/tmp /var/adm /var/lib/rpm /var/lib/nobody \ +/var/lib/pam_devperm /var/lib/bluetooth \ +/var/lib/texmf /var/lib/nfs/sm \ +/var/lib/misc /var/lib/acpi /var/spool/cron \ +/var/lock/subsys/sysconfig" +D_BINDMNT="# spielspass fuer splash" +D_INITDIR="/init.d" +D_INITBOOTD="${D_INITDIR}/boot.d" +D_RCDIRS="/init.d/rc0.d /init.d/rc1.d /init.d/rc2.d /init.d/rc3.d /init.d/rc4.d /init.d/rc5.d /init.d/rc6.d /init.d/rcS.d" +D_INITSCRIPTS="boot.udev boot.proc boot.shm boot.klog boot.loadmodules boot.clock boot.sysctl boot.ipconfig" +D_XF86CONFFILE="/etc/X11/xorg.conf" +D_XFONTPATH="/usr/X11R6/lib/X11/fonts/*" +D_DEFAULTCOUNTRY="de" + diff --git a/initrd/distro-specs/suse/files-9.3/etc/init.d/boot b/initrd/distro-specs/suse/files-9.3/etc/init.d/boot new file mode 100755 index 00000000..f975046f --- /dev/null +++ b/initrd/distro-specs/suse/files-9.3/etc/init.d/boot @@ -0,0 +1,286 @@ +#!/bin/sh +# +# Description: Modificated /etc/init.d/boot for use with Diskless +# X Stations (v4.0) -> replaces /etc/init.d/boot +# simply copied over the original file in initrd +# +# Author(s): Dirk von Suchodoletz , 08-01-2006 +# Copyright: (c) 2003, 2006 - RZ Universitaet Freiburg +# +# Version: 0.0.2b +# +# Some parts taken from /etc/init.d/boot by +# +# Copyright (c) 1996-2004 SuSE Linux AG, Nuernberg, Germany. +# All rights reserved. +# +# Author: Ruediger Oertel , 1996-2002 +# Werner Fink , 1996-2003 +# Burchard Steinbild, 1996-2000 +# Florian La Roche, 1996 +# +# first script to be executed from init on system startup +# +# Most of preparation is done within the initial ramdisk +# +################################################################ +LD_LIBRARY_PATH=/usr/lib + +# Before we do anything else, try at first to activate SELinux support +test -d /selinux && mount -n -t selinuxfs none /selinux &>/dev/null + +# Configuration and coloring of the boot messages +. /etc/rc.status +. /etc/sysconfig/boot +. /etc/sysconfig/logfile + +# Avoid be interrupted by child or keyboard +trap "echo" SIGINT SIGSEGV SIGQUIT +set +e + +# reasonable start values for bootsplash progress +export progress=0 +export sscripts=45 +export kscripts=45 + +echo -n "System Boot Control: " +echo "Running $0" + +################################################################ +# + +# some important (un)mounts +rc_reset +echo -n "Mounting /proc, /sys and /dev/pts filesystems" +# file /etc/fstab in some scenarios not available +mount -n -t proc proc /proc &>/dev/null +rc_status -v -r + +echo -n "Mounting /dev/pts" +mount -t devpts -o mode=0620,gid=5 devpts /dev/pts +rc_status -v -r +if [ -d /sys ] ; then + while read a b c ; do + case "$b" in + sysfs) + echo -n "Mounting /sys filesystem" + echo -e "sysfs\t\t/sys\t\tsysfs\t\trw\t\t 0 0\n" \ + >>/etc/fstab + mount -t sysfs sysfs /sys + rc_status -v -r + break + ;; + esac + done < /proc/filesystems +fi + +# Start blogd, requires /proc and /dev/pts. +# Export the real device in variable REDIRECT. +test -x /sbin/blogd -a -n "$REDIRECT" && /sbin/blogd $REDIRECT +if test -z "$REDIRECT" ; then + if (echo -n > /dev/tty) 2>/dev/null ; then + REDIRECT=/dev/tty + else + REDIRECT=/dev/console + fi +fi + +################################################################ +# +# Save old terminal settings and set -nl to avoid staircase +# effect, do not lock scrolling, and avoid break characters. +otty=$(stty -g) +if test "$FLOW_CONTROL" = "yes" ; then + stty -nl ixon ignbrk -brkint +else + stty -nl -ixon ignbrk -brkint +fi + +################################################################ +# +# Should we ask for interactive boot mode +DO_CONFIRM="" +read -t 2 check < /proc/cmdline 2> /dev/null +case "$check" in + *confirm*) DO_CONFIRM=yes ;; +esac +test -z "$CONFIRM_PROMPT_TIMEOUT" && CONFIRM_PROMPT_TIMEOUT=5 +if test "$PROMPT_FOR_CONFIRM" = "yes" -a "$DO_CONFIRM" != "yes" ; then + echo -en "${extd}Enter Interactive startup mode?${norm}" + rc_timer_on "$CONFIRM_PROMPT_TIMEOUT" 37 + read -t "$CONFIRM_PROMPT_TIMEOUT" -n 1 \ + -p " ${extd}y${norm}/[${extd}n${norm}]\ +("${CONFIRM_PROMPT_TIMEOUT}s") " answer + rc_timer_off + case "$answer" in + [yYiI]) DO_CONFIRM=yes ;; + *) DO_CONFIRM= ;; + esac + unset answer + echo +fi +export DO_CONFIRM + +################################################################ +# +# Common used variables +bootrc=/etc/init.d/boot.d +rex="[0-9][0-9]" +failed="" +skipped="" +callord="" + +# +# Initialize boosplash progressbar variables +# +. /etc/rc.splash B +splashtrigger "rlchange B" + +################################################################ +# +# Do we stop/start script in parallel? +startpar=$(type -p startpar) +test "$RUN_PARALLEL" = "yes" || startpar="" +test "$DO_CONFIRM" = "yes" && startpar="" + +# Start bootup client scripts. +if test -d ${bootrc}/ ; then + for i in ${bootrc}/S*; do + test -f $i || continue + + B=${i##*/} + script=${B#*S$rex} + B=${B%$script} + + rc_splash "$script start" + + if test "$DO_CONFIRM" = "yes" ; then + rc_confirm -t 5 "Start bootup script ${script}" \ + < $REDIRECT > $REDIRECT 2>&1 + case "$?" in + 0) true ;; + 1) continue ;; + 2) DO_CONFIRM="" + esac + fi + + if test -z "$startpar" ; then + blogger "$script start" + + if test -x "$i" ; then + $i start + else + echo Running $i + /bin/sh $i b + rc_status -v1 -r + fi + status=$? + echo -en "$rc_reset" + + case $status in + [1-4]) failed="${failed:+$failed }$script" ;; + [56]) skipped="${skipped:+$skipped }$script" ;; + [07]|*) ;; + esac + + blogger "'$script start' exits with status $status" + else + # Parallel boot only for valid scripts + test -x $i || continue + + # Current vector + eval cur=\${$B} + test -n "$cur" || callord="${callord:+$callord }$B" + + # Remember scripts + eval $B="\${cur:+$i }\${cur:-$i}" + fi + done +fi + +################################################################ +# +# Call the scripts in correct order +if test -n "$startpar" ; then + declare -i s + for p in $callord ; do + vect=$p + eval p=(\${$p}) + + blogger "run boot scripts (${p[@]##*S$rex})" + if test ${#p[@]} -eq 1 ; then + ${p} start + status=($?) + else + status=($($startpar -t 30 -T 3 -a start ${p[@]})) + fi + echo -en "$rc_reset" + blogger "exit status of (${p[@]##*S$rex}) is (${status[@]})" + + s=0 + for script in ${p[@]##*S$rex} ; do + case "${status[$s]}" in + [1-4]) failed="${failed:+$failed }$script" ;; + [56]) skipped="${skipped:+$skipped }$script" ;; + 0|*) ;; + esac + : $((s++)) + done + done +fi + +################################################################ +# +# Be verbose and print stats +echo -n "System Boot Control: " +echo -e "The system has been ${stat}${extd}set up${norm}" +if test -n "$failed" ; then + n=$((${#failed} + 7)) + echo -n "Failed features: " + test $n -lt 47 && echo -en "\033[${COLUMNS}C\033[${n}D" + echo -e "${warn}${failed}${norm}" +fi +if test -n "$skipped" ; then + n=$((${#skipped} + 7)) + echo -n "Skipped features: " + test $n -lt 47 && echo -en "\033[${COLUMNS}C\033[${n}D" + echo -e "${attn}${skipped}${norm}" +fi + + +################################################################ +# +# Check for boot cycle detection +test -s /lib/bootcycle/stats && . /lib/bootcycle/stats + + +# Remember for master resource script +if test "$DO_CONFIRM" = "yes" ; then + touch /var/run/do_confirm +fi + +# Restore old terminal settings +stty $otty + +################################################################ +# +# Let zic set timezone - if present (from boot.ldconfig). +if test -n "$TIMEZONE" -a -x /usr/sbin/zic ; then + echo -n Setting up timezone data + /usr/sbin/zic -l $TIMEZONE + rc_status -v -r +fi + +################################################################ +# +# start user defined bootup script. +if test -f /etc/init.d/boot.local ; then + ECHO_RETURN=$rc_done_up + echo "Running /etc/init.d/boot.local" + /bin/sh /etc/init.d/boot.local || rc_failed + rc_status -v1; rc_reset + rc_splash "boot.local start" +fi + +rc_reset +exit 0 diff --git a/initrd/distro-specs/suse/files-9.3/etc/init.d/halt b/initrd/distro-specs/suse/files-9.3/etc/init.d/halt new file mode 100755 index 00000000..65e5b0ad --- /dev/null +++ b/initrd/distro-specs/suse/files-9.3/etc/init.d/halt @@ -0,0 +1,90 @@ +#! /bin/sh +# +# Description: Modificated /etc/init.d/halt for use with Diskless +# X Stations (v4.0) +# -> replaces /etc/init.d/halt +# +# Author(s): Dirk von Suchodoletz , 13-12-2005 +# Copyright: (c) 2003, 2005 - RZ Universitaet Freiburg +# +# Version: 0.0.3a +# +# Some parts taken from /etc/init.d/halt by +# +# Copyright (c) 1996-2004 SuSE Linux AG, Nuernberg, Germany. +# All rights reserved. + +. /etc/rc.status +. /etc/sysconfig/clock +. /etc/sysconfig/suseconfig + +# +# Avoid being interrupted by child or keyboard +trap "echo" SIGINT SIGSEGV SIGQUIT SIGTERM +set +e + +rc_reset +case "$0" in + *halt) + message="The system is halted." + command="halt" + modprobe -q apm &>/dev/null + if test -e /proc/apm -o -e /proc/acpi -o -e /proc/sys/acpi ; then + command="halt -p" + else + read cmdline < /proc/cmdline + case "$cmdline" in + *apm=smp-power-off*|*apm=power-off*) + command="halt -p" ;; + esac + fi + ;; + *reboot) + message="Please stand by while rebooting the system..." + command="reboot" + ;; + *) + echo "$0: call me as \"halt\" or \"reboot\" please!" + exit 1 + ;; +esac + +# Write to wtmp file before unmounting /var (only needed with +# persistent mounted filesystem) +# $command -w + +rc_reset +echo "Turning off swap" +sync ; sync +swapoff -a || rc_failed +rc_status + +UMOUNT_FAILED=false +rc_reset +echo "Unmounting file systems and devices" +for unmount in /media/* ; do + umount -fnt $unmount &>/dev/null +done +umount -fnt /tmp/scratch &>/dev/null +eject /dev/zip &>/dev/null & +rc_status -v1 + +umount -anft noproc,nonfs &>/dev/null + +rc_reset +# maybe we use multiple devices +if test -f /etc/mdtab -a -x /sbin/mdadd ; then + echo -n "Disable Multiple Devices" + /sbin/mdstop -a || rc_failed + rc_status -v1 +fi + +sync + +# show "the system is down" message +if test "$SPLASH" = yes ; then + /sbin/splash -q -p 65535 -t "isdown" +fi + +echo $message +exec $command -d -f diff --git a/initrd/distro-specs/suse/files/etc/init.d/boot b/initrd/distro-specs/suse/files/etc/init.d/boot deleted file mode 100755 index f975046f..00000000 --- a/initrd/distro-specs/suse/files/etc/init.d/boot +++ /dev/null @@ -1,286 +0,0 @@ -#!/bin/sh -# -# Description: Modificated /etc/init.d/boot for use with Diskless -# X Stations (v4.0) -> replaces /etc/init.d/boot -# simply copied over the original file in initrd -# -# Author(s): Dirk von Suchodoletz , 08-01-2006 -# Copyright: (c) 2003, 2006 - RZ Universitaet Freiburg -# -# Version: 0.0.2b -# -# Some parts taken from /etc/init.d/boot by -# -# Copyright (c) 1996-2004 SuSE Linux AG, Nuernberg, Germany. -# All rights reserved. -# -# Author: Ruediger Oertel , 1996-2002 -# Werner Fink , 1996-2003 -# Burchard Steinbild, 1996-2000 -# Florian La Roche, 1996 -# -# first script to be executed from init on system startup -# -# Most of preparation is done within the initial ramdisk -# -################################################################ -LD_LIBRARY_PATH=/usr/lib - -# Before we do anything else, try at first to activate SELinux support -test -d /selinux && mount -n -t selinuxfs none /selinux &>/dev/null - -# Configuration and coloring of the boot messages -. /etc/rc.status -. /etc/sysconfig/boot -. /etc/sysconfig/logfile - -# Avoid be interrupted by child or keyboard -trap "echo" SIGINT SIGSEGV SIGQUIT -set +e - -# reasonable start values for bootsplash progress -export progress=0 -export sscripts=45 -export kscripts=45 - -echo -n "System Boot Control: " -echo "Running $0" - -################################################################ -# - -# some important (un)mounts -rc_reset -echo -n "Mounting /proc, /sys and /dev/pts filesystems" -# file /etc/fstab in some scenarios not available -mount -n -t proc proc /proc &>/dev/null -rc_status -v -r - -echo -n "Mounting /dev/pts" -mount -t devpts -o mode=0620,gid=5 devpts /dev/pts -rc_status -v -r -if [ -d /sys ] ; then - while read a b c ; do - case "$b" in - sysfs) - echo -n "Mounting /sys filesystem" - echo -e "sysfs\t\t/sys\t\tsysfs\t\trw\t\t 0 0\n" \ - >>/etc/fstab - mount -t sysfs sysfs /sys - rc_status -v -r - break - ;; - esac - done < /proc/filesystems -fi - -# Start blogd, requires /proc and /dev/pts. -# Export the real device in variable REDIRECT. -test -x /sbin/blogd -a -n "$REDIRECT" && /sbin/blogd $REDIRECT -if test -z "$REDIRECT" ; then - if (echo -n > /dev/tty) 2>/dev/null ; then - REDIRECT=/dev/tty - else - REDIRECT=/dev/console - fi -fi - -################################################################ -# -# Save old terminal settings and set -nl to avoid staircase -# effect, do not lock scrolling, and avoid break characters. -otty=$(stty -g) -if test "$FLOW_CONTROL" = "yes" ; then - stty -nl ixon ignbrk -brkint -else - stty -nl -ixon ignbrk -brkint -fi - -################################################################ -# -# Should we ask for interactive boot mode -DO_CONFIRM="" -read -t 2 check < /proc/cmdline 2> /dev/null -case "$check" in - *confirm*) DO_CONFIRM=yes ;; -esac -test -z "$CONFIRM_PROMPT_TIMEOUT" && CONFIRM_PROMPT_TIMEOUT=5 -if test "$PROMPT_FOR_CONFIRM" = "yes" -a "$DO_CONFIRM" != "yes" ; then - echo -en "${extd}Enter Interactive startup mode?${norm}" - rc_timer_on "$CONFIRM_PROMPT_TIMEOUT" 37 - read -t "$CONFIRM_PROMPT_TIMEOUT" -n 1 \ - -p " ${extd}y${norm}/[${extd}n${norm}]\ -("${CONFIRM_PROMPT_TIMEOUT}s") " answer - rc_timer_off - case "$answer" in - [yYiI]) DO_CONFIRM=yes ;; - *) DO_CONFIRM= ;; - esac - unset answer - echo -fi -export DO_CONFIRM - -################################################################ -# -# Common used variables -bootrc=/etc/init.d/boot.d -rex="[0-9][0-9]" -failed="" -skipped="" -callord="" - -# -# Initialize boosplash progressbar variables -# -. /etc/rc.splash B -splashtrigger "rlchange B" - -################################################################ -# -# Do we stop/start script in parallel? -startpar=$(type -p startpar) -test "$RUN_PARALLEL" = "yes" || startpar="" -test "$DO_CONFIRM" = "yes" && startpar="" - -# Start bootup client scripts. -if test -d ${bootrc}/ ; then - for i in ${bootrc}/S*; do - test -f $i || continue - - B=${i##*/} - script=${B#*S$rex} - B=${B%$script} - - rc_splash "$script start" - - if test "$DO_CONFIRM" = "yes" ; then - rc_confirm -t 5 "Start bootup script ${script}" \ - < $REDIRECT > $REDIRECT 2>&1 - case "$?" in - 0) true ;; - 1) continue ;; - 2) DO_CONFIRM="" - esac - fi - - if test -z "$startpar" ; then - blogger "$script start" - - if test -x "$i" ; then - $i start - else - echo Running $i - /bin/sh $i b - rc_status -v1 -r - fi - status=$? - echo -en "$rc_reset" - - case $status in - [1-4]) failed="${failed:+$failed }$script" ;; - [56]) skipped="${skipped:+$skipped }$script" ;; - [07]|*) ;; - esac - - blogger "'$script start' exits with status $status" - else - # Parallel boot only for valid scripts - test -x $i || continue - - # Current vector - eval cur=\${$B} - test -n "$cur" || callord="${callord:+$callord }$B" - - # Remember scripts - eval $B="\${cur:+$i }\${cur:-$i}" - fi - done -fi - -################################################################ -# -# Call the scripts in correct order -if test -n "$startpar" ; then - declare -i s - for p in $callord ; do - vect=$p - eval p=(\${$p}) - - blogger "run boot scripts (${p[@]##*S$rex})" - if test ${#p[@]} -eq 1 ; then - ${p} start - status=($?) - else - status=($($startpar -t 30 -T 3 -a start ${p[@]})) - fi - echo -en "$rc_reset" - blogger "exit status of (${p[@]##*S$rex}) is (${status[@]})" - - s=0 - for script in ${p[@]##*S$rex} ; do - case "${status[$s]}" in - [1-4]) failed="${failed:+$failed }$script" ;; - [56]) skipped="${skipped:+$skipped }$script" ;; - 0|*) ;; - esac - : $((s++)) - done - done -fi - -################################################################ -# -# Be verbose and print stats -echo -n "System Boot Control: " -echo -e "The system has been ${stat}${extd}set up${norm}" -if test -n "$failed" ; then - n=$((${#failed} + 7)) - echo -n "Failed features: " - test $n -lt 47 && echo -en "\033[${COLUMNS}C\033[${n}D" - echo -e "${warn}${failed}${norm}" -fi -if test -n "$skipped" ; then - n=$((${#skipped} + 7)) - echo -n "Skipped features: " - test $n -lt 47 && echo -en "\033[${COLUMNS}C\033[${n}D" - echo -e "${attn}${skipped}${norm}" -fi - - -################################################################ -# -# Check for boot cycle detection -test -s /lib/bootcycle/stats && . /lib/bootcycle/stats - - -# Remember for master resource script -if test "$DO_CONFIRM" = "yes" ; then - touch /var/run/do_confirm -fi - -# Restore old terminal settings -stty $otty - -################################################################ -# -# Let zic set timezone - if present (from boot.ldconfig). -if test -n "$TIMEZONE" -a -x /usr/sbin/zic ; then - echo -n Setting up timezone data - /usr/sbin/zic -l $TIMEZONE - rc_status -v -r -fi - -################################################################ -# -# start user defined bootup script. -if test -f /etc/init.d/boot.local ; then - ECHO_RETURN=$rc_done_up - echo "Running /etc/init.d/boot.local" - /bin/sh /etc/init.d/boot.local || rc_failed - rc_status -v1; rc_reset - rc_splash "boot.local start" -fi - -rc_reset -exit 0 diff --git a/initrd/distro-specs/suse/files/etc/init.d/halt b/initrd/distro-specs/suse/files/etc/init.d/halt deleted file mode 100755 index 65e5b0ad..00000000 --- a/initrd/distro-specs/suse/files/etc/init.d/halt +++ /dev/null @@ -1,90 +0,0 @@ -#! /bin/sh -# -# Description: Modificated /etc/init.d/halt for use with Diskless -# X Stations (v4.0) -# -> replaces /etc/init.d/halt -# -# Author(s): Dirk von Suchodoletz , 13-12-2005 -# Copyright: (c) 2003, 2005 - RZ Universitaet Freiburg -# -# Version: 0.0.3a -# -# Some parts taken from /etc/init.d/halt by -# -# Copyright (c) 1996-2004 SuSE Linux AG, Nuernberg, Germany. -# All rights reserved. - -. /etc/rc.status -. /etc/sysconfig/clock -. /etc/sysconfig/suseconfig - -# -# Avoid being interrupted by child or keyboard -trap "echo" SIGINT SIGSEGV SIGQUIT SIGTERM -set +e - -rc_reset -case "$0" in - *halt) - message="The system is halted." - command="halt" - modprobe -q apm &>/dev/null - if test -e /proc/apm -o -e /proc/acpi -o -e /proc/sys/acpi ; then - command="halt -p" - else - read cmdline < /proc/cmdline - case "$cmdline" in - *apm=smp-power-off*|*apm=power-off*) - command="halt -p" ;; - esac - fi - ;; - *reboot) - message="Please stand by while rebooting the system..." - command="reboot" - ;; - *) - echo "$0: call me as \"halt\" or \"reboot\" please!" - exit 1 - ;; -esac - -# Write to wtmp file before unmounting /var (only needed with -# persistent mounted filesystem) -# $command -w - -rc_reset -echo "Turning off swap" -sync ; sync -swapoff -a || rc_failed -rc_status - -UMOUNT_FAILED=false -rc_reset -echo "Unmounting file systems and devices" -for unmount in /media/* ; do - umount -fnt $unmount &>/dev/null -done -umount -fnt /tmp/scratch &>/dev/null -eject /dev/zip &>/dev/null & -rc_status -v1 - -umount -anft noproc,nonfs &>/dev/null - -rc_reset -# maybe we use multiple devices -if test -f /etc/mdtab -a -x /sbin/mdadd ; then - echo -n "Disable Multiple Devices" - /sbin/mdstop -a || rc_failed - rc_status -v1 -fi - -sync - -# show "the system is down" message -if test "$SPLASH" = yes ; then - /sbin/splash -q -p 65535 -t "isdown" -fi - -echo $message -exec $command -d -f diff --git a/initrd/distro-specs/suse/functions-10.0 b/initrd/distro-specs/suse/functions-10.0 new file mode 100644 index 00000000..8b63085f --- /dev/null +++ b/initrd/distro-specs/suse/functions-10.0 @@ -0,0 +1,380 @@ +# Description: configuration script for SuSE 10.0 to configure +# linux diskless clients (included by init, hwautocfg, +# servconfig, ... within initial ramdisk after inclusion +# of the main functions file) +# +# Author(s): Dirk von Suchodoletz , 20-01-2006 +# Blabla +# Blub +# +# Copyright: (c) 2006 - RZ Universitaet Freiburg +# +# Version: 0.2.1a + +# distro specific stuff to initialize +preinit () { + # do nothing yet + echo > /dev/null +} + +# linking runlevel scripts +rllinker () { +local script="$1" +local start="$2" +local stop="$3" +# empty runlevel links - decision on running certain services is +# passed via configuration +for i in rc3.d/K$stop$script rc5.d/K$stop$script \ + rc3.d/S$start$script rc5.d/S$start$script ; do + ln -sf ../$script /mnt/etc/init.d/$i +done +} + +# group of functions for the normal runlevels - first parameter is start +# second stop +# function for ntp configuration +config_ntp () { +local start=$1 +local stop=$2 +if [ -f /mnt/etc/init.d/ntp ] ; then + strinfile "ntp:" /mnt/etc/passwd || \ + echo -e "ntp:x:74:65534:NTP daemon:/var/lib/ntp:/bin/false" \ + >>/mnt/etc/passwd + testmkd /mnt/var/lib/ntp/var/run/ntp &>/dev/null + if [ "x$start_ntp" = "xinitial" ] ; then + echo -e "\t# entry added by $0: $date" \ + >>/mnt/etc/${D_INITDIR}/boot.ld + echo -e "\tntpdate -s -b $ntp_servers >${LOGFILE} 2>&1 &" \ + >>/mnt/etc/${D_INITDIR}/boot.ld + else + rllinker "ntp" "$start" "$stop" + fi +fi +} + +# function for atd +config_atd () { +if [ "x$start_atd" = "xyes" ]; then + rllinker "atd" "$1" "$2" +fi +} + +# function for configuration of cron services +config_cron () { +if [ "x$start_cron" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/cron ] ; then + testmkd /mnt/var/spool/cron/lastrun + testmkd /mnt/var/spool/cron/tabs + echo -e "# /etc/crontab - file generated by $0:\n\ +#\t$date\nSHELL=/bin/sh\nPATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin\ +\nMAILTO=\n-*/15 * * * *\troot\ttest -x /usr/lib/cron/run-crons && \ +/usr/lib/cron/run-crons >/dev/null 2>&1\n" >/mnt/etc/crontab + else + error " The cron start script seems not to be installed, so requesting \ +\n the start of cron services make no sense." nonfatal + fi +fi +} + +# syslog service +config_syslog () { +if [ "x$start_syslog" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/syslog ] ; then + # how to configure remote log server? + # logging servers might be specified in $log_servers (from e.g. dhcp) + echo -e "# File modified by $0 within initial ramdisk" \ + > /etc/syslog-ng.conf + sed -e "s,.*dhcp/dev.*,," -e "s,.*named/dev.*,," \ + /mnt/etc/syslog-ng/syslog-ng.conf >> /etc/syslog-ng.conf + cp /etc/syslog-ng.conf /mnt/etc/syslog-ng/syslog-ng.conf + rllinker syslog "$1" "$2" + fi +fi +} + +# secure shell service +config_sshd () { +if [ "x$start_sshd" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/sshd ] ; then + testmkd /mnt/var/lib/sshd; testmkd /mnt/var/lib/empty + rllinker "sshd" "$1" "$2" + fi +fi +} + +# snmp agent for remote monitoring +config_snmp () { +if [ "x$start_snmp" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/snmpd ] ; then + rllinker "snmpd" "$1" "$2" + testmkd /mnt/var/lib/net-snmp >/dev/null 2>&1 + fi + # fixme!! + # write service monitor depending on services started + fi +} + +# x11 stuff +descsession () { +if [ "x$desktop_session" != "x" ] ; then + windowmanagers="$desktop_session" + # write script for desktop-session chooser + if [ "x$vmware" != "xno" ] ; then + debug="" + [ ${DEBUGLEVEL} -gt 0 ] && debug="--debug 1" + 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 \"runvmware \$OPTS $debug\"\n" > /mnt/var/X11R6/bin/desktop-session + chmod a+x /mnt/var/X11R6/bin/desktop-session + addpath="true"; + fi +else + windowmanagers="kde,gnome,icewm,failsafe" +fi +# check if /usr/X11R6/bin is writeable, else use /var/X11R6/bin +if [ -w /mnt/usr/X11R6/bin/WM-Session ] ; then + sesspath="/usr/X11R6/bin" +else + sesspath="/var/X11R6/bin" + addpath="true" +fi + +# create links to desktop-session chooser +[ -f /mnt/usr/bin/X11/wmlist ] && wmlist=`cat /mnt/usr/bin/X11/wmlist` +testmkd /mnt/etc/X11/sessions +for i in `echo $windowmanagers|sed -e "s/,/ /g"` ; do + # beware!! quickhack for VMware sessions + strinstr "$i" "$wmlist" || \ + test -x /mnt/usr/X11R6/bin/$i || \ + echo -e "[Desktop Entry]\nX-SuSE-translate=true\nEncoding=UTF-8\n\ +Type=XSession\nExec=$i\nTryExec=$sesspath/$i\n\ +Name=$i\n" > /mnt/etc/X11/sessions/$i.desktop + # does not work correctly (add /var/X11R6/bin to path!!) + test -x /mnt/usr/X11R6/bin/$i || \ + ln -fs /var/X11R6/bin/desktop-session /mnt/$sesspath/$i +done + +# add special path /var/X11R6/bin to the PATH variable +[ "x$addpath" != "x" ] && \ + echo -e "# added path component by $0: $date\n\ +PATH=\"\$PATH:/var/X11R6/bin\"" >>/mnt/etc/SuSEconfig/profile + +} + +# configure X display manager (/etc/sysconfig/displaymanager) +config_dm_entry () { +local dm="$1" +# should be stated that entries were made (fixmee how??) +sed -e "s,DISPLAYMANAGER=.*,DISPLAYMANAGER=\"$start_xdmcp\"," \ + -e "s,.*_XSERVER.*,DISPLAYMANAGER_STARTS_XSERVER=\"$dm\"," \ + /mnt/etc/sysconfig/displaymanager > /etc/displaymanager +cp /etc/displaymanager /mnt/etc/sysconfig/displaymanager +# start the display manager as early as possible +ln -sf /etc/init.d/xdm /mnt/etc/init.d/boot.d/S12boot.xdm +ln -sf /etc/init.d/xdm /mnt/etc/init.d/rc5.d/S01xdm +ln -sf /etc/init.d/xdm /mnt/etc/init.d/rc5.d/K20xdm +} + +# configure X display manager (runlevel links and kind of manager) +config_xdm () { +config_dm_entry yes +} + +# configure gdm as display manager +config_gdm () { +config_dm_entry yes +testmkd /mnt/var/lib/gdm +strinfile "gdm:" /mnt/etc/passwd || echo "gdm:x:50:15:Gnome Display Manager \ +Daemon:/var/lib/gdm:/bin/false" >>/mnt/etc/passwd +# hack - gdm should be user 50 and shadow group 15 +chown 50:15 /mnt/var/lib/gdm +chmod 0750 /mnt/var/lib/gdm +xdmcp_hosts=`echo $x_display_manager|sed -e "s; ;,;"` +if [ "${DEBUGLEVEL}" -gt 0 ] ; then + debug="true" +else + debug="false" +fi +echo -e "# /etc/opt/gnome/gdm/gdm.conf - file generated by $0\n\ +[daemon] +AutomaticLoginEnable=false +TimedLoginEnable=false +#AlwaysRestartServer=false +Chooser=/opt/gnome/lib/gdm/gdmchooser +Greeter=/opt/gnome/lib/gdm/gdmgreeter +RemoteGreeter=/opt/gnome/lib/gdm/gdmgreeter +DefaultPath=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/bin:\ +/opt/gnome/bin:/opt/kde3/bin:/opt/kde/bin:/usr/openwin/bin +RootPath=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/local/bin:/usr/bin:\ +/usr/X11R6/bin:/bin:/usr/games:/opt/bin:/opt/gnome/bin:/opt/kde3/bin:\ +/opt/kde/bin:/usr/openwin/bin:/opt/cross/bin +User=gdm +Group=shadow +#KillInitClients=true +LogDir=/var/lib/gdm +ServAuthDir=/var/lib/gdm +PostLoginScriptDir=/etc/opt/gnome/gdm/PostLogin/ +PreSessionScriptDir=/etc/opt/gnome/gdm/PreSession/ +PostSessionScriptDir=/etc/opt/gnome/gdm/PostSession/ +DisplayInitDir=/etc/opt/gnome/gdm/Init +XKeepsCrashing=/etc/opt/gnome/gdm/XKeepsCrashing +RebootCommand=/sbin/shutdown -r now +HaltCommand=/sbin/shutdown -h now +SuspendCommand=/usr/bin/powersave --suspend-to-disk +BaseXsession=/etc/opt/gnome/gdm/Xsession +SessionDesktopDir=/usr/share/xsessions/:/etc/X11/sessions/:\ +/etc/opt/gnome/dm/Sessions/:/opt/gnome/share/gdm/BuiltInSessions/ +BaseXsession=/etc/opt/gnome/gdm/Xsession +SessionDesktopDir=/usr/share/xsessions/:/etc/opt/gnome/dm/Sessions/:\ +/opt/gnome/share/gdm/BuiltInSessions/ +UserAuthFBDir=/tmp +UserAuthFile=.Xauthority +StandardXServer=/usr/X11R6/bin/X +Xnest=/usr/X11R6/bin/Xnest -audit 0 -name Xnest + +[security] +AllowRoot=true +AllowRemoteRoot=true +AllowRemoteAutoLogin=false +CheckDirOwner=true +#UserMaxFile=65536 +RetryDelay=1 +#SessionMaxFile=524388 +NeverPlaceCookiesOnNFS=true + +[xdmcp] +Enable=$xdmcp +HonorIndirect=true +MaxPending=4 +MaxPendingIndirect=4 +MaxSessions=10 +MaxWait=15 +MaxWaitIndirect=15 +DisplaysPerHost=2 +Willing=/etc/X11/xdm/Xwilling + +[gui] +#MaxIconWidth=128 +#MaxIconWidth=128 + +[greeter] +Browser=false +#TitleBar=true +MinimalUID=500 +Quiver=true +Welcome=Welcome to %n +LockPosition=true +BackgroundImage=0 +BackgroundColor=#000000 +ShowGnomeFailsafeSession=false +ShowXtermFailsafeSession=false +ShowLastSession=false +Use24Clock=true +GraphicalTheme=GDM-SuSE +GraphicalTheme=circles +GraphicalThemeDir=/opt/gnome/share/gdm/themes/ +GraphicalThemeRand=false +#SystemMenu=true +InfoMsgFile=/opt/gnome/share/gdm/UserInfo +InfoMsgFont=monospace 10 +SoundOnLogin=false +[chooser] +HostImageDir=/opt/gnome/share/hosts/ +Broadcast=false +Multicast=false +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 \ +$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\ +[server-Standard]\nname=Standard server\ncommand=/usr/X11R6/bin/X\n\ +flexible=true\nhandled=true" >>/mnt/etc/opt/gnome/gdm/gdm.conf +fi +} + +# configure gdm as display manager +config_kdm () { +config_dm_entry yes + +} + +# consolefont +consolefont () { +echo -e "\tsetfont ${CONSOLE_FONT} >${LOGFILE} 2>&1\n" \ + >>/mnt/etc/${D_INITDIR}/boot.ld +} + +# acpi and powersave +config_acpi () { +local start_acpi=$1 +local stop_acpi=$2 +local start_powersave=`expr $1 + 5` +local stop_powersave=`expr $1 - 1` +rllinker acpid "$start_acpi" "$stop_acpi" +rllinker powersaved "$start_powersave" "$stop_powersave" +} + +# configure dbus (inter application communication for kde and gnome), hal +# (hardware abstraction layer - used e.g. by powersaved) and resmgr +# (resource manager - the user gets permissions to devices when loggin on) +config_dreshal () { +local start="$1" +local stop="$2" +if [ "x$start_dreshal" = "xyes" ]; then + if [ -f /mnt/etc/init.d/dbus ] ; then + strinfile "messagebus:" /mnt/etc/passwd || \ + echo "messagebus:x:100:101:User for D-BUS:/var/run/dbus:/bin/false" \ + >> /mnt/etc/passwd + testmkd /mnt/var/run/dbus + # chown 100:101 /mnt/var/run/dbus + rllinker "dbus" "$start" "$stop" + fi + if [ -f /mnt/etc/init.d/resmgr ] ; then + testmkd /mnt/var/run/resmgr/classes + start="0"`expr $start + 1` + stop="0"`expr $start - 1` + rllinker "resmgr" "$start" "$stop" + fi + if [ -f /mnt/etc/init.d/haldaemon ] ; then + strinfile "haldaemon:" /mnt/etc/passwd || \ + echo "haldaemon:x:101:102:User for haldaemon:/var/run/hal:/bin/false" \ + >> /mnt/etc/passwd + start="0"`expr $start + 1` + stop="0"`expr $start - 1` + rllinker "haldaemon" "$start" "$stop" + fi +fi +} + +# initialize boot.ld - skript to be executed during early system startup +# (before most of the normal boot init scripts) +# this script should operate like a normal runlevel script +d_mkbootld () { +case "$1" in + init) + echo -e "#!/bin/sh\n# skeleton of /etc/${D_INITDIR}/boot.ld written \ +from $0" >/mnt/etc/${D_INITDIR}/boot.ld + echo -e '\n. /etc/rc.status\nrc_reset\ncase "$1" in\n start)' \ + >>/mnt/etc/${D_INITDIR}/boot.ld + echo -e '\techo -n "Running post configuration required by initrd"' \ + >>/mnt/etc/${D_INITDIR}/boot.ld + chmod u+x /mnt/etc/${D_INITDIR}/boot.ld + ;; + close) + echo -e "\trc_status -v\n\t;;\n stop)\n\t;;\nesac\nrc_exit" \ + >>/mnt/etc/${D_INITDIR}/boot.ld + + ;; +esac +} diff --git a/initrd/distro-specs/suse/functions-suse-10.0 b/initrd/distro-specs/suse/functions-suse-10.0 deleted file mode 100644 index 8b63085f..00000000 --- a/initrd/distro-specs/suse/functions-suse-10.0 +++ /dev/null @@ -1,380 +0,0 @@ -# Description: configuration script for SuSE 10.0 to configure -# linux diskless clients (included by init, hwautocfg, -# servconfig, ... within initial ramdisk after inclusion -# of the main functions file) -# -# Author(s): Dirk von Suchodoletz , 20-01-2006 -# Blabla -# Blub -# -# Copyright: (c) 2006 - RZ Universitaet Freiburg -# -# Version: 0.2.1a - -# distro specific stuff to initialize -preinit () { - # do nothing yet - echo > /dev/null -} - -# linking runlevel scripts -rllinker () { -local script="$1" -local start="$2" -local stop="$3" -# empty runlevel links - decision on running certain services is -# passed via configuration -for i in rc3.d/K$stop$script rc5.d/K$stop$script \ - rc3.d/S$start$script rc5.d/S$start$script ; do - ln -sf ../$script /mnt/etc/init.d/$i -done -} - -# group of functions for the normal runlevels - first parameter is start -# second stop -# function for ntp configuration -config_ntp () { -local start=$1 -local stop=$2 -if [ -f /mnt/etc/init.d/ntp ] ; then - strinfile "ntp:" /mnt/etc/passwd || \ - echo -e "ntp:x:74:65534:NTP daemon:/var/lib/ntp:/bin/false" \ - >>/mnt/etc/passwd - testmkd /mnt/var/lib/ntp/var/run/ntp &>/dev/null - if [ "x$start_ntp" = "xinitial" ] ; then - echo -e "\t# entry added by $0: $date" \ - >>/mnt/etc/${D_INITDIR}/boot.ld - echo -e "\tntpdate -s -b $ntp_servers >${LOGFILE} 2>&1 &" \ - >>/mnt/etc/${D_INITDIR}/boot.ld - else - rllinker "ntp" "$start" "$stop" - fi -fi -} - -# function for atd -config_atd () { -if [ "x$start_atd" = "xyes" ]; then - rllinker "atd" "$1" "$2" -fi -} - -# function for configuration of cron services -config_cron () { -if [ "x$start_cron" = "xyes" ] ; then - if [ -f /mnt/etc/init.d/cron ] ; then - testmkd /mnt/var/spool/cron/lastrun - testmkd /mnt/var/spool/cron/tabs - echo -e "# /etc/crontab - file generated by $0:\n\ -#\t$date\nSHELL=/bin/sh\nPATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin\ -\nMAILTO=\n-*/15 * * * *\troot\ttest -x /usr/lib/cron/run-crons && \ -/usr/lib/cron/run-crons >/dev/null 2>&1\n" >/mnt/etc/crontab - else - error " The cron start script seems not to be installed, so requesting \ -\n the start of cron services make no sense." nonfatal - fi -fi -} - -# syslog service -config_syslog () { -if [ "x$start_syslog" = "xyes" ] ; then - if [ -f /mnt/etc/init.d/syslog ] ; then - # how to configure remote log server? - # logging servers might be specified in $log_servers (from e.g. dhcp) - echo -e "# File modified by $0 within initial ramdisk" \ - > /etc/syslog-ng.conf - sed -e "s,.*dhcp/dev.*,," -e "s,.*named/dev.*,," \ - /mnt/etc/syslog-ng/syslog-ng.conf >> /etc/syslog-ng.conf - cp /etc/syslog-ng.conf /mnt/etc/syslog-ng/syslog-ng.conf - rllinker syslog "$1" "$2" - fi -fi -} - -# secure shell service -config_sshd () { -if [ "x$start_sshd" = "xyes" ] ; then - if [ -f /mnt/etc/init.d/sshd ] ; then - testmkd /mnt/var/lib/sshd; testmkd /mnt/var/lib/empty - rllinker "sshd" "$1" "$2" - fi -fi -} - -# snmp agent for remote monitoring -config_snmp () { -if [ "x$start_snmp" = "xyes" ] ; then - if [ -f /mnt/etc/init.d/snmpd ] ; then - rllinker "snmpd" "$1" "$2" - testmkd /mnt/var/lib/net-snmp >/dev/null 2>&1 - fi - # fixme!! - # write service monitor depending on services started - fi -} - -# x11 stuff -descsession () { -if [ "x$desktop_session" != "x" ] ; then - windowmanagers="$desktop_session" - # write script for desktop-session chooser - if [ "x$vmware" != "xno" ] ; then - debug="" - [ ${DEBUGLEVEL} -gt 0 ] && debug="--debug 1" - 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 \"runvmware \$OPTS $debug\"\n" > /mnt/var/X11R6/bin/desktop-session - chmod a+x /mnt/var/X11R6/bin/desktop-session - addpath="true"; - fi -else - windowmanagers="kde,gnome,icewm,failsafe" -fi -# check if /usr/X11R6/bin is writeable, else use /var/X11R6/bin -if [ -w /mnt/usr/X11R6/bin/WM-Session ] ; then - sesspath="/usr/X11R6/bin" -else - sesspath="/var/X11R6/bin" - addpath="true" -fi - -# create links to desktop-session chooser -[ -f /mnt/usr/bin/X11/wmlist ] && wmlist=`cat /mnt/usr/bin/X11/wmlist` -testmkd /mnt/etc/X11/sessions -for i in `echo $windowmanagers|sed -e "s/,/ /g"` ; do - # beware!! quickhack for VMware sessions - strinstr "$i" "$wmlist" || \ - test -x /mnt/usr/X11R6/bin/$i || \ - echo -e "[Desktop Entry]\nX-SuSE-translate=true\nEncoding=UTF-8\n\ -Type=XSession\nExec=$i\nTryExec=$sesspath/$i\n\ -Name=$i\n" > /mnt/etc/X11/sessions/$i.desktop - # does not work correctly (add /var/X11R6/bin to path!!) - test -x /mnt/usr/X11R6/bin/$i || \ - ln -fs /var/X11R6/bin/desktop-session /mnt/$sesspath/$i -done - -# add special path /var/X11R6/bin to the PATH variable -[ "x$addpath" != "x" ] && \ - echo -e "# added path component by $0: $date\n\ -PATH=\"\$PATH:/var/X11R6/bin\"" >>/mnt/etc/SuSEconfig/profile - -} - -# configure X display manager (/etc/sysconfig/displaymanager) -config_dm_entry () { -local dm="$1" -# should be stated that entries were made (fixmee how??) -sed -e "s,DISPLAYMANAGER=.*,DISPLAYMANAGER=\"$start_xdmcp\"," \ - -e "s,.*_XSERVER.*,DISPLAYMANAGER_STARTS_XSERVER=\"$dm\"," \ - /mnt/etc/sysconfig/displaymanager > /etc/displaymanager -cp /etc/displaymanager /mnt/etc/sysconfig/displaymanager -# start the display manager as early as possible -ln -sf /etc/init.d/xdm /mnt/etc/init.d/boot.d/S12boot.xdm -ln -sf /etc/init.d/xdm /mnt/etc/init.d/rc5.d/S01xdm -ln -sf /etc/init.d/xdm /mnt/etc/init.d/rc5.d/K20xdm -} - -# configure X display manager (runlevel links and kind of manager) -config_xdm () { -config_dm_entry yes -} - -# configure gdm as display manager -config_gdm () { -config_dm_entry yes -testmkd /mnt/var/lib/gdm -strinfile "gdm:" /mnt/etc/passwd || echo "gdm:x:50:15:Gnome Display Manager \ -Daemon:/var/lib/gdm:/bin/false" >>/mnt/etc/passwd -# hack - gdm should be user 50 and shadow group 15 -chown 50:15 /mnt/var/lib/gdm -chmod 0750 /mnt/var/lib/gdm -xdmcp_hosts=`echo $x_display_manager|sed -e "s; ;,;"` -if [ "${DEBUGLEVEL}" -gt 0 ] ; then - debug="true" -else - debug="false" -fi -echo -e "# /etc/opt/gnome/gdm/gdm.conf - file generated by $0\n\ -[daemon] -AutomaticLoginEnable=false -TimedLoginEnable=false -#AlwaysRestartServer=false -Chooser=/opt/gnome/lib/gdm/gdmchooser -Greeter=/opt/gnome/lib/gdm/gdmgreeter -RemoteGreeter=/opt/gnome/lib/gdm/gdmgreeter -DefaultPath=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/bin:\ -/opt/gnome/bin:/opt/kde3/bin:/opt/kde/bin:/usr/openwin/bin -RootPath=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/local/bin:/usr/bin:\ -/usr/X11R6/bin:/bin:/usr/games:/opt/bin:/opt/gnome/bin:/opt/kde3/bin:\ -/opt/kde/bin:/usr/openwin/bin:/opt/cross/bin -User=gdm -Group=shadow -#KillInitClients=true -LogDir=/var/lib/gdm -ServAuthDir=/var/lib/gdm -PostLoginScriptDir=/etc/opt/gnome/gdm/PostLogin/ -PreSessionScriptDir=/etc/opt/gnome/gdm/PreSession/ -PostSessionScriptDir=/etc/opt/gnome/gdm/PostSession/ -DisplayInitDir=/etc/opt/gnome/gdm/Init -XKeepsCrashing=/etc/opt/gnome/gdm/XKeepsCrashing -RebootCommand=/sbin/shutdown -r now -HaltCommand=/sbin/shutdown -h now -SuspendCommand=/usr/bin/powersave --suspend-to-disk -BaseXsession=/etc/opt/gnome/gdm/Xsession -SessionDesktopDir=/usr/share/xsessions/:/etc/X11/sessions/:\ -/etc/opt/gnome/dm/Sessions/:/opt/gnome/share/gdm/BuiltInSessions/ -BaseXsession=/etc/opt/gnome/gdm/Xsession -SessionDesktopDir=/usr/share/xsessions/:/etc/opt/gnome/dm/Sessions/:\ -/opt/gnome/share/gdm/BuiltInSessions/ -UserAuthFBDir=/tmp -UserAuthFile=.Xauthority -StandardXServer=/usr/X11R6/bin/X -Xnest=/usr/X11R6/bin/Xnest -audit 0 -name Xnest - -[security] -AllowRoot=true -AllowRemoteRoot=true -AllowRemoteAutoLogin=false -CheckDirOwner=true -#UserMaxFile=65536 -RetryDelay=1 -#SessionMaxFile=524388 -NeverPlaceCookiesOnNFS=true - -[xdmcp] -Enable=$xdmcp -HonorIndirect=true -MaxPending=4 -MaxPendingIndirect=4 -MaxSessions=10 -MaxWait=15 -MaxWaitIndirect=15 -DisplaysPerHost=2 -Willing=/etc/X11/xdm/Xwilling - -[gui] -#MaxIconWidth=128 -#MaxIconWidth=128 - -[greeter] -Browser=false -#TitleBar=true -MinimalUID=500 -Quiver=true -Welcome=Welcome to %n -LockPosition=true -BackgroundImage=0 -BackgroundColor=#000000 -ShowGnomeFailsafeSession=false -ShowXtermFailsafeSession=false -ShowLastSession=false -Use24Clock=true -GraphicalTheme=GDM-SuSE -GraphicalTheme=circles -GraphicalThemeDir=/opt/gnome/share/gdm/themes/ -GraphicalThemeRand=false -#SystemMenu=true -InfoMsgFile=/opt/gnome/share/gdm/UserInfo -InfoMsgFont=monospace 10 -SoundOnLogin=false -[chooser] -HostImageDir=/opt/gnome/share/hosts/ -Broadcast=false -Multicast=false -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 \ -$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\ -[server-Standard]\nname=Standard server\ncommand=/usr/X11R6/bin/X\n\ -flexible=true\nhandled=true" >>/mnt/etc/opt/gnome/gdm/gdm.conf -fi -} - -# configure gdm as display manager -config_kdm () { -config_dm_entry yes - -} - -# consolefont -consolefont () { -echo -e "\tsetfont ${CONSOLE_FONT} >${LOGFILE} 2>&1\n" \ - >>/mnt/etc/${D_INITDIR}/boot.ld -} - -# acpi and powersave -config_acpi () { -local start_acpi=$1 -local stop_acpi=$2 -local start_powersave=`expr $1 + 5` -local stop_powersave=`expr $1 - 1` -rllinker acpid "$start_acpi" "$stop_acpi" -rllinker powersaved "$start_powersave" "$stop_powersave" -} - -# configure dbus (inter application communication for kde and gnome), hal -# (hardware abstraction layer - used e.g. by powersaved) and resmgr -# (resource manager - the user gets permissions to devices when loggin on) -config_dreshal () { -local start="$1" -local stop="$2" -if [ "x$start_dreshal" = "xyes" ]; then - if [ -f /mnt/etc/init.d/dbus ] ; then - strinfile "messagebus:" /mnt/etc/passwd || \ - echo "messagebus:x:100:101:User for D-BUS:/var/run/dbus:/bin/false" \ - >> /mnt/etc/passwd - testmkd /mnt/var/run/dbus - # chown 100:101 /mnt/var/run/dbus - rllinker "dbus" "$start" "$stop" - fi - if [ -f /mnt/etc/init.d/resmgr ] ; then - testmkd /mnt/var/run/resmgr/classes - start="0"`expr $start + 1` - stop="0"`expr $start - 1` - rllinker "resmgr" "$start" "$stop" - fi - if [ -f /mnt/etc/init.d/haldaemon ] ; then - strinfile "haldaemon:" /mnt/etc/passwd || \ - echo "haldaemon:x:101:102:User for haldaemon:/var/run/hal:/bin/false" \ - >> /mnt/etc/passwd - start="0"`expr $start + 1` - stop="0"`expr $start - 1` - rllinker "haldaemon" "$start" "$stop" - fi -fi -} - -# initialize boot.ld - skript to be executed during early system startup -# (before most of the normal boot init scripts) -# this script should operate like a normal runlevel script -d_mkbootld () { -case "$1" in - init) - echo -e "#!/bin/sh\n# skeleton of /etc/${D_INITDIR}/boot.ld written \ -from $0" >/mnt/etc/${D_INITDIR}/boot.ld - echo -e '\n. /etc/rc.status\nrc_reset\ncase "$1" in\n start)' \ - >>/mnt/etc/${D_INITDIR}/boot.ld - echo -e '\techo -n "Running post configuration required by initrd"' \ - >>/mnt/etc/${D_INITDIR}/boot.ld - chmod u+x /mnt/etc/${D_INITDIR}/boot.ld - ;; - close) - echo -e "\trc_status -v\n\t;;\n stop)\n\t;;\nesac\nrc_exit" \ - >>/mnt/etc/${D_INITDIR}/boot.ld - - ;; -esac -} diff --git a/initrd/distro-specs/ubuntu/config b/initrd/distro-specs/ubuntu/config deleted file mode 100644 index 05cd51b0..00000000 --- a/initrd/distro-specs/ubuntu/config +++ /dev/null @@ -1,47 +0,0 @@ -# Description: distro specific settings for Debian/Sarge -# -# Author(s): Dirk von Suchodoletz , 16-01-2006 -# Blablub -# -# Copyright: (c) 2003, 2005 - RZ Universitaet Freiburg - -# D_SYSCONFDIR - system wide configuration settings - /etc/sysconfig in SuSE -# and RedHat, /etc/default in Debian and Ubuntu -# D_ETCEXCL - list of files, wildcards to be excluded from /etc when using -# bind mounts -# D_DIRINBINDMNT - lists of directories to be created in bind mounted rw -# part of the client filesystem -# D_RODIRSINRW - ReadOnly Directories in RW part of filesystem to save on -# TempFS usage -# D_DIRINDXS - directories in client filesystem which should be present -# anyhow -# D_BINDMNT - any code which is specific in bind mount environment -# D_RCDIRS - runlevel directories relative to /etc -# D_XF86CONFFILE - name and location of XFree/Xorg config file, e.g. -# /etc/X11/xorg.conf or /etc/X11/XF86config, ... -# D_XFONTPATH - path(es) where X11 fonts are installed (with trailing /*) -# D_DEFAULTCOUNTRY - localization (see common functions) - -D_SYSCONFDIR=/default -D_ETCEXCL="etc/gconf/*\n*.old\n*-\n\ -etc/autoinstall\nlogrotate*\nbootloader\n*~\n\ -pptp.d\nisdn\nyouservers\nhardware/hwcfg*\n\ -X11/xdm/pixmaps\ndhclient.script\n\ -rc2.d/*\nrc5.d/*" -D_BINDMPTS="tmp root home" -D_DIRINBINDMNT="/var/run /var/log /var/tmp" -D_RODIRSINRW="etc/gconf etc/X11/xkb /var/adm /var/lib/texmf /var/lib/gdm" -D_DIRINDXS="/var/X11R6/compose-cache \ -/var/run/sysconfig/tmp /var/adm /var/lib/rpm /var/lib/nobody \ -/var/lib/pam_devperm /var/lib/bluetooth \ -/var/lib/texmf /var/lib/nfs/sm \ -/var/lib/misc /var/lib/acpi /var/spool/cron \ -/var/lock/subsys/sysconfig" -D_BINDMNT="# " -D_INITDIR="/init.d" -D_INITBOOTD="/rcS.d" -D_RCDIRS="/rc0.d /rc1.d /rc2.d /rc3.d /rc4.d /rc5.d /rc6.d" -D_INITSCRIPTS="udev procps.sh bootlogd keymap.sh hwclock.sh sudo" -D_XF86CONFFILE="/etc/X11/xorg.conf" -D_XFONTPATH="/usr/share/fonts/*" -D_DEFAULTCOUNTRY="de" diff --git a/initrd/distro-specs/ubuntu/config-5.10 b/initrd/distro-specs/ubuntu/config-5.10 new file mode 100644 index 00000000..05cd51b0 --- /dev/null +++ b/initrd/distro-specs/ubuntu/config-5.10 @@ -0,0 +1,47 @@ +# Description: distro specific settings for Debian/Sarge +# +# Author(s): Dirk von Suchodoletz , 16-01-2006 +# Blablub +# +# Copyright: (c) 2003, 2005 - RZ Universitaet Freiburg + +# D_SYSCONFDIR - system wide configuration settings - /etc/sysconfig in SuSE +# and RedHat, /etc/default in Debian and Ubuntu +# D_ETCEXCL - list of files, wildcards to be excluded from /etc when using +# bind mounts +# D_DIRINBINDMNT - lists of directories to be created in bind mounted rw +# part of the client filesystem +# D_RODIRSINRW - ReadOnly Directories in RW part of filesystem to save on +# TempFS usage +# D_DIRINDXS - directories in client filesystem which should be present +# anyhow +# D_BINDMNT - any code which is specific in bind mount environment +# D_RCDIRS - runlevel directories relative to /etc +# D_XF86CONFFILE - name and location of XFree/Xorg config file, e.g. +# /etc/X11/xorg.conf or /etc/X11/XF86config, ... +# D_XFONTPATH - path(es) where X11 fonts are installed (with trailing /*) +# D_DEFAULTCOUNTRY - localization (see common functions) + +D_SYSCONFDIR=/default +D_ETCEXCL="etc/gconf/*\n*.old\n*-\n\ +etc/autoinstall\nlogrotate*\nbootloader\n*~\n\ +pptp.d\nisdn\nyouservers\nhardware/hwcfg*\n\ +X11/xdm/pixmaps\ndhclient.script\n\ +rc2.d/*\nrc5.d/*" +D_BINDMPTS="tmp root home" +D_DIRINBINDMNT="/var/run /var/log /var/tmp" +D_RODIRSINRW="etc/gconf etc/X11/xkb /var/adm /var/lib/texmf /var/lib/gdm" +D_DIRINDXS="/var/X11R6/compose-cache \ +/var/run/sysconfig/tmp /var/adm /var/lib/rpm /var/lib/nobody \ +/var/lib/pam_devperm /var/lib/bluetooth \ +/var/lib/texmf /var/lib/nfs/sm \ +/var/lib/misc /var/lib/acpi /var/spool/cron \ +/var/lock/subsys/sysconfig" +D_BINDMNT="# " +D_INITDIR="/init.d" +D_INITBOOTD="/rcS.d" +D_RCDIRS="/rc0.d /rc1.d /rc2.d /rc3.d /rc4.d /rc5.d /rc6.d" +D_INITSCRIPTS="udev procps.sh bootlogd keymap.sh hwclock.sh sudo" +D_XF86CONFFILE="/etc/X11/xorg.conf" +D_XFONTPATH="/usr/share/fonts/*" +D_DEFAULTCOUNTRY="de" diff --git a/initrd/distro-specs/ubuntu/functions-5.10 b/initrd/distro-specs/ubuntu/functions-5.10 new file mode 100644 index 00000000..02d696f1 --- /dev/null +++ b/initrd/distro-specs/ubuntu/functions-5.10 @@ -0,0 +1,224 @@ +# Description: configuration script for SuSE 10.0 to configure +# linux diskless clients (executed within initial +# ramdisk after genconfig) +# +# Author(s): Dirk von Suchodoletz , 20-01-2006 +# Nico Dietrich +# Felix Endres +# +# Copyright: (c) 2006 - RZ Universitaet Freiburg +# +# Version: 0.2.1a + +# distro specific stuff to initialize +preinit () { + echo "dhcp:x:101:">>/etc/group + echo "dhcp:x:101:101::/nonexistent:/bin/false">>/etc/passwd +} + +# linking runlevel scripts +rllinker () { +local script="$1" +local start="$2" +local stop="$3" +# empty runlevel links - decision on running certain services is +# passed via configuration +for i in rc3.d/K$stop$script rc5.d/K$stop$script \ + rc3.d/S$start$script rc5.d/S$start$script ; do + ln -sf ../$script /mnt/etc/init.d/$i + echo "Linked $script" +done +} + +# group of functions for the normal runlevels - first parameter is start +# second stop +# function for ntp configuration +config_ntp () { +local start=$1 +local stop=$2 +if [ -f /mnt/etc/init.d/ntp ] ; then + echo -e "ntp:x:74:65534:NTP daemon:/var/lib/ntp:/bin/false" \ + >>/mnt/etc/passwd + testmkd /mnt/var/lib/ntp/var/run/ntp &>/dev/null + if [ "x$start_ntp" = "xinitial" ] ; then + echo -e "# entry added by $0: $date" \ + >>/mnt/etc/${D_INITDIR}/boot.ld + echo "ntpdate -s -b $ntp_servers >${LOGFILE} 2>&1 &" \ + >>/mnt/etc/${D_INITDIR}/boot.ld + else + rllinker "ntp" "$start" "$stop" + fi +fi +} + +# function for atd +config_atd () { +if [ "x$start_atd" = "xyes" ]; then + rllinker "atd" "$1" "$2" +fi +} + +# function for configuration of cron services +config_cron () { +if [ "x$start_cron" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/cron ] ; then + testmkd /mnt/var/spool/cron/lastrun + testmkd /mnt/var/spool/cron/tabs + echo -e "# /etc/crontab - file generated by $0:\n\ +#\t$date\nSHELL=/bin/sh\nPATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin\ +\nMAILTO=\n-*/15 * * * *\troot\ttest -x /usr/lib/cron/run-crons && \ +/usr/lib/cron/run-crons >/dev/null 2>&1\n" >/mnt/etc/crontab + else + error " The cron start script seems not to be installed, so requesting \ +\n the start of cron services make no sense." nonfatal + fi +fi +} + +# syslog service +config_syslog () { +if [ "x$start_syslog" = "xyes" ] ; then + echo >/dev/null +fi +} + +# secure shell service +config_sshd () { +if [ "x$start_sshd" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/sshd ] ; then + testmkd /mnt/var/lib/sshd; testmkd /mnt/var/lib/empty + rllinker "sshd" "$1" "$2" + fi +fi +} + +# snmp agent for remote monitoring +config_snmp () { +if [ "x$start_snmp" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/snmpd ] ; then + rllinker "snmpd" "$1" "$2" + testmkd /mnt/var/lib/net-snmp >/dev/null 2>&1 + fi + # fixme!! + # write service monitor depending on services started + fi +} + +# x11 stuff +descsession () { +if [ "x$desktop_session" != "x" ] ; then + windowmanagers="$desktop_session" + # write script for desktop-session chooser + if [ "x$vmware" != "xno" ] ; then + debug="" + [ ${DEBUGLEVEL} -gt 0 ] && debug="--debug 1" + 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 \"runvmware \$OPTS $debug\"\n" > /mnt/var/X11R6/bin/desktop-session + chmod a+x /mnt/var/X11R6/bin/desktop-session + addpath="true"; + fi +else + windowmanagers="kde,gnome,icewm,failsafe" +fi +# check if /usr/X11R6/bin is writeable, else use /var/X11R6/bin +if [ -w /mnt/usr/X11R6/bin/WM-Session ] ; then + sesspath="/usr/X11R6/bin" +else + sesspath="/var/X11R6/bin" + addpath="true" +fi + +# create links to desktop-session chooser +[ -f /mnt/usr/bin/X11/wmlist ] && wmlist=`cat /mnt/usr/bin/X11/wmlist` + +for i in `echo $windowmanagers|sed -e "s/,/ /g"` ; do + # beware!! quickhack for VMware sessions + strinstr "$i" "$wmlist" || \ + test -x /mnt/usr/X11R6/bin/$i || \ + echo -e "[Desktop Entry]\nX-SuSE-translate=true\nEncoding=UTF-8\n\ +Type=XSession\nExec=$i\nTryExec=$sesspath/$i\n\ +Name=$i\n" > /mnt/etc/X11/sessions/$i.desktop + # does not work correctly (add /var/X11R6/bin to path!!) + test -x /mnt/usr/X11R6/bin/$i || \ + ln -fs /var/X11R6/bin/desktop-session /mnt/$sesspath/$i +done + +# add special path /var/X11R6/bin to the PATH variable +[ "x$addpath" != "x" ] && \ + echo -e "# added path component by $0: $date\n\ +PATH=\"\$PATH:/var/X11R6/bin\"" >>/mnt/etc/SuSEconfig/profile + +} + +# configure display manager (runlevel links and kind of manager) +config_dm () { + # should be stated that entries were made (fixmee how??) + sed -e "s,DISPLAYMANAGER=.*,DISPLAYMANAGER=\"$start_xdmcp\"," \ + -e "s,.*_XSERVER.*,DISPLAYMANAGER_STARTS_XSERVER=\"$dsx\"," \ + /mnt/etc/sysconfig/displaymanager > /etc/displaymanager + cp /etc/displaymanager /mnt/etc/sysconfig/displaymanager + +# echo -e "#!/bin/sh\n# entry added by $0: $date\n\ +#(sleep 1; /etc/init.d/xdm start) &" >>/mnt/etc/${D_INITDIR}/boot.ld + ln -sf /etc/init.d/xdm /mnt/etc/init.d/rc5.d/S01xdm + ln -sf /etc/init.d/xdm /mnt/etc/init.d/rc5.d/K20xdm +} + +# consolefont +consolefont () { +echo -e "setfont ${CONSOLE_FONT} >${LOGFILE} 2>&1" \ + >>/mnt/etc/${D_INITDIR}/boot.ld +} + +# acpi and powersave +config_acpi () { + echo >/dev/null +} + +# configure xdm as display manager +config_xdm () { + echo >/dev/null +} + +# configure gdm as display manager +config_gdm () { + echo >/dev/null +} + +# configure kdm as display manager +config_kdm () { + echo >/dev/null +} + +# configure hal, dbus, resmgr and services like that +config_dreshal () { +if [ "x$start_dreshal" = "xyes" ]; then + echo >/dev/null +fi +} + +# initialize boot.ld - skript to be executed during early system startup +# (before most of the normal boot init scripts) +# this script should operate like a normal runlevel script (fixme!!) +d_mkbootld () { +case "$1" in + init) + echo -e "#!/bin/sh\n# skeleton of /etc/${D_INITDIR}/boot.ld written \ +from $0" >/mnt/etc/${D_INITDIR}/boot.ld + echo -e '\n\ncase "$1" in\n start)' \ + >>/mnt/etc/${D_INITDIR}/boot.ld + echo -e '\techo -n "Running post configuration required by initrd"' \ + >>/mnt/etc/${D_INITDIR}/boot.ld + chmod u+x /mnt/etc/${D_INITDIR}/boot.ld + ;; + close) + echo -e "\t;;\n stop)\n\t;;\nesac\nexit 0" \ + >>/mnt/etc/${D_INITDIR}/boot.ld + + ;; +esac +} diff --git a/initrd/distro-specs/ubuntu/functions-ubuntu b/initrd/distro-specs/ubuntu/functions-ubuntu deleted file mode 100644 index 02d696f1..00000000 --- a/initrd/distro-specs/ubuntu/functions-ubuntu +++ /dev/null @@ -1,224 +0,0 @@ -# Description: configuration script for SuSE 10.0 to configure -# linux diskless clients (executed within initial -# ramdisk after genconfig) -# -# Author(s): Dirk von Suchodoletz , 20-01-2006 -# Nico Dietrich -# Felix Endres -# -# Copyright: (c) 2006 - RZ Universitaet Freiburg -# -# Version: 0.2.1a - -# distro specific stuff to initialize -preinit () { - echo "dhcp:x:101:">>/etc/group - echo "dhcp:x:101:101::/nonexistent:/bin/false">>/etc/passwd -} - -# linking runlevel scripts -rllinker () { -local script="$1" -local start="$2" -local stop="$3" -# empty runlevel links - decision on running certain services is -# passed via configuration -for i in rc3.d/K$stop$script rc5.d/K$stop$script \ - rc3.d/S$start$script rc5.d/S$start$script ; do - ln -sf ../$script /mnt/etc/init.d/$i - echo "Linked $script" -done -} - -# group of functions for the normal runlevels - first parameter is start -# second stop -# function for ntp configuration -config_ntp () { -local start=$1 -local stop=$2 -if [ -f /mnt/etc/init.d/ntp ] ; then - echo -e "ntp:x:74:65534:NTP daemon:/var/lib/ntp:/bin/false" \ - >>/mnt/etc/passwd - testmkd /mnt/var/lib/ntp/var/run/ntp &>/dev/null - if [ "x$start_ntp" = "xinitial" ] ; then - echo -e "# entry added by $0: $date" \ - >>/mnt/etc/${D_INITDIR}/boot.ld - echo "ntpdate -s -b $ntp_servers >${LOGFILE} 2>&1 &" \ - >>/mnt/etc/${D_INITDIR}/boot.ld - else - rllinker "ntp" "$start" "$stop" - fi -fi -} - -# function for atd -config_atd () { -if [ "x$start_atd" = "xyes" ]; then - rllinker "atd" "$1" "$2" -fi -} - -# function for configuration of cron services -config_cron () { -if [ "x$start_cron" = "xyes" ] ; then - if [ -f /mnt/etc/init.d/cron ] ; then - testmkd /mnt/var/spool/cron/lastrun - testmkd /mnt/var/spool/cron/tabs - echo -e "# /etc/crontab - file generated by $0:\n\ -#\t$date\nSHELL=/bin/sh\nPATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin\ -\nMAILTO=\n-*/15 * * * *\troot\ttest -x /usr/lib/cron/run-crons && \ -/usr/lib/cron/run-crons >/dev/null 2>&1\n" >/mnt/etc/crontab - else - error " The cron start script seems not to be installed, so requesting \ -\n the start of cron services make no sense." nonfatal - fi -fi -} - -# syslog service -config_syslog () { -if [ "x$start_syslog" = "xyes" ] ; then - echo >/dev/null -fi -} - -# secure shell service -config_sshd () { -if [ "x$start_sshd" = "xyes" ] ; then - if [ -f /mnt/etc/init.d/sshd ] ; then - testmkd /mnt/var/lib/sshd; testmkd /mnt/var/lib/empty - rllinker "sshd" "$1" "$2" - fi -fi -} - -# snmp agent for remote monitoring -config_snmp () { -if [ "x$start_snmp" = "xyes" ] ; then - if [ -f /mnt/etc/init.d/snmpd ] ; then - rllinker "snmpd" "$1" "$2" - testmkd /mnt/var/lib/net-snmp >/dev/null 2>&1 - fi - # fixme!! - # write service monitor depending on services started - fi -} - -# x11 stuff -descsession () { -if [ "x$desktop_session" != "x" ] ; then - windowmanagers="$desktop_session" - # write script for desktop-session chooser - if [ "x$vmware" != "xno" ] ; then - debug="" - [ ${DEBUGLEVEL} -gt 0 ] && debug="--debug 1" - 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 \"runvmware \$OPTS $debug\"\n" > /mnt/var/X11R6/bin/desktop-session - chmod a+x /mnt/var/X11R6/bin/desktop-session - addpath="true"; - fi -else - windowmanagers="kde,gnome,icewm,failsafe" -fi -# check if /usr/X11R6/bin is writeable, else use /var/X11R6/bin -if [ -w /mnt/usr/X11R6/bin/WM-Session ] ; then - sesspath="/usr/X11R6/bin" -else - sesspath="/var/X11R6/bin" - addpath="true" -fi - -# create links to desktop-session chooser -[ -f /mnt/usr/bin/X11/wmlist ] && wmlist=`cat /mnt/usr/bin/X11/wmlist` - -for i in `echo $windowmanagers|sed -e "s/,/ /g"` ; do - # beware!! quickhack for VMware sessions - strinstr "$i" "$wmlist" || \ - test -x /mnt/usr/X11R6/bin/$i || \ - echo -e "[Desktop Entry]\nX-SuSE-translate=true\nEncoding=UTF-8\n\ -Type=XSession\nExec=$i\nTryExec=$sesspath/$i\n\ -Name=$i\n" > /mnt/etc/X11/sessions/$i.desktop - # does not work correctly (add /var/X11R6/bin to path!!) - test -x /mnt/usr/X11R6/bin/$i || \ - ln -fs /var/X11R6/bin/desktop-session /mnt/$sesspath/$i -done - -# add special path /var/X11R6/bin to the PATH variable -[ "x$addpath" != "x" ] && \ - echo -e "# added path component by $0: $date\n\ -PATH=\"\$PATH:/var/X11R6/bin\"" >>/mnt/etc/SuSEconfig/profile - -} - -# configure display manager (runlevel links and kind of manager) -config_dm () { - # should be stated that entries were made (fixmee how??) - sed -e "s,DISPLAYMANAGER=.*,DISPLAYMANAGER=\"$start_xdmcp\"," \ - -e "s,.*_XSERVER.*,DISPLAYMANAGER_STARTS_XSERVER=\"$dsx\"," \ - /mnt/etc/sysconfig/displaymanager > /etc/displaymanager - cp /etc/displaymanager /mnt/etc/sysconfig/displaymanager - -# echo -e "#!/bin/sh\n# entry added by $0: $date\n\ -#(sleep 1; /etc/init.d/xdm start) &" >>/mnt/etc/${D_INITDIR}/boot.ld - ln -sf /etc/init.d/xdm /mnt/etc/init.d/rc5.d/S01xdm - ln -sf /etc/init.d/xdm /mnt/etc/init.d/rc5.d/K20xdm -} - -# consolefont -consolefont () { -echo -e "setfont ${CONSOLE_FONT} >${LOGFILE} 2>&1" \ - >>/mnt/etc/${D_INITDIR}/boot.ld -} - -# acpi and powersave -config_acpi () { - echo >/dev/null -} - -# configure xdm as display manager -config_xdm () { - echo >/dev/null -} - -# configure gdm as display manager -config_gdm () { - echo >/dev/null -} - -# configure kdm as display manager -config_kdm () { - echo >/dev/null -} - -# configure hal, dbus, resmgr and services like that -config_dreshal () { -if [ "x$start_dreshal" = "xyes" ]; then - echo >/dev/null -fi -} - -# initialize boot.ld - skript to be executed during early system startup -# (before most of the normal boot init scripts) -# this script should operate like a normal runlevel script (fixme!!) -d_mkbootld () { -case "$1" in - init) - echo -e "#!/bin/sh\n# skeleton of /etc/${D_INITDIR}/boot.ld written \ -from $0" >/mnt/etc/${D_INITDIR}/boot.ld - echo -e '\n\ncase "$1" in\n start)' \ - >>/mnt/etc/${D_INITDIR}/boot.ld - echo -e '\techo -n "Running post configuration required by initrd"' \ - >>/mnt/etc/${D_INITDIR}/boot.ld - chmod u+x /mnt/etc/${D_INITDIR}/boot.ld - ;; - close) - echo -e "\t;;\n stop)\n\t;;\nesac\nexit 0" \ - >>/mnt/etc/${D_INITDIR}/boot.ld - - ;; -esac -} -- cgit v1.2.3-55-g7522