summaryrefslogtreecommitdiffstats
path: root/initrd
diff options
context:
space:
mode:
authorDirk von Suchodoletz2006-06-24 22:20:56 +0200
committerDirk von Suchodoletz2006-06-24 22:20:56 +0200
commita0403a95ef0509aee974dfe50d00ef084b6b315e (patch)
treeffe228ff06ac60ad5bdd9cb44bc2ff3600ba6d66 /initrd
parentUgly bug in ldd prevents in some cases the renaming of the binary. So (diff)
downloadcore-a0403a95ef0509aee974dfe50d00ef084b6b315e.tar.gz
core-a0403a95ef0509aee974dfe50d00ef084b6b315e.tar.xz
core-a0403a95ef0509aee974dfe50d00ef084b6b315e.zip
Massive changes for distro specific configurations (mkdxsinitrd,
distro-specs/*) ... git-svn-id: http://svn.openslx.org/svn/openslx/ld4@249 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'initrd')
-rw-r--r--initrd/distro-specs/debian/config-3.14
-rw-r--r--initrd/distro-specs/debian/config-default50
-rwxr-xr-xinitrd/distro-specs/debian/files-3.1/etc/init.d/boot286
-rwxr-xr-xinitrd/distro-specs/debian/files-3.1/etc/init.d/halt90
-rw-r--r--initrd/distro-specs/debian/functions-3.1268
-rw-r--r--initrd/distro-specs/debian/functions-default270
-rw-r--r--initrd/distro-specs/gentoo/config-2005.130
-rw-r--r--initrd/distro-specs/gentoo/functions-2005.119
-rw-r--r--initrd/distro-specs/suse/config-10.05
-rw-r--r--initrd/distro-specs/suse/config-10.15
-rw-r--r--initrd/distro-specs/suse/config-9.330
-rw-r--r--initrd/distro-specs/suse/config-default53
-rw-r--r--initrd/distro-specs/suse/functions-10.062
-rw-r--r--initrd/distro-specs/suse/functions-10.124
-rw-r--r--initrd/distro-specs/suse/functions-9.3441
-rw-r--r--initrd/distro-specs/suse/functions-default479
-rw-r--r--initrd/distro-specs/ubuntu/config-5.1035
-rw-r--r--initrd/distro-specs/ubuntu/functions-5.10405
-rw-r--r--initrd/distro-specs/ubuntu/functions-6.0614
-rw-r--r--initrd/distro-specs/ubuntu/functions-default390
-rwxr-xr-xinitrd/initrd-stuff/bin/dhcpmkconfig15
-rwxr-xr-xinitrd/initrd-stuff/bin/servconfig60
-rw-r--r--initrd/initrd-stuff/etc/functions41
-rw-r--r--initrd/initrd-stuff/etc/messages3
-rwxr-xr-xinitrd/initrd-stuff/init10
-rwxr-xr-xinitrd/mkdxsinitrd103
26 files changed, 1444 insertions, 1748 deletions
diff --git a/initrd/distro-specs/debian/config-3.1 b/initrd/distro-specs/debian/config-3.1
index 6492ed1c..f6172d6f 100644
--- a/initrd/distro-specs/debian/config-3.1
+++ b/initrd/distro-specs/debian/config-3.1
@@ -1,6 +1,6 @@
# Description: distro specific settings for Debian/Sarge
#
-# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 01-05-2006
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 23-06-2006
# Felix Endres
#
# Copyright: (c) 2003, 2006 - RZ Universitaet Freiburg
@@ -15,7 +15,6 @@
# 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, ...
@@ -39,7 +38,6 @@ D_DIRINDXS="/var/X11R6/compose-cache \
/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"
diff --git a/initrd/distro-specs/debian/config-default b/initrd/distro-specs/debian/config-default
new file mode 100644
index 00000000..55be830a
--- /dev/null
+++ b/initrd/distro-specs/debian/config-default
@@ -0,0 +1,50 @@
+# Description: distro specific general settings for Debian/Sarge
+#
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 23-06-2006
+# Felix Endres
+#
+# Copyright: (c) 2003, 2006 - 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_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_HWMODTOIGNORE - hardware modules which should not tried to load (because
+# already in kernel, nonexistent, ...)
+
+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 /var/lib/gdm"
+D_RODIRSINRW="etc/gconf etc/X11/xkb /var/adm /var/lib/texmf"
+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_INITDIR="/init.d"
+D_INITBOOTD="/rcS.d"
+D_RCDIRS="/rc0.d /rc1.d /rc2.d /rc3.d /rc4.d /rc5.d /rc6.d"
+D_INITDEFAULT="3"
+# fixme: is keymap.sh really needed? Should be handled in a simpler fashion
+# via boot.ld (see hwautocfg)
+D_INITSCRIPTS="mountvirtfs udev procps.sh bootlogd keymap.sh hwclock.sh sudo dbus-1"
+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
deleted file mode 100755
index f975046f..00000000
--- a/initrd/distro-specs/debian/files-3.1/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 <dirk@goe.net>, 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 <ro@suse.de>, 1996-2002
-# Werner Fink <werner@suse.de>, 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
deleted file mode 100755
index 65e5b0ad..00000000
--- a/initrd/distro-specs/debian/files-3.1/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 <dirk@goe.net>, 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
index 878df587..3b884631 100644
--- a/initrd/distro-specs/debian/functions-3.1
+++ b/initrd/distro-specs/debian/functions-3.1
@@ -1,268 +1,12 @@
-# Description: configuration script for Debian 3.1 to configure
-# linux diskless clients (executed within initial
-# ramdisk after genconfig)
+# Description: configuration script for Debian Sarge (3.1) to configure
+# linux diskless clients (executed within initial ramdisk
+# after genconfig)
#
-# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 18-05-2006
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 23-06-2006
# Felix Endres, 30-04-2006
#
# Copyright: (c) 2006 - RZ Universitaet Freiburg
#
-# Version: 0.2.1d
+# Version: 0.3.0a
-# distro specific stuff to initialize
-preinit () {
- echo "Creating dhcp user"
- echo "dhcp:x:101:" >>/etc/group
- echo "dhcp:x:101:101::/nonexistent:/bin/false" >>/etc/passwd
-}
-
-# distro specific function called from servconfig script
-config_distro () {
-# add the halt link to the 0 and 6 runlevel directories
- ln -sf ../init.d/halt /mnt/etc/rc0.d/S90halt
- ln -sf ../init.d/reboot /mnt/etc/rc6.d/S90reboot
-
- # set default runlevel
- sed -e "s/.*initdefault/id:${D_INITDEFAULT}:initdefault/" -i /mnt/etc/inittab
-}
-
-# AUS SuSE-9.3
-# udev/hotplug - auto device discovery service
-# Result: 1 is bad, 0 is good
-udev_hotplug () {
- local result=0
- [ -d /etc/hotplug -a -d /etc/hotplug.d ] || error "$df_errhotpl" nonfatal
- echo "Enabling hotplug/udev"
- #udevstart && result=0
- #udevtrigger && result=0
- udevd --daemon || result=1
- [ ! -e /sbin/udevsend ] && result=1
- echo "/sbin/udevsend/" > /proc/sys/kernel/hotplug
- mkdir -p /dev/.udev/db /dev/.udev/queue
- trigger_device_events
- return $result
-}
-
-# distro specific general function called from servconfig script
-config_distro () {
-# add the halt link to the 0 and 6 runlevel directories
- ln -sf ../halt /mnt/etc/rc0.d/S90halt
- ln -sf ../reboot /mnt/etc/rc6.d/S90reboot
-
- # set default runlevel
- sed -e "s/.*initdefault/id:${D_INITDEFAULT}:initdefault/" -i /mnt/etc/inittab
-}
-
-
-# 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
-# "stop" seems not to be used in Debian!? - It is. Felix
-for i in rc2.d/K$stop$script rc3.d/K$stop$script \
- rc2.d/S$start$script rc3.d/S$start$script ; do
- if ! [ -f /mnt/etc/init.d/$script ]; then
- echo "Target `pwd`../$script does not exist. Skipping links"
- break
- else
- ln -sf ../init.d/$script /mnt/etc/$i
- echo "Linked $script"
- fi
-done
-}
-
-# make a runlevel script
-d_mkrlscript () {
-local switch=$1
-local name=$2
-local info=$3
-}
-
-# group of functions for the normal runlevels - first parameter is start
-# second stop (fixme: is "stop" needed in Debian?? - Yep)
-# function for ntp configuration
-config_ntp () {
-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" "20" "02"
- fi
-fi
-}
-
-# function for atd
-config_atd () {
-if [ "x$start_atd" = "xyes" ]; then
- # fixme!! needed? Fix permissions
- #testmkd /mnt/var/spool/cron/atjobs
- #testmkd /mnt/var/spool/cron/atspool
- #chown /mnt/var/spool/cron/atjobs /mnt/var/spool/cron/atspool
- rllinker "atd" "89" "01"
-fi
-}
-
-# function for configuration of cron services
-config_cron () {
-if [ "x$start_cron" = "xyes" ] ; then
- if [ -f /mnt/etc/init.d/cron ] ; then
- rllinker "cron" "89" "01"
- testmkd /mnt/var/spool/cron/crontabs
- 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 "$df_errcron" nonfatal
- fi
-fi
-}
-
-# syslog service
-config_syslog () {
-if [ "x$start_syslog" = "xyes" ] ; then
- :
-fi
-}
-
-# secure shell service
-config_sshd () {
-if [ "x$start_sshd" = "xyes" ] ; then
- if [ -f /mnt/etc/init.d/ssh ] ; then
- rllinker "sshd" "20" "02"
- 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" "30" "03"
- 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
-# fixme!! add path directly to /etc/profile!?
-#[ "x$addpath" != "x" ] && \
-# echo -e "# added path component by $0: $date\n\
-#PATH=\"\$PATH:/var/X11R6/bin\"" >>/mnt/etc/profile
-}
-
-
-# consolefont and language
-consolefont () {
-echo -e "setfont ${CONSOLE_FONT} >${LOGFILE} 2>&1" \
- >>/mnt/etc/${D_INITDIR}/boot.ld
-# fixme!! check for proper operation
-sed -e "s,LANGUAGE=.*,LANGUAGE=\"${LANG}\" # set within initramfs," \
- -e "s,LANG=.*,LANG=\"${LANG}\" # set within initramfs," \
- -i /mnt/etc/environment
-}
-
-# configure gdm as display manager
-config_gdm () {
- ln -sf ../${D_INITDIR}/gdm /mnt/etc/rc3.d/K20gdm
- echo -e "\t/etc/${D_INITDIR}/gdm start >${LOGFILE} 2>&1\n\
- \t( sleep 120; ln -sf /etc/${D_INITDIR}/gdm /etc/rc3.d/S01gdm \
- >${LOGFILE} 2>&1) &\n" >>/mnt/etc/${D_INITDIR}/boot.ld
- # check for gdm user in passwd and group files
- # fixme!!
-# echo "gdm:x:113:">>/mnt/etc/group
-# echo "gdm:x:106:113:Gnome Display Manager:/var/lib/gdm:/bin/false" \
- >>/mnt/etc/passwd
-}
-
-# configure kdm as display manager
-config_kdm () {
- ln -sf ../${D_INITDIR}/kdm /mnt/etc/rc3.d/K20kdm
- ln -sf ../${D_INITDIR}/kdm /mnt/etc/rc3.d/S20kdm
-}
-
-# configure hal, dbus, resmgr and services like that
-config_dreshal () {
-if [ "x$start_dreshal" = "xyes" ]; then
- :
-fi
-}
-
-
-# fixme!! taken from SuSE10.0 untested here ...
-# prepare virtual machine environment (vmware, vmplayer)
-config_vmware () {
-rllinker "vmware-prep" "22" "02"
-rllinker "vmware" "24" "02"
-# during vmware sessions linux should not handle usb events/devices
-testmkd /mnt/var/X11R6/bin
-echo '#!/bin/sh'>> /mnt/etc/udev/rules.d/01-udev-vm.rules
-echo -e "# Script for blocking linux from handling usb \
-devices\n# during vmware sessions. If you like to remove certain modules \
-add them\n# to the list below - Dirk von Suchodoletz, <dirk@goe.net>\n\
-STATE=1\nps aux|grep -i vmware|grep -v \"grep\" &>/dev/null && { STATE=0; \
-/sbin/rmmod usb-storage &>/tmp/null; }\n\
-[ x$ACTION = xremove ] && { [ $STATE = 0 ] && /sbin/rmmod usb-storage \
-&>/dev/null; }\nexit \$STATE" > /mnt/var/X11R6/bin/vm-udev
-chmod u+x /mnt/var/X11R6/bin/vm-udev
-echo -e "# special entry to block linux from reacting to usb events during \
-running\n# vmware sessions, generated by $0 during initramfs\n# Dirk von \
-Suchodoletz, <dirk@goe.net>\nSUBSYSTEM==\"usb\", ACTION==\"add\", \
-PROGRAM=\"/var/X11R6/bin/vm-udev\", OPTIONS=\"ignore_device\"\n\
-SUBSYSTEM==\"usb\", ACTION==\"remove\", PROGRAM=\"/var/X11R6/bin/vm-udev\"" \
- >> /mnt/etc/udev/rules.d/01-udev-vm.rules
-}
+# nothing changed yet from default
diff --git a/initrd/distro-specs/debian/functions-default b/initrd/distro-specs/debian/functions-default
new file mode 100644
index 00000000..6c21c049
--- /dev/null
+++ b/initrd/distro-specs/debian/functions-default
@@ -0,0 +1,270 @@
+# Description: configuration script for general Debian to configure
+# linux diskless clients (executed within initial
+# ramdisk after genconfig)
+#
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 23-06-2006
+# Felix Endres, 30-04-2006
+#
+# Copyright: (c) 2006 - RZ Universitaet Freiburg
+#
+# Version: 0.3.0a
+
+# empty functions are defined at the beginning of /etc/functions
+
+# distro specific stuff to initialize
+preinit () {
+ echo "Creating dhcp user"
+ echo "dhcp:x:101:" >>/etc/group
+ echo "dhcp:x:101:101::/nonexistent:/bin/false" >>/etc/passwd
+}
+
+# distro specific function called from servconfig script
+config_distro () {
+# add the halt link to the 0 and 6 runlevel directories
+ ln -sf ../init.d/halt /mnt/etc/rc0.d/S90halt
+ ln -sf ../init.d/reboot /mnt/etc/rc6.d/S90reboot
+
+ # set default runlevel
+ sed -e "s/.*initdefault/id:${D_INITDEFAULT}:initdefault/" -i /mnt/etc/inittab
+}
+
+# AUS SuSE-9.3
+# udev/hotplug - auto device discovery service
+# Result: 1 is bad, 0 is good
+udev_hotplug () {
+ local result=0
+ [ -d /etc/hotplug -a -d /etc/hotplug.d ] || error "$df_errhotpl" nonfatal
+ echo "Enabling hotplug/udev"
+ #udevstart && result=0
+ #udevtrigger && result=0
+ udevd --daemon || result=1
+ [ ! -e /sbin/udevsend ] && result=1
+ echo "/sbin/udevsend/" > /proc/sys/kernel/hotplug
+ mkdir -p /dev/.udev/db /dev/.udev/queue
+ trigger_device_events
+ return $result
+}
+
+# distro specific general function called from servconfig script
+config_distro () {
+# add the halt link to the 0 and 6 runlevel directories
+ ln -sf ../halt /mnt/etc/rc0.d/S90halt
+ ln -sf ../reboot /mnt/etc/rc6.d/S90reboot
+
+ # set default runlevel
+ sed -e "s/.*initdefault/id:${D_INITDEFAULT}:initdefault/" -i /mnt/etc/inittab
+}
+
+
+# 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
+# "stop" seems not to be used in Debian!? - It is. Felix
+for i in rc2.d/K$stop$script rc3.d/K$stop$script \
+ rc2.d/S$start$script rc3.d/S$start$script ; do
+ if ! [ -f /mnt/etc/init.d/$script ]; then
+ echo "Target `pwd`../$script does not exist. Skipping links"
+ break
+ else
+ ln -sf ../init.d/$script /mnt/etc/$i
+ echo "Linked $script"
+ fi
+done
+}
+
+# make a runlevel script
+d_mkrlscript () {
+local switch=$1
+local name=$2
+local info=$3
+}
+
+# group of functions for the normal runlevels - first parameter is start
+# second stop (fixme: is "stop" needed in Debian?? - Yep)
+# function for ntp configuration
+config_ntp () {
+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" "20" "02"
+ fi
+fi
+}
+
+# function for atd
+config_atd () {
+if [ "x$start_atd" = "xyes" ]; then
+ # fixme!! needed? Fix permissions
+ #testmkd /mnt/var/spool/cron/atjobs
+ #testmkd /mnt/var/spool/cron/atspool
+ #chown /mnt/var/spool/cron/atjobs /mnt/var/spool/cron/atspool
+ rllinker "atd" "89" "01"
+fi
+}
+
+# function for configuration of cron services
+config_cron () {
+if [ "x$start_cron" = "xyes" ] ; then
+ if [ -f /mnt/etc/init.d/cron ] ; then
+ rllinker "cron" "89" "01"
+ testmkd /mnt/var/spool/cron/crontabs
+ 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 "$df_errcron" nonfatal
+ fi
+fi
+}
+
+# syslog service
+config_syslog () {
+if [ "x$start_syslog" = "xyes" ] ; then
+ :
+fi
+}
+
+# secure shell service
+config_sshd () {
+if [ "x$start_sshd" = "xyes" ] ; then
+ if [ -f /mnt/etc/init.d/ssh ] ; then
+ rllinker "sshd" "20" "02"
+ 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" "30" "03"
+ 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
+# fixme!! add path directly to /etc/profile!?
+#[ "x$addpath" != "x" ] && \
+# echo -e "# added path component by $0: $date\n\
+#PATH=\"\$PATH:/var/X11R6/bin\"" >>/mnt/etc/profile
+}
+
+
+# consolefont and language
+consolefont () {
+echo -e "setfont ${CONSOLE_FONT} >${LOGFILE} 2>&1" \
+ >>/mnt/etc/${D_INITDIR}/boot.ld
+# fixme!! check for proper operation
+sed -e "s,LANGUAGE=.*,LANGUAGE=\"${LANG}\" # set within initramfs," \
+ -e "s,LANG=.*,LANG=\"${LANG}\" # set within initramfs," \
+ -i /mnt/etc/environment
+}
+
+# configure gdm as display manager
+config_gdm () {
+ ln -sf ../${D_INITDIR}/gdm /mnt/etc/rc3.d/K20gdm
+ echo -e "\t/etc/${D_INITDIR}/gdm start >${LOGFILE} 2>&1\n\
+ \t( sleep 120; ln -sf /etc/${D_INITDIR}/gdm /etc/rc3.d/S01gdm \
+ >${LOGFILE} 2>&1) &\n" >>/mnt/etc/${D_INITDIR}/boot.ld
+ # check for gdm user in passwd and group files
+ # fixme!!
+# echo "gdm:x:113:">>/mnt/etc/group
+# echo "gdm:x:106:113:Gnome Display Manager:/var/lib/gdm:/bin/false" \
+ >>/mnt/etc/passwd
+}
+
+# configure kdm as display manager
+config_kdm () {
+ ln -sf ../${D_INITDIR}/kdm /mnt/etc/rc3.d/K20kdm
+ ln -sf ../${D_INITDIR}/kdm /mnt/etc/rc3.d/S20kdm
+}
+
+# configure hal, dbus, resmgr and services like that
+config_dreshal () {
+if [ "x$start_dreshal" = "xyes" ]; then
+ :
+fi
+}
+
+
+# fixme!! taken from SuSE10.0 untested here ...
+# prepare virtual machine environment (vmware, vmplayer)
+config_vmware () {
+rllinker "vmware-prep" "22" "02"
+rllinker "vmware" "24" "02"
+# during vmware sessions linux should not handle usb events/devices
+testmkd /mnt/var/X11R6/bin
+echo '#!/bin/sh'>> /mnt/etc/udev/rules.d/01-udev-vm.rules
+echo -e "# Script for blocking linux from handling usb \
+devices\n# during vmware sessions. If you like to remove certain modules \
+add them\n# to the list below - Dirk von Suchodoletz, <dirk@goe.net>\n\
+STATE=1\nps aux|grep -i vmware|grep -v \"grep\" &>/dev/null && { STATE=0; \
+/sbin/rmmod usb-storage &>/tmp/null; }\n\
+[ x$ACTION = xremove ] && { [ $STATE = 0 ] && /sbin/rmmod usb-storage \
+&>/dev/null; }\nexit \$STATE" > /mnt/var/X11R6/bin/vm-udev
+chmod u+x /mnt/var/X11R6/bin/vm-udev
+echo -e "# special entry to block linux from reacting to usb events during \
+running\n# vmware sessions, generated by $0 during initramfs\n# Dirk von \
+Suchodoletz, <dirk@goe.net>\nSUBSYSTEM==\"usb\", ACTION==\"add\", \
+PROGRAM=\"/var/X11R6/bin/vm-udev\", OPTIONS=\"ignore_device\"\n\
+SUBSYSTEM==\"usb\", ACTION==\"remove\", PROGRAM=\"/var/X11R6/bin/vm-udev\"" \
+ >> /mnt/etc/udev/rules.d/01-udev-vm.rules
+}
diff --git a/initrd/distro-specs/gentoo/config-2005.1 b/initrd/distro-specs/gentoo/config-2005.1
index 2cf9331f..2bae4d17 100644
--- a/initrd/distro-specs/gentoo/config-2005.1
+++ b/initrd/distro-specs/gentoo/config-2005.1
@@ -1,6 +1,6 @@
-# Description: distro specific settings for Gentoo
+# Description: distro specific settings for Gentoo 2005.1
#
-# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 09-04-2006
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 23-06-2006
#
# Copyright: (c) 2005,6 - RZ Universitaet Freiburg
@@ -14,34 +14,10 @@
# 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_HWMODTOIGNORE - hardware modules which should not tried to load (because
# already in kernel, nonexistent, ...)
# D_BOOTLOCAL - script for user specified stuff which should be started
# during client bootup, path and file 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 urandom boot.ld"
-D_XF86CONFFILE="/etc/X11/xorg.conf"
-D_XFONTPATH="/usr/share/fonts/*"
-D_DEFAULTCOUNTRY="de"
-D_BOOTLOCAL="conf.d/local.start" \ No newline at end of file
+# nothing changed yet
diff --git a/initrd/distro-specs/gentoo/functions-2005.1 b/initrd/distro-specs/gentoo/functions-2005.1
index d1b7d3d7..4eae04a3 100644
--- a/initrd/distro-specs/gentoo/functions-2005.1
+++ b/initrd/distro-specs/gentoo/functions-2005.1
@@ -1,8 +1,8 @@
# Description: configuration script for Gentoo V2005.1 to configure
-# linux diskless clients (executed within initial
-# ramdisk after genconfig)
+# linux diskless clients (executed within initial ramdisk
+# after genconfig)
#
-# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 28-05-2006
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 23-06-2006
#
# Copyright: (c) 2006 - RZ Universitaet Freiburg
#
@@ -48,6 +48,17 @@ echo $1 >> /mnt/etc/runlevels/default/.critical
#fi
}
+# setup initial boot scripts (rather strange concept I did not get
+# completely)
+initial_boot () {
+rm /mnt/etc/runlevels/*/.critical 2>/dev/null
+for i in ${D_INITSCRIPTS}; do
+ ln -sf /etc${D_INITDIR}/$i /mnt/etc/${D_INITBOOTD}/$i
+ echo $i >> /mnt/etc/${D_INITBOOTD}/.critical
+ echo $i >> /mnt/etc/runlevels/default/.critical
+done
+}
+
# 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
@@ -76,7 +87,7 @@ esac
# group of functions for the normal runlevels
# function for ntp configuration (unchecked)
config_ntp () {
-if [ -f /mnt/etc/${D_INITDIR}/ntp ] ; then
+if [ -e /mnt/etc/${D_INITDIR}/ntp ] ; then
if ! strinfile "ntp:" /mnt/etc/passwd ; then
echo -e "ntp:x:74:65534:NTP daemon:/var/lib/ntp:/bin/false" \
>>/mnt/etc/passwd
diff --git a/initrd/distro-specs/suse/config-10.0 b/initrd/distro-specs/suse/config-10.0
index f222c866..4cdba28e 100644
--- a/initrd/distro-specs/suse/config-10.0
+++ b/initrd/distro-specs/suse/config-10.0
@@ -1,8 +1,9 @@
# Description: distro specific settings for SuSE 10.0. This file merily
-# contains changes from the SuSE 9.3 base configuration file
+# contains changes from the SuSE base configuration file
+# (suse/config-default)
#
# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 26-01-2006
#
-# Copyright: (c) 2003, 2005 - RZ Universitaet Freiburg
+# Copyright: (c) 2003, 2006 - RZ Universitaet Freiburg
# nothing changed yet
diff --git a/initrd/distro-specs/suse/config-10.1 b/initrd/distro-specs/suse/config-10.1
index bd164489..62ff2db5 100644
--- a/initrd/distro-specs/suse/config-10.1
+++ b/initrd/distro-specs/suse/config-10.1
@@ -1,8 +1,7 @@
# Description: distro specific settings for SuSE 10.1. This configuration
-# is the base for following SuSE versions until the changes
-# within them require a major change
+# might change settings from SuSE default configuration file
#
-# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 23-05-2006
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 23-06-2006
#
# Copyright: (c) 2003, 2006 - RZ Universitaet Freiburg
diff --git a/initrd/distro-specs/suse/config-9.3 b/initrd/distro-specs/suse/config-9.3
index 0301b606..5fb82825 100644
--- a/initrd/distro-specs/suse/config-9.3
+++ b/initrd/distro-specs/suse/config-9.3
@@ -2,7 +2,7 @@
# is the base for following SuSE versions until the changes
# within them require a major change
#
-# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 09-04-2006
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 23-06-2006
#
# Copyright: (c) 2003, 2005 - RZ Universitaet Freiburg
@@ -17,7 +17,6 @@
# 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, ...
@@ -28,29 +27,4 @@
# D_BOOTLOCAL - script for user specified stuff which should be started
# during client bootup, path and file relative to /etc
-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_INITDEFAULT="5"
-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 boot.swap"
-D_XF86CONFFILE="/etc/X11/xorg.conf"
-D_XFONTPATH="/usr/X11R6/lib/X11/fonts/*"
-D_DEFAULTCOUNTRY="de"
-D_HWMODTOIGNORE="i8xx_tco ichxrom snd_atiixp_modem"
-D_BOOTLOCAL="init.d/boot.local"
+# just the default \ No newline at end of file
diff --git a/initrd/distro-specs/suse/config-default b/initrd/distro-specs/suse/config-default
new file mode 100644
index 00000000..495ca0f6
--- /dev/null
+++ b/initrd/distro-specs/suse/config-default
@@ -0,0 +1,53 @@
+# Description: distro specific settings for general SuSE. This configuration
+# is the base for following SuSE versions
+#
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 23-06-2006
+#
+# Copyright: (c) 2003, 2006 - 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_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_HWMODTOIGNORE - hardware modules which should not tried to load (because
+# already in kernel, nonexistent, ...)
+# D_BOOTLOCAL - script for user specified stuff which should be started
+# during client bootup, path and file relative to /etc
+
+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_INITDIR="/init.d"
+D_INITBOOTD="${D_INITDIR}/boot.d"
+D_INITDEFAULT="5"
+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 boot.swap"
+D_XF86CONFFILE="/etc/X11/xorg.conf"
+D_XFONTPATH="/usr/X11R6/lib/X11/fonts/*"
+D_DEFAULTCOUNTRY="de"
+D_HWMODTOIGNORE="i8xx_tco ichxrom snd_atiixp_modem"
+D_BOOTLOCAL="init.d/boot.local"
diff --git a/initrd/distro-specs/suse/functions-10.0 b/initrd/distro-specs/suse/functions-10.0
index ed41d1f7..06887d7e 100644
--- a/initrd/distro-specs/suse/functions-10.0
+++ b/initrd/distro-specs/suse/functions-10.0
@@ -1,18 +1,13 @@
# Description: configuration functions for SuSE 10.0 which differ from
-# functions defined for SuSE 9.3 which is base ... General
-# changes should be done there, version specific changes for
-# the 10.0 here.
+# functions defined in general SuSE base settings ... General
+# changes should be done there, version specific changes for
+# the 10.0 here.
#
-# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 24-05-2006
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 24-06-2006
#
# Copyright: (c) 2006 - RZ Universitaet Freiburg
#
-# Version: 0.2.1f
-
-# empty preinit to overwrite settings from the 9.3 file
-postinit () {
-:
-}
+# Version: 0.3.0a
# udev service
udev_hotplug () {
@@ -24,60 +19,17 @@ if [ -x /bin/udevd ] ; then
export UDEVD_EVENT_TIMEOUT=1
echo "" > /proc/sys/kernel/hotplug
udevd --daemon || result=1
-else error " udev daemon is not available. Some devices might not \
-apprear." nonfatal
+else error "$df_errudev" nonfatal
fi
return $result
}
-# acpi and powersave have changed
+# acpi and powersave
config_acpi () {
rllinker acpid "10" "12"
rllinker powersaved "11" "11"
}
-# 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)
-# runlevel script for haldaemon is now haldaemon instead of hal
-config_dreshal () {
-local start="05"
-local stop="18"
-if [ "x$start_dreshal" = "xyes" ]; then
- if [ -f /mnt/etc/${D_INITDIR}/dbus ] ; then
- strinfile "messagebus:" /mnt/etc/passwd || \
- echo "messagebus:x:100:101:User for D-BUS:/var/run/dbus:/bin/false" \
- >> /mnt/etc/passwd
- strinfile "messagebus:" /mnt/etc/group || \
- echo "messagebus:!:101:" >> /mnt/etc/group
- testmkd /mnt/var/run/dbus
- # set permissions with userid
- echo -e "\tchown messagebus:messagebus /var/run/dbus 2>/dev/null" \
- >>/mnt/etc/${D_INITDIR}/boot.ld
- rllinker "dbus" "$start" "$stop"
- fi
- if [ -f /mnt/etc/${D_INITDIR}/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/${D_INITDIR}/haldaemon ] ; then
- strinfile "haldaemon:" /mnt/etc/passwd || \
- echo "haldaemon:x:105:103:User for haldaemon:/var/run/hal:/bin/false" \
- >> /mnt/etc/passwd
- strinfile "haldaemon:" /mnt/etc/group || \
- echo "haldaemon:!:103:" >> /mnt/etc/group
- testmkd /mnt/var/run/hal
- # set permissions with userid
- echo -e "\tchown haldaemon:haldaemon /var/run/hal 2>/dev/null" \
- >>/mnt/etc/${D_INITDIR}/boot.ld
- start="0"`expr $start + 1`
- stop="0"`expr $start - 1`
- rllinker "haldaemon" "$start" "$stop"
- fi
-fi
-}
# prepare virtual machine environment (vmware, vmplayer)
config_vmware () {
rllinker "vmware-prep" "18" "02"
diff --git a/initrd/distro-specs/suse/functions-10.1 b/initrd/distro-specs/suse/functions-10.1
index a9175295..9e8dc758 100644
--- a/initrd/distro-specs/suse/functions-10.1
+++ b/initrd/distro-specs/suse/functions-10.1
@@ -1,16 +1,18 @@
# Description: configuration functions for SuSE 10.1 which differ from
-# functions defined for SuSE 9.3 and 10.0 which are base ...
-# General changes should be done there, version specific
-# changes for the 10.1 here.
+# functions defined in general SuSE base definitions ...
+# General changes should be done there, version specific
+# changes for the 10.1 here.
#
-# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 20-05-2006
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 23-06-2006
#
# Copyright: (c) 2006 - RZ Universitaet Freiburg
#
-# Version: 0.2.1e
+# Version: 0.3.0a
-# distro specific stuff to initialize
+# some specific stuff to initialize
preinit () {
+# fake the existence of some helper binaries (which are not of any use
+# within initialramfs)
for i in usb_id scsi_id vol_id edd_id ata_id path_id hwup ifup ; do
echo -e "#!/bin/sh\n:" >/sbin/$i
done
@@ -26,6 +28,7 @@ chmod u+x /sbin/* /lib/udev/* /usr/sbin/*
udev_hotplug () {
local result=0
echo "Starting udev"
+# might be used if busybox is available
#mknod /dev/console c 5 1
#mknod /dev/null c 1 3
#mknod /dev/kmsg c 1 11
@@ -34,9 +37,14 @@ if [ -x /bin/udevd ] ; then
udevd --daemon || result=1
trigger_device_events
usleep 50
-else error " udev daemon is not available. Some devices might not \
-apprear." nonfatal
+else error "$df_errudev" nonfatal
fi
return $result
}
+# acpi and powersave
+config_acpi () {
+rllinker acpid "10" "12"
+rllinker powersaved "11" "11"
+}
+
diff --git a/initrd/distro-specs/suse/functions-9.3 b/initrd/distro-specs/suse/functions-9.3
index 8eb6b424..44c4e672 100644
--- a/initrd/distro-specs/suse/functions-9.3
+++ b/initrd/distro-specs/suse/functions-9.3
@@ -1,14 +1,14 @@
# Description: configuration script for SuSE 9.3 to configure linux
-# diskless clients (included by init, hwautocfg, servconfig
-# within initial ramdisk after inclusion of the main
-# functions file). This file is the main base for the
-# following SuSE distributions
+# diskless clients (included by init, hwautocfg, servconfig
+# within initial ramdisk after inclusion of the main
+# functions file). This file might overwrite settings from
+# the main base for the several SuSE distro versions
#
-# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 31-05-2006 by mj0
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 23-06-2006
#
# Copyright: (c) 2006 - RZ Universitaet Freiburg
#
-# Version: 0.2.2h
+# Version: 0.3.0a
# distro specific stuff to initialize
postinit () {
@@ -16,29 +16,6 @@ postinit () {
udevstart
}
-# distro specific function called from servconfig script
-config_distro () {
-# enable magic sysrequest for the clients
-echo -e "# /etc/${D_SYSCONFDIR}/sysctl - file modified by $0 version $version"\
- > /mnt/etc/${D_SYSCONFDIR}/sysctl.new
-sed -e "s,ENABLE_SYSRQ=.*,ENABLE_SYSRQ=\"yes\"," \
- /mnt/etc/${D_SYSCONFDIR}/sysctl > /etc/sysctl
-cat /etc/sysctl >> /mnt/etc/${D_SYSCONFDIR}/sysctl
-# add specific path /var/X11R6/bin ...
-echo -e "# stuff generated by $0 (out of InitRD written $date)\n\
-PATH=\"\$PATH:/var/X11R6/bin\"\n\
-test \"\$UID\" -ge 100 && PATH=\"\$PATH:.\"\n\
-QTDIR=/usr/lib/qt3\nexport QTDIR\nno_proxy='localhost'\n\
-export no_proxy" > /mnt/etc/SuSEconfig/profile
-echo -e "DXS VERSION = 4.0a\nINITRAMFS GENERATION DATE = $date" \
- >> /mnt/etc/SuSE-release
-# add the halt link to the 0 and 6 runlevel directories
- ln -sf ../halt /mnt/etc/${D_INITDIR}/rc0.d/S20halt
- ln -sf ../halt /mnt/etc/${D_INITDIR}/rc6.d/S20reboot
-# if YaST2 should be runnable (without much effect anyway) on the client
-testmkd /mnt/var/log/YaST2
-}
-
# udev/hotplug - auto device discovery service
udev_hotplug () {
local result=0
@@ -49,320 +26,6 @@ udevd -d || result=1
return $result
}
-# 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/${D_INITDIR}/$i
-done
-}
-
-# group of functions for the normal runlevels - first parameter is start
-# second stop
-# function for ntp configuration
-config_ntp () {
-if [ -f /mnt/etc/${D_INITDIR}/ntp ] ; then
- if ! strinfile "ntp:" /mnt/etc/passwd ; then
- echo -e "ntp:x:74:65534:NTP daemon:/var/lib/ntp:/bin/false" \
- >>/mnt/etc/passwd
- echo -e "ntp:!:13099:0:99999:7:::" >>/mnt/etc/shadow
- fi
- testmkd /mnt/var/lib/ntp/var/run/ntp &>/dev/null
- if [ "x$start_ntp" = "xinitial" ] ; then
- echo -e "\t# entries added by $0 (InitRamFS from $date)\n\
-\t( ntpdate -s -b $ntp_servers >${LOGFILE} 2>&1 && {\n\t which \
-hwclock &>/dev/null && hwclock -w;} ) &" \
- >>/mnt/etc/${D_INITDIR}/boot.ld
- elif [ "x$start_ntp" = "xyes" ] ; then
- rllinker "ntp" "07" "14"
- fi
-fi
-}
-
-# function for atd
-config_atd () {
-if [ "x$start_atd" = "xyes" ]; then
- rllinker "atd" "14" "04"
-fi
-}
-
-# function for configuration of cron services
-config_cron () {
-if [ "x$start_cron" = "xyes" ] ; then
- if [ -f /mnt/etc/${D_INITDIR}/cron ] ; then
- rllinker "cron" "18" "02"
- 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" >/mnt/etc/crontab
- else
- error "$df_errcron" nonfatal
- fi
-fi
-}
-
-# syslog service
-config_syslog () {
-if [ "x$start_syslog" = "xyes" ] ; then
- if [ -f /mnt/etc/${D_INITDIR}/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.*,,;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 "02" "20"
- else
- error "$df_errsysl" nonfatal
- fi
-fi
-}
-
-# secure shell service
-config_sshd () {
-if [ "x$start_sshd" = "xyes" ] ; then
- if [ -f /mnt/etc/${D_INITDIR}/sshd ] ; then
- testmkd /mnt/var/lib/sshd
- testmkd /mnt/var/lib/empty
- rllinker "sshd" "12" "10"
- else
- error "$df_errsshd" nonfatal
- fi
-fi
-}
-
-# snmp agent for remote monitoring
-config_snmp () {
-if [ "x$start_snmp" = "xyes" ] ; then
- if [ -f /mnt/etc/${D_INITDIR}/snmpd ] ; then
- rllinker "snmpd" "24" "02"
- testmkd /mnt/var/lib/net-snmp >/dev/null 2>&1
- fi
- # fixme!!
- # write service monitor depending on services started
- fi
-}
-
-# configure X display manager (/etc/${D_SYSCONFDIR}/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\"," \
- -i /mnt/etc/${D_SYSCONFDIR}/displaymanager
-# start the display manager as early as possible, but avoid that is
-# started twice during bootup - quickhack ...
-#ln -sf /etc/${D_INITDIR}/xdm /mnt/etc/${D_INITDIR}/rc5.d/S01xdm
-ln -sf ../xdm /mnt/etc/${D_INITDIR}/rc5.d/K20xdm
-echo -e "\t/etc/${D_INITDIR}/xdm start >${LOGFILE} 2>&1\n\
-\t( sleep 120; ln -sf ../xdm /etc/${D_INITDIR}/rc5.d/S01xdm \
->${LOGFILE} 2>&1) &\n" >>/mnt/etc/${D_INITDIR}/boot.ld
-}
-
-# 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
-testmkd /mnt/var/log/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 /mnt/var/log/gdm
-chmod 0750 /mnt/var/lib/gdm /mnt/var/log/gdm
-xdmcp_hosts=`echo $x_display_manager|sed -e "s; ;,;"`
-if [ "${DEBUGLEVEL}" -gt 0 ] ; then
- local debug="true"
-else
- local 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/:\
-$vmsessions
-BaseXsession=/etc/opt/gnome/gdm/Xsession
-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 kdm as display manager
-config_kdm () {
-config_dm_entry yes
-echo -e "# /etc/opt/kde3/share/config/kdm/kdmrc - \
-file generated by\n\
-#\t$0: $date\n\
-[General]\n\
-ConfigVersion=2.3\nStaticServers=:0\nExportList=LANG\n\
-PidFile=/var/run/kdm.pid\nAuthDir=/var/lib/xdm/authdir/authfiles/\n\
-ServerVTs=-7\nConsoleTTYs=tty1,tty2,tty3,tty4,tty5,tty6\n\n\
-[Xdmcp]\n\
-Enable=$xdmcp\nXaccess=/etc/X11/xdm/Xaccess\n\
-Willing=/etc/X11/xdm/Xwilling\n[Shutdown]\nHaltCmd=/sbin/halt\n\
-RebootCmd=/sbin/reboot\n\n\
-[X-*-Core]\n\
-ServerCmd=/usr/X11R6/bin/X -br\n\
-ServerArgsLocal=-nolisten tcp\n\
-TerminateServer=true\n\
-Resources=/etc/X11/xdm/Xresources\nSetup=/etc/X11/xdm/Xsetup\n\
-UserPath=/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/var/X11R6/bin
-SystemPath=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:\
-/usr/X11R6/bin:/var/X11R6/bin
-Startup=/etc/X11/xdm/Xstartup\nReset=/etc/X11/xdm/Xreset\n\
-Session=/etc/X11/xdm/Xsession\nClientLogFile=.xsession-errors-%s\n\
-AutoReLogin=false\nAllowRootLogin=true\n\
-AllowNullPasswd=true\nAllowShutdown=All\n\
-SessionsDirs=/etc/X11/sessions,/usr/share/xsessions,\
-/opt/kde3/share/apps/kdm/sessions,$vmsessions\n\
-AuthNames=XDM-AUTHORIZATION-1,MIT-MAGIC-COOKIE-1\n\n\
-[X-*-Greeter]\n\
-ShowUsers=Selected\nSelectedUsers=\nUserList=false\n\
-GUIStyle=default\nLogoArea=Clock\nGreetString=Diskless Linux (%h)\n\
-GreetFont=Nimbus Sans l,20,-1,5,48,0,0,0,0,0\n\
-StdFont=Nimbus Sans l,14,-1,5,48,0,0,0,0,0\n\
-FailFont=Nimbus Sans l,14,-1,5,74,0,0,0,0,0\n\
-AntiAliasing=true\nLanguage=$lang\n\
-EchoMode=OneStar\nShowLog=false\n\
-UseTheme=true\nTheme=/opt/kde3/share/apps/kdm/themes/SUSE\n\
-UseBackground=false\n\
-BackgroundCfg=/etc/opt/kde3/share/config/kdm/backgroundrc\n\n\
-[X-:*-Greeter]\n\
-PreselectUser=None\n\
-FocusPasswd=true\nLoginMode=DefaultLocal\n\
-AllowClose=false\nUseAdminSession=true\n\n\
-[X-:0-Core]\n\
-AutoLoginEnable=false\n\
-ClientLogFile=.xsession-errors\n\
-NoPassEnable=false\n\n\
-[X-:0-Greeter]\n\
-LogSource=/dev/xconsole\n\
-UseAdminSession=false" >/mnt/etc/opt/kde3/share/config/kdm/kdmrc
-echo -e "" > /mnt/etc/opt/kde3/share/config/kdm/backgroundrc
-}
-
-# configure bluetooth services
-config_bt () {
-echo -e "# /etc/${D_SYSCONFDIR}/bluetooth - file modified by $0"\
- > /etc/bluetooth
-sed -e "s,START_SERVICES.*,START_SERVICES=\"yes\"," \
- /mnt/etc/${D_SYSCONFDIR}/bluetooth >> /etc/bluetooth
-cp /etc/bluetooth /mnt/etc/${D_SYSCONFDIR}/bluetooth
-}
-
-# consolefont and language
-consolefont () {
-echo -e "\tsetfont ${CONSOLE_FONT} >${LOGFILE} 2>&1\n" \
- >>/mnt/etc/${D_INITDIR}/boot.ld
-sed -e "s,RC_LANG=.*,RC_LANG=\"${LANG}\" # added in initrd," \
- -i /mnt/etc/${D_SYSCONFDIR}/language
-}
-
# acpi and powersave
config_acpi () {
rllinker powersaved "10" "12"
@@ -375,7 +38,7 @@ config_dreshal () {
local start="05"
local stop="18"
if [ "x$start_dreshal" = "xyes" ]; then
- if [ -f /mnt/etc/${D_INITDIR}/dbus ] ; then
+ if [ -e /mnt/etc/${D_INITDIR}/dbus ] ; then
strinfile "messagebus:" /mnt/etc/passwd || \
echo "messagebus:x:100:101:User for D-BUS:/var/run/dbus:/bin/false" \
>> /mnt/etc/passwd
@@ -387,13 +50,13 @@ if [ "x$start_dreshal" = "xyes" ]; then
>>/mnt/etc/${D_INITDIR}/boot.ld
rllinker "dbus" "$start" "$stop"
fi
- if [ -f /mnt/etc/${D_INITDIR}/resmgr ] ; then
+ if [ -e /mnt/etc/${D_INITDIR}/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/${D_INITDIR}/hal ] ; then
+ if [ -e /mnt/etc/${D_INITDIR}/hal ] ; then
strinfile "haldaemon:" /mnt/etc/passwd || \
echo "haldaemon:x:105:103:User for haldaemon:/var/run/hal:/bin/false" \
>> /mnt/etc/passwd
@@ -409,89 +72,3 @@ if [ "x$start_dreshal" = "xyes" ]; then
fi
fi
}
-
-# configure automounter
-config_automount () {
-if [ -f /mnt/etc/${D_SYSCONFDIR}/autofs ] ; then
- testmkd /var/lock/subsys
- echo -e "# /etc/${D_SYSCONFDIR}/autofs - file modified by\n#\t$0:\n#" \
- > /etc/autofs
- sed -e "s,AUTOFS_OPTIONS.*,AUTOFS_OPTIONS=\"--timeout 3\"," \
- /mnt/etc/${D_SYSCONFDIR}/autofs >> /etc/autofs
- cp /etc/autofs /mnt/etc/${D_SYSCONFDIR}/autofs
- rllinker "autofs" "18" "04"
-else
- error "$df_erramt" nonfatal
-fi
-}
-# start name service caching daemon
-config_nscd () {
-if [ -f /mnt/etc/${D_INITDIR}/nscd ] ; then
- testmkd /mnt/var/run/nscd
- rllinker "nscd" "02" "16"
-else
- error "$df_errnsc" nonfatal
-fi
-}
-
-# start portmapper (needed at least for nfs and nis services)
-config_portmap () {
-rllinker "portmap" "02" "20"
-}
-
-# start NIS
-config_nis () {
-if [ -f /mnt/etc/${D_INITDIR}/ypbind ] ; then
- rllinker "ypbind" "06" "16"
-else
- error "$df_erryp" nonfatal
-fi
-}
-
-# start vmware
-config_vmware () {
-if [ -f /mnt/etc/${D_SYSCONFDIR}/vmware ] ; then
- rllinker "vmware-prep" "18" "02"
- rllinker "vmware" "20" "02"
- # if running start scripts in parallel vmware-prep is not recognized
- # first solution: just avoid running in parallel
- #sed 's/PARALLEL=.*/PARALLEL=no/' /mnt/etc/${D_SYSCONFDIR}/boot \
- # > /tmp/boot
- #cp /tmp/boot /mnt/etc/${D_SYSCONFDIR}/boot
- # second solution: vmware-prep script should be added to .depends.start
- sed -e "s,TARGETS =,TARGETS = vmware-prep," \
- /mnt/etc/${D_INITDIR}/.depend.start >> /etc/.depend.start
- echo "vmware-prep: " >> /etc/.depend.start
- cp /etc/.depend.start /mnt/etc/${D_INITDIR}/.depend.start
- # this line should be added to /etc/hotplug.d/usb/50-usb.hotplug
- # to block linux from handling usb events during vmware sessions
- sed -e '/USB-specific/{;i\' \
- -e 'ps aux |grep -i vmware| grep -v "grep" &>/dev/null && exit 0' \
- -e ' }' -i /mnt/etc/hotplug.d/usb/50-usb.hotplug
-else
- error "df_errvmw" nonfatal
-fi
-}
-
-# initialize runlevel skript to be executed during system startup
-# (before most of the normal boot init scripts)
-# this script should operate like a normal runlevel script
-d_mkrlscript () {
-local switch="$1"
-local name="$2"
-local info="$3"
-case "$1" in
- init)
- echo -e "#!/bin/sh\n# skeleton of /etc/${D_INITDIR}/$name created \
-by $0\n# after you applied changes to the creation scripts you have to \
-rerun\n# the mkdxsinitrd script to get them applied\n\
-. /etc/rc.status\n. /etc/${D_SYSCONFDIR}/logfile\nrc_reset\ncase \
-\"\$1\" in\n start)\n\techo -n \"$info\"" >>/mnt/etc/${D_INITDIR}/$name
- chmod u+x /mnt/etc/${D_INITDIR}/$name
- ;;
- close)
- echo -e "\trc_status -v\n\t;;\n stop)\n\t;;\nesac\nrc_exit" \
- >>/mnt/etc/${D_INITDIR}/$name
- ;;
-esac
-}
diff --git a/initrd/distro-specs/suse/functions-default b/initrd/distro-specs/suse/functions-default
new file mode 100644
index 00000000..958647d8
--- /dev/null
+++ b/initrd/distro-specs/suse/functions-default
@@ -0,0 +1,479 @@
+# Description: configuration script for general SuSE to configure linux
+# diskless clients (included by init, hwautocfg, servconfig
+# within initial ramdisk after inclusion of the main
+# functions file). This file is the main base for the several
+# SuSE distro versions
+#
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 23-06-2006
+#
+# Copyright: (c) 2006 - RZ Universitaet Freiburg
+#
+# Version: 0.3.0a
+
+# empty functions are defined at the beginning of /etc/functions
+
+# distro specific function called from servconfig script
+config_distro () {
+# enable magic sysrequest for the clients
+echo -e "# /etc/${D_SYSCONFDIR}/sysctl - file modified by $0 version $version"\
+ > /mnt/etc/${D_SYSCONFDIR}/sysctl.new
+sed -e "s,ENABLE_SYSRQ=.*,ENABLE_SYSRQ=\"yes\"," \
+ /mnt/etc/${D_SYSCONFDIR}/sysctl > /etc/sysctl
+cat /etc/sysctl >> /mnt/etc/${D_SYSCONFDIR}/sysctl
+# add specific path /var/X11R6/bin ...
+echo -e "# stuff generated by $0 (out of InitRD written $date)\n\
+PATH=\"\$PATH:/var/X11R6/bin\"\n\
+test \"\$UID\" -ge 100 && PATH=\"\$PATH:.\"\n\
+QTDIR=/usr/lib/qt3\nexport QTDIR\nno_proxy='localhost'\n\
+export no_proxy" > /mnt/etc/SuSEconfig/profile
+echo -e "DXS VERSION = 4.0a\nINITRAMFS GENERATION DATE = $date" \
+ >> /mnt/etc/SuSE-release
+# add the halt link to the 0 and 6 runlevel directories
+ ln -sf ../halt /mnt/etc/${D_INITDIR}/rc0.d/S20halt
+ ln -sf ../halt /mnt/etc/${D_INITDIR}/rc6.d/S20reboot
+# if YaST2 should be runnable (without much effect anyway) on the client
+testmkd /mnt/var/log/YaST2
+}
+
+# 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/${D_INITDIR}/$i
+done
+}
+
+# group of functions for the normal runlevels - first parameter is start
+# second stop
+# function for ntp configuration
+config_ntp () {
+if [ -e /mnt/etc/${D_INITDIR}/ntp ] ; then
+ if ! strinfile "ntp:" /mnt/etc/passwd ; then
+ echo -e "ntp:x:74:65534:NTP daemon:/var/lib/ntp:/bin/false" \
+ >>/mnt/etc/passwd
+ echo -e "ntp:!:13099:0:99999:7:::" >>/mnt/etc/shadow
+ fi
+ testmkd /mnt/var/lib/ntp/var/run/ntp &>/dev/null
+ if [ "x$start_ntp" = "xinitial" ] ; then
+ echo -e "\t# entries added by $0 (InitRamFS from $date)\n\
+\t( ntpdate -s -b $ntp_servers >${LOGFILE} 2>&1 && {\n\t which \
+hwclock &>/dev/null && hwclock -w;} ) &" \
+ >>/mnt/etc/${D_INITDIR}/boot.ld
+ elif [ "x$start_ntp" = "xyes" ] ; then
+ rllinker "ntp" "07" "14"
+ fi
+fi
+}
+
+# function for atd
+config_atd () {
+if [ "x$start_atd" = "xyes" ]; then
+ rllinker "atd" "14" "04"
+fi
+}
+
+# function for configuration of cron services
+config_cron () {
+if [ "x$start_cron" = "xyes" ] ; then
+ if [ -f /mnt/etc/${D_INITDIR}/cron ] ; then
+ rllinker "cron" "18" "02"
+ 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" >/mnt/etc/crontab
+ else
+ error "$df_errcron" nonfatal
+ fi
+fi
+}
+
+# syslog service
+config_syslog () {
+if [ "x$start_syslog" = "xyes" ] ; then
+ if [ -f /mnt/etc/${D_INITDIR}/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.*,,;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 "02" "20"
+ else
+ error "$df_errsysl" nonfatal
+ fi
+fi
+}
+
+# secure shell service
+config_sshd () {
+if [ "x$start_sshd" = "xyes" ] ; then
+ if [ -f /mnt/etc/${D_INITDIR}/sshd ] ; then
+ testmkd /mnt/var/lib/sshd
+ testmkd /mnt/var/lib/empty
+ rllinker "sshd" "12" "10"
+ else
+ error "$df_errsshd" nonfatal
+ fi
+fi
+}
+
+# snmp agent for remote monitoring
+config_snmp () {
+if [ "x$start_snmp" = "xyes" ] ; then
+ if [ -f /mnt/etc/${D_INITDIR}/snmpd ] ; then
+ rllinker "snmpd" "24" "02"
+ testmkd /mnt/var/lib/net-snmp >/dev/null 2>&1
+ fi
+ # fixme!!
+ # write service monitor depending on services started
+ fi
+}
+
+# configure X display manager (/etc/${D_SYSCONFDIR}/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\"," \
+ -i /mnt/etc/${D_SYSCONFDIR}/displaymanager
+# start the display manager as early as possible, but avoid that is
+# started twice during bootup - quickhack ...
+#ln -sf /etc/${D_INITDIR}/xdm /mnt/etc/${D_INITDIR}/rc5.d/S01xdm
+ln -sf ../xdm /mnt/etc/${D_INITDIR}/rc5.d/K20xdm
+echo -e "\t/etc/${D_INITDIR}/xdm start >${LOGFILE} 2>&1\n\
+\t( sleep 120; ln -sf ../xdm /etc/${D_INITDIR}/rc5.d/S01xdm \
+>${LOGFILE} 2>&1) &\n" >>/mnt/etc/${D_INITDIR}/boot.ld
+}
+
+# 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
+testmkd /mnt/var/log/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 /mnt/var/log/gdm
+chmod 0750 /mnt/var/lib/gdm /mnt/var/log/gdm
+xdmcp_hosts=`echo $x_display_manager|sed -e "s; ;,;"`
+if [ "${DEBUGLEVEL}" -gt 0 ] ; then
+ local debug="true"
+else
+ local 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/:\
+$vmsessions
+BaseXsession=/etc/opt/gnome/gdm/Xsession
+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 kdm as display manager
+config_kdm () {
+config_dm_entry yes
+echo -e "# /etc/opt/kde3/share/config/kdm/kdmrc - \
+file generated by\n\
+#\t$0: $date\n\
+[General]\n\
+ConfigVersion=2.3\nStaticServers=:0\nExportList=LANG\n\
+PidFile=/var/run/kdm.pid\nAuthDir=/var/lib/xdm/authdir/authfiles/\n\
+ServerVTs=-7\nConsoleTTYs=tty1,tty2,tty3,tty4,tty5,tty6\n\n\
+[Xdmcp]\n\
+Enable=$xdmcp\nXaccess=/etc/X11/xdm/Xaccess\n\
+Willing=/etc/X11/xdm/Xwilling\n[Shutdown]\nHaltCmd=/sbin/halt\n\
+RebootCmd=/sbin/reboot\n\n\
+[X-*-Core]\n\
+ServerCmd=/usr/X11R6/bin/X -br\n\
+ServerArgsLocal=-nolisten tcp\n\
+TerminateServer=true\n\
+Resources=/etc/X11/xdm/Xresources\nSetup=/etc/X11/xdm/Xsetup\n\
+UserPath=/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/var/X11R6/bin
+SystemPath=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:\
+/usr/X11R6/bin:/var/X11R6/bin
+Startup=/etc/X11/xdm/Xstartup\nReset=/etc/X11/xdm/Xreset\n\
+Session=/etc/X11/xdm/Xsession\nClientLogFile=.xsession-errors-%s\n\
+AutoReLogin=false\nAllowRootLogin=true\n\
+AllowNullPasswd=true\nAllowShutdown=All\n\
+SessionsDirs=/etc/X11/sessions,/usr/share/xsessions,\
+/opt/kde3/share/apps/kdm/sessions,$vmsessions\n\
+AuthNames=XDM-AUTHORIZATION-1,MIT-MAGIC-COOKIE-1\n\n\
+[X-*-Greeter]\n\
+ShowUsers=Selected\nSelectedUsers=\nUserList=false\n\
+GUIStyle=default\nLogoArea=Clock\nGreetString=Diskless Linux (%h)\n\
+GreetFont=Nimbus Sans l,20,-1,5,48,0,0,0,0,0\n\
+StdFont=Nimbus Sans l,14,-1,5,48,0,0,0,0,0\n\
+FailFont=Nimbus Sans l,14,-1,5,74,0,0,0,0,0\n\
+AntiAliasing=true\nLanguage=$lang\n\
+EchoMode=OneStar\nShowLog=false\n\
+UseTheme=true\nTheme=/opt/kde3/share/apps/kdm/themes/SUSE\n\
+UseBackground=false\n\
+BackgroundCfg=/etc/opt/kde3/share/config/kdm/backgroundrc\n\n\
+[X-:*-Greeter]\n\
+PreselectUser=None\n\
+FocusPasswd=true\nLoginMode=DefaultLocal\n\
+AllowClose=false\nUseAdminSession=true\n\n\
+[X-:0-Core]\n\
+AutoLoginEnable=false\n\
+ClientLogFile=.xsession-errors\n\
+NoPassEnable=false\n\n\
+[X-:0-Greeter]\n\
+LogSource=/dev/xconsole\n\
+UseAdminSession=false" >/mnt/etc/opt/kde3/share/config/kdm/kdmrc
+echo -e "" > /mnt/etc/opt/kde3/share/config/kdm/backgroundrc
+}
+
+# configure bluetooth services
+config_bt () {
+echo -e "# /etc/${D_SYSCONFDIR}/bluetooth - file modified by $0"\
+ > /etc/bluetooth
+sed -e "s,START_SERVICES.*,START_SERVICES=\"yes\"," \
+ /mnt/etc/${D_SYSCONFDIR}/bluetooth >> /etc/bluetooth
+cp /etc/bluetooth /mnt/etc/${D_SYSCONFDIR}/bluetooth
+}
+
+# consolefont and language
+consolefont () {
+echo -e "\tsetfont ${CONSOLE_FONT} >${LOGFILE} 2>&1\n" \
+ >>/mnt/etc/${D_INITDIR}/boot.ld
+sed -e "s,RC_LANG=.*,RC_LANG=\"${LANG}\" # added in initrd," \
+ -i /mnt/etc/${D_SYSCONFDIR}/language
+}
+
+# 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)
+# runlevel script for haldaemon is now haldaemon instead of hal
+config_dreshal () {
+local start="05"
+local stop="18"
+if [ "x$start_dreshal" = "xyes" ]; then
+ if [ -f /mnt/etc/${D_INITDIR}/dbus ] ; then
+ strinfile "messagebus:" /mnt/etc/passwd || \
+ echo "messagebus:x:100:101:User for D-BUS:/var/run/dbus:/bin/false" \
+ >> /mnt/etc/passwd
+ strinfile "messagebus:" /mnt/etc/group || \
+ echo "messagebus:!:101:" >> /mnt/etc/group
+ testmkd /mnt/var/run/dbus
+ # set permissions with userid
+ echo -e "\tchown messagebus:messagebus /var/run/dbus 2>/dev/null" \
+ >>/mnt/etc/${D_INITDIR}/boot.ld
+ rllinker "dbus" "$start" "$stop"
+ fi
+ if [ -f /mnt/etc/${D_INITDIR}/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/${D_INITDIR}/haldaemon ] ; then
+ strinfile "haldaemon:" /mnt/etc/passwd || \
+ echo "haldaemon:x:105:103:User for haldaemon:/var/run/hal:/bin/false" \
+ >> /mnt/etc/passwd
+ strinfile "haldaemon:" /mnt/etc/group || \
+ echo "haldaemon:!:103:" >> /mnt/etc/group
+ testmkd /mnt/var/run/hal
+ # set permissions with userid
+ echo -e "\tchown haldaemon:haldaemon /var/run/hal 2>/dev/null" \
+ >>/mnt/etc/${D_INITDIR}/boot.ld
+ start="0"`expr $start + 1`
+ stop="0"`expr $start - 1`
+ rllinker "haldaemon" "$start" "$stop"
+ fi
+fi
+}
+
+# configure automounter
+config_automount () {
+if [ -e /mnt/etc/${D_SYSCONFDIR}/autofs ] ; then
+ testmkd /var/lock/subsys
+ echo -e "# /etc/${D_SYSCONFDIR}/autofs - file modified by\n#\t$0:\n#" \
+ > /etc/autofs
+ sed -e "s,AUTOFS_OPTIONS.*,AUTOFS_OPTIONS=\"--timeout 3\"," \
+ /mnt/etc/${D_SYSCONFDIR}/autofs >> /etc/autofs
+ cp /etc/autofs /mnt/etc/${D_SYSCONFDIR}/autofs
+ rllinker "autofs" "18" "04"
+else
+ error "$df_erramt" nonfatal
+fi
+}
+# start name service caching daemon
+config_nscd () {
+if [ -e /mnt/etc/${D_INITDIR}/nscd ] ; then
+ testmkd /mnt/var/run/nscd
+ rllinker "nscd" "02" "16"
+else
+ error "$df_errnsc" nonfatal
+fi
+}
+
+# start portmapper (needed at least for nfs and nis services)
+config_portmap () {
+rllinker "portmap" "02" "20"
+}
+
+# start NIS
+config_nis () {
+if [ -f /mnt/etc/${D_INITDIR}/ypbind ] ; then
+ rllinker "ypbind" "06" "16"
+else
+ error "$df_erryp" nonfatal
+fi
+}
+
+# start vmware
+config_vmware () {
+if [ -f /mnt/etc/${D_SYSCONFDIR}/vmware ] ; then
+ rllinker "vmware-prep" "18" "02"
+ rllinker "vmware" "20" "02"
+ # if running start scripts in parallel vmware-prep is not recognized
+ # first solution: just avoid running in parallel
+ #sed 's/PARALLEL=.*/PARALLEL=no/' /mnt/etc/${D_SYSCONFDIR}/boot \
+ # > /tmp/boot
+ #cp /tmp/boot /mnt/etc/${D_SYSCONFDIR}/boot
+ # second solution: vmware-prep script should be added to .depends.start
+ sed -e "s,TARGETS =,TARGETS = vmware-prep," \
+ /mnt/etc/${D_INITDIR}/.depend.start >> /etc/.depend.start
+ echo "vmware-prep: " >> /etc/.depend.start
+ cp /etc/.depend.start /mnt/etc/${D_INITDIR}/.depend.start
+ # this line should be added to /etc/hotplug.d/usb/50-usb.hotplug
+ # to block linux from handling usb events during vmware sessions
+ sed -e '/USB-specific/{;i\' \
+ -e 'ps aux |grep -i vmware| grep -v "grep" &>/dev/null && exit 0' \
+ -e ' }' -i /mnt/etc/hotplug.d/usb/50-usb.hotplug
+else
+ error "df_errvmw" nonfatal
+fi
+}
+
+# initialize runlevel skript to be executed during system startup
+# (before most of the normal boot init scripts)
+# this script should operate like a normal runlevel script
+d_mkrlscript () {
+local switch="$1"
+local name="$2"
+local info="$3"
+case "$1" in
+ init)
+ echo -e "#!/bin/sh\n# skeleton of /etc/${D_INITDIR}/$name created \
+by $0\n# after you applied changes to the creation scripts you have to \
+rerun\n# the mkdxsinitrd script to get them applied\n\
+. /etc/rc.status\n. /etc/${D_SYSCONFDIR}/logfile\nrc_reset\ncase \
+\"\$1\" in\n start)\n\techo -n \"$info\"" >>/mnt/etc/${D_INITDIR}/$name
+ chmod u+x /mnt/etc/${D_INITDIR}/$name
+ ;;
+ close)
+ echo -e "\trc_status -v\n\t;;\n stop)\n\t;;\nesac\nrc_exit" \
+ >>/mnt/etc/${D_INITDIR}/$name
+ ;;
+esac
+}
diff --git a/initrd/distro-specs/ubuntu/config-5.10 b/initrd/distro-specs/ubuntu/config-5.10
index 08bea552..452489d5 100644
--- a/initrd/distro-specs/ubuntu/config-5.10
+++ b/initrd/distro-specs/ubuntu/config-5.10
@@ -1,9 +1,10 @@
-# Description: distro specific settings for Debian/Sarge
+# Description: distro specific settings for Ubuntu Hoary Hedgehog (5.10)
+# defaults are taken from config-default file
#
-# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 09-04-2006
-# Blablub
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 23-06-2006
+#
+# Copyright: (c) 2003, 2006 - RZ Universitaet Freiburg
#
-# 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
@@ -26,28 +27,4 @@
# D_BOOTLOCAL - script for user specified stuff which should be started
# during client bootup, path and file relative to /etc
-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 /var/lib/gdm"
-D_RODIRSINRW="etc/gconf etc/X11/xkb /var/adm /var/lib/texmf"
-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_INITDEFAULT="3"
-D_INITSCRIPTS="mountvirtfs udev procps.sh bootlogd boot.ld hwclock.sh sudo dbus"
-D_XF86CONFFILE="/etc/X11/xorg.conf"
-D_XFONTPATH="/usr/share/fonts/*"
-D_DEFAULTCOUNTRY="de"
-D_BOOTLOCAL=""
+# no changes from default
diff --git a/initrd/distro-specs/ubuntu/functions-5.10 b/initrd/distro-specs/ubuntu/functions-5.10
index 314e49ef..a72a1321 100644
--- a/initrd/distro-specs/ubuntu/functions-5.10
+++ b/initrd/distro-specs/ubuntu/functions-5.10
@@ -1,403 +1,14 @@
# Description: configuration script for Ubuntu V5.10 to configure
-# linux diskless clients (executed within initial
-# ramdisk after genconfig)
+# linux diskless clients (executed within initial
+# ramdisk after genconfig) - overwrites settings from the
+# ubuntu default file (functions-default)
#
-# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 18-05-2006
-# Nico Dietrich
-# Felix Endres
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 23-06-2006
+# Nico Dietrich
+# Felix Endres
#
# Copyright: (c) 2006 - RZ Universitaet Freiburg
#
-# Version: 0.2.1g
+# Version: 0.3.0a
-# distro specific stuff to initialize
-preinit () {
- echo "Creating dhcp user"
- echo "dhcp:x:101:">>/etc/group
- echo "dhcp:x:101:101::/nonexistent:/bin/false" >>/etc/passwd
-
- # load unix module to provide sockets (is compiled into kernel on
- # the live CDs!?)
- modprobe ${MODPRV} unix || error "$df_errumod" nonfatal
-}
-
-# distro specific function called from servconfig script
-config_distro () {
-# add the halt link to the 0 and 6 runlevel directories
- ln -sf ../init.d/halt /mnt/etc/rc0.d/S90halt
- ln -sf ../init.d/reboot /mnt/etc/rc6.d/S90reboot
-
- # set default runlevel
- sed -e "s/.*initdefault/id:${D_INITDEFAULT}:initdefault/" -i /mnt/etc/inittab
-}
-
-# AUS SuSE-9.3
-# udev/hotplug - auto device discovery service
-udev_hotplug () {
- local result=0
- [ -d /etc/hotplug -a -d /etc/hotplug.d ] || error "$df_errhotpl" nonfatal
- echo "Enabling hotplug/udev"
- udevstart || result=1
- udevd -d || result=1
- return $result
-}
-
-## udev service
-#udev_hotplug () {
-#local result=0
-#echo "Starting udev"
-#udevstart || result=1
-#if [ -x /bin/udevd ] ; then
-# export UDEVD_EXPECTED_SEQNUM=$(cat /sys/kernel/hotplug_seqnum)
-# export UDEVD_EVENT_TIMEOUT=1
-# echo "" > /proc/sys/kernel/hotplug
-# udevd --daemon || result=1
-#else error "df_errudev" nonfatal
-#fi
-#return $result
-#}
-
-# 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 rc2.d/K$stop$script rc3.d/K$stop$script \
- rc2.d/S$start$script rc3.d/S$start$script ; do
- if ! [ -f /mnt/etc/init.d/$script ]; then
- echo "Target `pwd`../$script does not exist. Skipping links"
- break
- else
- ln -sf ../init.d/$script /mnt/etc/$i
- echo "Linked $script"
- fi
-done
-}
-
-# group of functions for the normal runlevels - first parameter is start
-# second stop
-# function for ntp configuration
-config_ntp () {
-local start=07
-local stop=14
-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
- # testmkd /mnt/var/spool/atjobs
- # testmkd /mnt/var/spool/atspool
- # chown 1:1 /mnt/var/spool/atjobs /mnt/var/spool/atspool
- rllinker "atd" "14" "04"
-fi
-}
-
-# function for configuration of cron services
-config_cron () {
-if [ "x$start_cron" = "xyes" ] ; then
- if [ -f /mnt/etc/init.d/cron ] ; then
- rllinker "cron" "18" "02"
- # fixme! check for proper permissions!
- testmkd /mnt/var/spool/crontabs
- 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 "$df_errcron" nonfatal
- fi
-fi
-}
-
-# syslog service
-config_syslog () {
-if [ "x$start_syslog" = "xyes" ] ; then
- echo -e "# /etc/syslog.conf - file generated by $0" >/mnt/etc/syslogd.conf
- echo "kern.warn;*.err;authpriv.none\t/dev/tty10\n\
-#kern.warn;*.err;authpriv.none\t|/dev/xconsole\n\
-#*.emerg\n\n*.=warn;*.=err\t\t\t-/var/log/warn\n\
-#*.crit\t\t\t\t/var/log/warn\n*.*;mail.none;news.none\t\t\
-#-/var/log/messages" >> /mnt/etc/syslogd.conf
-# test -n "$log_servers" && \
-# for logserver in $log_servers; do
-# echo -e "*.*;*.*;*.*;*kern.!*\t@$logserver" >>/mnt/etc/syslog.conf
-# done
- rllinker "sysklogd" "02" "18"
-fi
-}
-
-# secure shell service
-config_sshd () {
-if [ "x$start_sshd" = "xyes" ] ; then
- if [ -f /mnt/etc/init.d/ssh ] ; then
- #testmkd /mnt/var/run/sshd
- rllinker "ssh" "12" "10"
- else
- error "$df_errsshd" nonfatal
- 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" "24" "02"
- testmkd /mnt/var/lib/net-snmp >/dev/null 2>&1
- fi
- # fixme!!
- # write service monitor depending on services started
- fi
-}
-
-# consolefont
-consolefont () {
-echo -e "setfont ${CONSOLE_FONT} >${LOGFILE} 2>&1" \
- >>/mnt/etc/${D_INITDIR}/boot.ld
-}
-"20" "02"
-# acpi and powersave
-config_acpi () {
- rllinker "acpid" "02" "19"
- rllinker "acpi-support" "20" "02"
-}
-
-# configure gdm as display manager
-config_gdm () {
- # start the display manager as early as possible, but avoid that is
- # started twice during bootup - quickhack ...
- #ln -sf /etc/${D_INITDIR}/xdm /mnt/etc/${D_INITDIR}/rc5.d/S01xdm
- ln -sf ../${D_INITDIR}/gdm /mnt/etc/rc3.d/K20gdm
- echo -e "\t/etc/${D_INITDIR}/gdm start >${LOGFILE} 2>&1\n\
- \t( sleep 120; ln -sf /etc/${D_INITDIR}/gdm /etc/rc3.d/S01gdm \
- >${LOGFILE} 2>&1) &\n" >>/mnt/etc/${D_INITDIR}/boot.ld
- # append gdm user
- echo "gdm:x:113:">>/etc/group
- echo "gdm:x:106:113:Gnome Display Manager:/var/lib/gdm:/bin/false" >>/etc/passwd
-
-echo -e "# /etc/gdm/gdm.conf - file generated by $0\n\
-
-[daemon]
-AutomaticLoginEnable=false
-AutomaticLogin=
-TimedLoginEnable=false
-TimedLogin=
-TimedLoginDelay=30
-Greeter=/usr/lib/gdm/gdmgreeter
-DefaultPath=/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11:/usr/games
-RootPath=/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11:/usr/games
-User=gdm
-Group=gdm
-LogDir=/var/log/gdm
-PidFile=/var/run/gdm.pid
-PostLoginScriptDir=/etc/gdm/PostLogin/
-PreSessionScriptDir=/etc/gdm/PreSession/
-PostSessionScriptDir=/etc/gdm/PostSession/
-DisplayInitDir=/etc/gdm/Init
-XKeepsCrashing=/etc/gdm/XKeepsCrashing
-RebootCommand=/sbin/shutdown -r now \"Rebooted from gdm menu.\"
-HaltCommand=/sbin/shutdown -h now \"Halted from gdm menu.\"
-SuspendCommand=/usr/sbin/pmi action sleep
-HibernateCommand=/usr/sbin/pmi action hibernate
-ServAuthDir=/var/lib/gdm
-BaseXsession=/etc/gdm/Xsession
-SessionDesktopDir=/etc/X11/sessions/:/etc/dm/Sessions/:/usr/share/gdm/BuiltInSessions/:/usr/share/xsessions/
-DefaultSession=default.desktop
-UserAuthDir=
-UserAuthFBDir=/tmp
-UserAuthFile=.Xauthority
-StandardXServer=/usr/X11R6/bin/X
-Xnest=/usr/X11R6/bin/Xnest -br -audit 0 -name Xnest
-FirstVT=7
-VTAllocation=true
-SoundProgram=/usr/lib/gdmplay
-[security]
-AllowRoot=false
-AllowRemoteRoot=false
-AllowRemoteAutoLogin=false
-RelaxPermissions=0
-CheckDirOwner=true
-DisallowTCP=true
-[xdmcp]
-Enable=false
-[gui]
-GtkTheme=Human
-AllowGtkThemeChange=true
-GtkThemesToAllow=Human,HighContrast,HighContrastInverse,LowContrast
-[greeter]
-ConfigAvailable=false
-Browser=true
-MinimalUID=1000
-Exclude=bin,daemon,adm,lp,sync,shutdown,halt,mail,news,uucp,operator,nobody,gdm,postgres,pvm,rpm
-IncludeAll=true
-LocaleFile=/etc/gdm/locale.conf
-SystemMenu=true
-SecureSystemMenu=false
-DefaultWelcome=true
-DefaultRemoteWelcome=true
-BackgroundColor=#523921
-UseCirclesInEntry=true
-GraphicalTheme=Human
-GraphicalThemeDir=/usr/share/gdm/themes/
-GraphicalThemeRand=false
-SoundOnLogin=true
-SoundOnLoginFile=/usr/share/sounds/question.wav
-[chooser]
-HostImageDir=/usr/share/hosts/
-Hosts=
-Broadcast=true
-Multicast=false
-[debug]
-Enable=false
-[servers]
-0=Standard
-[server-Standard]
-name=Standard server
-command=/usr/X11R6/bin/X -br -audit 0
-flexible=true
-[server-Terminal]
-name=Terminal server
-command=/usr/X11R6/bin/X -br -audit 0 -terminate
-flexible=false
-handled=false
-[server-Chooser]
-name=Chooser server
-command=/usr/X11R6/bin/X -br -audit 0
-flexible=false
-chooser=true
-
-
-
-[debug]
-Enable=$debug" >/mnt/etc/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 kdm as display manager
-config_kdm () {
- ln -sf ../${D_INITDIR}/kdm /mnt/etc/rc3.d/K20kdm
- echo -e "\t/etc/${D_INITDIR}/kdm start >${LOGFILE} 2>&1\n\
- \t( sleep 120; ln -sf /etc/${D_INITDIR}/kdm /etc/rc3.d/S01kdm \
- >${LOGFILE} 2>&1) &\n" >>/mnt/etc/${D_INITDIR}/boot.ld
-}
-
-# configure hal, dbus, resmgr and services like that
-config_dreshal () {
-if [ "x$start_dreshal" = "xyes" ]; then
- :
-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_mkrlscript () {
-local switch="$1"
-local name="$2"
-local info="$3"
-case "$switch" in
- init)
- echo -e "#!/bin/sh\n# skeleton of /etc/${D_INITDIR}/$name written \
-from $0\n# after you applied changes to the creation scripts you have to \
-rerun\n# the mkdxsinitrd script to get them applied" \
- >/mnt/etc/${D_INITDIR}/$name
- echo -e "\n\ncase \"\$1\" in\n start)\techo -n \"$info\"" \
- >>/mnt/etc/${D_INITDIR}/$name
- chmod u+x /mnt/etc/${D_INITDIR}/$name
- ;;
- close)
- echo -e "\t;;\n stop)\n\t;;\nesac\nexit 0" \
- >>/mnt/etc/${D_INITDIR}/$name
- ;;
-esac
-}
-
-# fixme!! taken from SuSE10.0 untested here ...
-# prepare virtual machine environment (vmware, vmplayer)
-config_vmware () {
-rllinker "vmware-prep" "18" "02"
-rllinker "vmware" "20" "02"
-# during vmware sessions linux should not handle usb events/devices
-testmkd /mnt/var/X11R6/bin
-echo '#!/bin/sh'>> /mnt/etc/udev/rules.d/01-udev-vm.rules
-echo -e "# Script for blocking linux from handling usb \
-devices\n# during vmware sessions. If you like to remove certain modules \
-add them\n# to the list below - Dirk von Suchodoletz, <dirk@goe.net>\n\
-STATE=1\nps aux|grep -i vmware|grep -v \"grep\" &>/dev/null && { STATE=0; \
-/sbin/rmmod usb-storage &>/tmp/null; }\n\
-[ x$ACTION = xremove ] && { [ $STATE = 0 ] && /sbin/rmmod usb-storage \
-&>/dev/null; }\nexit \$STATE" > /mnt/var/X11R6/bin/vm-udev
-chmod u+x /mnt/var/X11R6/bin/vm-udev
-echo -e "# special entry to block linux from reacting to usb events during \
-running\n# vmware sessions, generated by $0 during initramfs\n# Dirk von \
-Suchodoletz, <dirk@goe.net>\nSUBSYSTEM==\"usb\", ACTION==\"add\", \
-PROGRAM=\"/var/X11R6/bin/vm-udev\", OPTIONS=\"ignore_device\"\n\
-SUBSYSTEM==\"usb\", ACTION==\"remove\", PROGRAM=\"/var/X11R6/bin/vm-udev\"" \
- >> /mnt/etc/udev/rules.d/01-udev-vm.rules
-}
-
-# configure automounter
-config_automount () {
-if [ -f /mnt/etc/init.d/autofs ] ; then
- testmkd /var/lock/subsys
- echo -e "# /etc/auto.master - file generated by $0:\n\
-/misc\t/etc/auto.misc" >/mnt/etc/auto.master
- echo -e "# /etc/auto.misc - file generated by $0:\n" \
- > /mnt/etc/auto.misc
- if [ -n "${automnt_src}" ] ; then
- # local directory and home directory server from machine-setup
- [ -z "${automnt_dir}" ] && automnt_dir="/home"
- strinstr "/" "${automnt_dir}" && error "$df_erratpld" nonfatal
- automnt_dir=${automnt_dir#/}
- echo -e "/home\t/etc/auto.${automnt_dir}\n" >> /mnt/etc/auto.master
- echo -e "# /etc/auto.${automnt_dir} created by $0:\n" \
- > /mnt/etc/auto.${automnt_dir}
- echo -e "*\t-rsize=32768,wsize=32768,tcp,rw\t${automnt_src}/&" \
- >> /mnt/etc/auto.${automnt_dir}
- fi
- echo -e "# /etc/sysconfig/autofs - file modified by\n#\t$0:\n#" \
- > /etc/autofs
- sed -e "s,AUTOFS_OPTIONS.*,AUTOFS_OPTIONS=\"--timeout 3\"," \
- /mnt/etc/${D_SYSCONFDIR}/autofs >> /etc/autofs
- cp /etc/autofs /mnt/etc/${D_SYSCONFDIR}/autofs
- config_portmap
- rllinker "autofs" "18" "04"
-fi
-}
-
-# start portmapper (needed at least for nfs and nis services)
-config_portmap () {
- rllinker "portmap" "02" "20"
-}
-
-# start NIS (fixmee - does the service is really named ypbind??)
-config_nis () {
- rllinker "ypbind" "06" "16"
-}
+# nothing changed from default yet
diff --git a/initrd/distro-specs/ubuntu/functions-6.06 b/initrd/distro-specs/ubuntu/functions-6.06
new file mode 100644
index 00000000..f2229f1d
--- /dev/null
+++ b/initrd/distro-specs/ubuntu/functions-6.06
@@ -0,0 +1,14 @@
+# Description: configuration script for Ubuntu V6.06 to configure
+# linux diskless clients (executed within initial
+# ramdisk after genconfig) - overwrites settings from the
+# ubuntu default file (functions-default)
+#
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 23-06-2006
+# Nico Dietrich
+# Felix Endres
+#
+# Copyright: (c) 2006 - RZ Universitaet Freiburg
+#
+# Version: 0.3.0a
+
+# nothing changed from default yet
diff --git a/initrd/distro-specs/ubuntu/functions-default b/initrd/distro-specs/ubuntu/functions-default
new file mode 100644
index 00000000..e1d1c0c7
--- /dev/null
+++ b/initrd/distro-specs/ubuntu/functions-default
@@ -0,0 +1,390 @@
+# Description: configuration script for general Ubuntu to configure
+# linux diskless clients (executed within initial ramdisk
+# after genconfig)
+#
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 23-06-2006
+# Nico Dietrich
+# Felix Endres
+#
+# Copyright: (c) 2006 - RZ Universitaet Freiburg
+#
+# Version: 0.3.0a
+
+# empty functions are defined at the beginning of /etc/functions
+
+# distro specific stuff to initialize
+preinit () {
+ echo "Creating dhcp user"
+ echo "dhcp:x:101:">>/etc/group
+ echo "dhcp:x:101:101::/nonexistent:/bin/false" >>/etc/passwd
+
+ # load unix module to provide sockets (is compiled into kernel on
+ # the live CDs!?)
+ modprobe ${MODPRV} unix || error "$df_errumod" nonfatal
+}
+
+# distro specific function called from servconfig script
+config_distro () {
+# add the halt link to the 0 and 6 runlevel directories
+ ln -sf ../init.d/halt /mnt/etc/rc0.d/S90halt
+ ln -sf ../init.d/reboot /mnt/etc/rc6.d/S90reboot
+
+ # set default runlevel
+ sed -e "s/.*initdefault/id:${D_INITDEFAULT}:initdefault/" -i /mnt/etc/inittab
+}
+
+# AUS SuSE-9.3
+# udev/hotplug - auto device discovery service
+udev_hotplug () {
+ local result=0
+ [ -d /etc/hotplug -a -d /etc/hotplug.d ] || error "$df_errhotpl" nonfatal
+ echo "Enabling hotplug/udev"
+ udevstart || result=1
+ udevd -d || result=1
+ return $result
+}
+
+# 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 rc2.d/K$stop$script rc3.d/K$stop$script \
+ rc2.d/S$start$script rc3.d/S$start$script ; do
+ if ! [ -f /mnt/etc/init.d/$script ]; then
+ echo "Target `pwd`../$script does not exist. Skipping links"
+ break
+ else
+ ln -sf ../init.d/$script /mnt/etc/$i
+ echo "Linked $script"
+ fi
+done
+}
+
+# group of functions for the normal runlevels - first parameter is start
+# second stop
+# function for ntp configuration
+config_ntp () {
+local start=07
+local stop=14
+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
+ # testmkd /mnt/var/spool/atjobs
+ # testmkd /mnt/var/spool/atspool
+ # chown 1:1 /mnt/var/spool/atjobs /mnt/var/spool/atspool
+ rllinker "atd" "14" "04"
+fi
+}
+
+# function for configuration of cron services
+config_cron () {
+if [ "x$start_cron" = "xyes" ] ; then
+ if [ -f /mnt/etc/init.d/cron ] ; then
+ rllinker "cron" "18" "02"
+ # fixme! check for proper permissions!
+ testmkd /mnt/var/spool/crontabs
+ 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 "$df_errcron" nonfatal
+ fi
+fi
+}
+
+# syslog service
+config_syslog () {
+if [ "x$start_syslog" = "xyes" ] ; then
+ echo -e "# /etc/syslog.conf - file generated by $0" >/mnt/etc/syslogd.conf
+ echo "kern.warn;*.err;authpriv.none\t/dev/tty10\n\
+#kern.warn;*.err;authpriv.none\t|/dev/xconsole\n\
+#*.emerg\n\n*.=warn;*.=err\t\t\t-/var/log/warn\n\
+#*.crit\t\t\t\t/var/log/warn\n*.*;mail.none;news.none\t\t\
+#-/var/log/messages" >> /mnt/etc/syslogd.conf
+# test -n "$log_servers" && \
+# for logserver in $log_servers; do
+# echo -e "*.*;*.*;*.*;*kern.!*\t@$logserver" >>/mnt/etc/syslog.conf
+# done
+ rllinker "sysklogd" "02" "18"
+fi
+}
+
+# secure shell service
+config_sshd () {
+if [ "x$start_sshd" = "xyes" ] ; then
+ if [ -f /mnt/etc/init.d/ssh ] ; then
+ #testmkd /mnt/var/run/sshd
+ rllinker "ssh" "12" "10"
+ else
+ error "$df_errsshd" nonfatal
+ 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" "24" "02"
+ testmkd /mnt/var/lib/net-snmp >/dev/null 2>&1
+ fi
+ # fixme!!
+ # write service monitor depending on services started
+ fi
+}
+
+# consolefont
+consolefont () {
+echo -e "setfont ${CONSOLE_FONT} >${LOGFILE} 2>&1" \
+ >>/mnt/etc/${D_INITDIR}/boot.ld
+}
+"20" "02"
+# acpi and powersave
+config_acpi () {
+ rllinker "acpid" "02" "19"
+ rllinker "acpi-support" "20" "02"
+}
+
+# configure gdm as display manager
+config_gdm () {
+ # start the display manager as early as possible, but avoid that is
+ # started twice during bootup - quickhack ...
+ #ln -sf /etc/${D_INITDIR}/xdm /mnt/etc/${D_INITDIR}/rc5.d/S01xdm
+ ln -sf ../${D_INITDIR}/gdm /mnt/etc/rc3.d/K20gdm
+ echo -e "\t/etc/${D_INITDIR}/gdm start >${LOGFILE} 2>&1\n\
+ \t( sleep 120; ln -sf /etc/${D_INITDIR}/gdm /etc/rc3.d/S01gdm \
+ >${LOGFILE} 2>&1) &\n" >>/mnt/etc/${D_INITDIR}/boot.ld
+ # append gdm user
+ echo "gdm:x:113:">>/etc/group
+ echo "gdm:x:106:113:Gnome Display Manager:/var/lib/gdm:/bin/false" >>/etc/passwd
+
+echo -e "# /etc/gdm/gdm.conf - file generated by $0\n\
+
+[daemon]
+AutomaticLoginEnable=false
+AutomaticLogin=
+TimedLoginEnable=false
+TimedLogin=
+TimedLoginDelay=30
+Greeter=/usr/lib/gdm/gdmgreeter
+DefaultPath=/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11:/usr/games
+RootPath=/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11:/usr/games
+User=gdm
+Group=gdm
+LogDir=/var/log/gdm
+PidFile=/var/run/gdm.pid
+PostLoginScriptDir=/etc/gdm/PostLogin/
+PreSessionScriptDir=/etc/gdm/PreSession/
+PostSessionScriptDir=/etc/gdm/PostSession/
+DisplayInitDir=/etc/gdm/Init
+XKeepsCrashing=/etc/gdm/XKeepsCrashing
+RebootCommand=/sbin/shutdown -r now \"Rebooted from gdm menu.\"
+HaltCommand=/sbin/shutdown -h now \"Halted from gdm menu.\"
+SuspendCommand=/usr/sbin/pmi action sleep
+HibernateCommand=/usr/sbin/pmi action hibernate
+ServAuthDir=/var/lib/gdm
+BaseXsession=/etc/gdm/Xsession
+SessionDesktopDir=/etc/X11/sessions/:/etc/dm/Sessions/:/usr/share/gdm/BuiltInSessions/:/usr/share/xsessions/
+DefaultSession=default.desktop
+UserAuthDir=
+UserAuthFBDir=/tmp
+UserAuthFile=.Xauthority
+StandardXServer=/usr/X11R6/bin/X
+Xnest=/usr/X11R6/bin/Xnest -br -audit 0 -name Xnest
+FirstVT=7
+VTAllocation=true
+SoundProgram=/usr/lib/gdmplay
+[security]
+AllowRoot=false
+AllowRemoteRoot=false
+AllowRemoteAutoLogin=false
+RelaxPermissions=0
+CheckDirOwner=true
+DisallowTCP=true
+[xdmcp]
+Enable=false
+[gui]
+GtkTheme=Human
+AllowGtkThemeChange=true
+GtkThemesToAllow=Human,HighContrast,HighContrastInverse,LowContrast
+[greeter]
+ConfigAvailable=false
+Browser=true
+MinimalUID=1000
+Exclude=bin,daemon,adm,lp,sync,shutdown,halt,mail,news,uucp,operator,nobody,gdm,postgres,pvm,rpm
+IncludeAll=true
+LocaleFile=/etc/gdm/locale.conf
+SystemMenu=true
+SecureSystemMenu=false
+DefaultWelcome=true
+DefaultRemoteWelcome=true
+BackgroundColor=#523921
+UseCirclesInEntry=true
+GraphicalTheme=Human
+GraphicalThemeDir=/usr/share/gdm/themes/
+GraphicalThemeRand=false
+SoundOnLogin=true
+SoundOnLoginFile=/usr/share/sounds/question.wav
+[chooser]
+HostImageDir=/usr/share/hosts/
+Hosts=
+Broadcast=true
+Multicast=false
+[debug]
+Enable=false
+[servers]
+0=Standard
+[server-Standard]
+name=Standard server
+command=/usr/X11R6/bin/X -br -audit 0
+flexible=true
+[server-Terminal]
+name=Terminal server
+command=/usr/X11R6/bin/X -br -audit 0 -terminate
+flexible=false
+handled=false
+[server-Chooser]
+name=Chooser server
+command=/usr/X11R6/bin/X -br -audit 0
+flexible=false
+chooser=true
+
+
+
+[debug]
+Enable=$debug" >/mnt/etc/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 kdm as display manager
+config_kdm () {
+ ln -sf ../${D_INITDIR}/kdm /mnt/etc/rc3.d/K20kdm
+ echo -e "\t/etc/${D_INITDIR}/kdm start >${LOGFILE} 2>&1\n\
+ \t( sleep 120; ln -sf /etc/${D_INITDIR}/kdm /etc/rc3.d/S01kdm \
+ >${LOGFILE} 2>&1) &\n" >>/mnt/etc/${D_INITDIR}/boot.ld
+}
+
+# configure hal, dbus, resmgr and services like that
+config_dreshal () {
+if [ "x$start_dreshal" = "xyes" ]; then
+ :
+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_mkrlscript () {
+local switch="$1"
+local name="$2"
+local info="$3"
+case "$switch" in
+ init)
+ echo -e "#!/bin/sh\n# skeleton of /etc/${D_INITDIR}/$name written \
+from $0\n# after you applied changes to the creation scripts you have to \
+rerun\n# the mkdxsinitrd script to get them applied" \
+ >/mnt/etc/${D_INITDIR}/$name
+ echo -e "\n\ncase \"\$1\" in\n start)\techo -n \"$info\"" \
+ >>/mnt/etc/${D_INITDIR}/$name
+ chmod u+x /mnt/etc/${D_INITDIR}/$name
+ ;;
+ close)
+ echo -e "\t;;\n stop)\n\t;;\nesac\nexit 0" \
+ >>/mnt/etc/${D_INITDIR}/$name
+ ;;
+esac
+}
+
+# fixme!! taken from SuSE10.0 untested here ...
+# prepare virtual machine environment (vmware, vmplayer)
+config_vmware () {
+rllinker "vmware-prep" "18" "02"
+rllinker "vmware" "20" "02"
+# during vmware sessions linux should not handle usb events/devices
+testmkd /mnt/var/X11R6/bin
+echo '#!/bin/sh'>> /mnt/etc/udev/rules.d/01-udev-vm.rules
+echo -e "# Script for blocking linux from handling usb \
+devices\n# during vmware sessions. If you like to remove certain modules \
+add them\n# to the list below - Dirk von Suchodoletz, <dirk@goe.net>\n\
+STATE=1\nps aux|grep -i vmware|grep -v \"grep\" &>/dev/null && { STATE=0; \
+/sbin/rmmod usb-storage &>/tmp/null; }\n\
+[ x$ACTION = xremove ] && { [ $STATE = 0 ] && /sbin/rmmod usb-storage \
+&>/dev/null; }\nexit \$STATE" > /mnt/var/X11R6/bin/vm-udev
+chmod u+x /mnt/var/X11R6/bin/vm-udev
+echo -e "# special entry to block linux from reacting to usb events during \
+running\n# vmware sessions, generated by $0 during initramfs\n# Dirk von \
+Suchodoletz, <dirk@goe.net>\nSUBSYSTEM==\"usb\", ACTION==\"add\", \
+PROGRAM=\"/var/X11R6/bin/vm-udev\", OPTIONS=\"ignore_device\"\n\
+SUBSYSTEM==\"usb\", ACTION==\"remove\", PROGRAM=\"/var/X11R6/bin/vm-udev\"" \
+ >> /mnt/etc/udev/rules.d/01-udev-vm.rules
+}
+
+# configure automounter
+config_automount () {
+if [ -f /mnt/etc/init.d/autofs ] ; then
+ testmkd /var/lock/subsys
+ echo -e "# /etc/auto.master - file generated by $0:\n\
+/misc\t/etc/auto.misc" >/mnt/etc/auto.master
+ echo -e "# /etc/auto.misc - file generated by $0:\n" \
+ > /mnt/etc/auto.misc
+ if [ -n "${automnt_src}" ] ; then
+ # local directory and home directory server from machine-setup
+ [ -z "${automnt_dir}" ] && automnt_dir="/home"
+ strinstr "/" "${automnt_dir}" && error "$df_erratpld" nonfatal
+ automnt_dir=${automnt_dir#/}
+ echo -e "/home\t/etc/auto.${automnt_dir}\n" >> /mnt/etc/auto.master
+ echo -e "# /etc/auto.${automnt_dir} created by $0:\n" \
+ > /mnt/etc/auto.${automnt_dir}
+ echo -e "*\t-rsize=32768,wsize=32768,tcp,rw\t${automnt_src}/&" \
+ >> /mnt/etc/auto.${automnt_dir}
+ fi
+ echo -e "# /etc/sysconfig/autofs - file modified by\n#\t$0:\n#" \
+ > /etc/autofs
+ sed -e "s,AUTOFS_OPTIONS.*,AUTOFS_OPTIONS=\"--timeout 3\"," \
+ /mnt/etc/${D_SYSCONFDIR}/autofs >> /etc/autofs
+ cp /etc/autofs /mnt/etc/${D_SYSCONFDIR}/autofs
+ config_portmap
+ rllinker "autofs" "18" "04"
+fi
+}
+
+# start portmapper (needed at least for nfs and nis services)
+config_portmap () {
+ rllinker "portmap" "02" "20"
+}
+
+# start NIS (fixmee - does the service is really named ypbind??)
+config_nis () {
+ rllinker "ypbind" "06" "16"
+}
diff --git a/initrd/initrd-stuff/bin/dhcpmkconfig b/initrd/initrd-stuff/bin/dhcpmkconfig
index 3b4a1f77..394de967 100755
--- a/initrd/initrd-stuff/bin/dhcpmkconfig
+++ b/initrd/initrd-stuff/bin/dhcpmkconfig
@@ -4,13 +4,15 @@
# several dhcp clients. The result is written in unified form
# to the /etc/machine-setup file
#
-# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 22-05-2006
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 23-06-2006
+# Lars Mueller, 23-06-2006
+# Oliver Tappe, 23-06-2006
#
# Copyright: (c) 2006 - RZ Universitaet Freiburg
# client variable should be exported via calling function
echo -e "\n# ip configuration written by $0" \
- >>/etc/machine-setup
+ >>/tmp/confviadhcp
infomsg="# --> You are using $dhcl. With this client you are not \
able to\n# transfer any vendor specific, self defined dhcp options. If \
this is\n# intended, use dhclient instead or get them via tftp (to be \
@@ -27,21 +29,22 @@ case $0 in
-e "s,NETWORK,network," \
-e "s,DHCP..ADDR.*,,;s,.*TIME=.*,,;s,CL.*,,;/^$/d" \
-e "s,INTER.*,,;s,DHCPSNAME.*,," /var/lib/dhcp/dhcpcd-eth0.info \
- >>/etc/machine-setup
+ >>/tmp/confviadhcp
;;
*dhclient*)
echo -e "# --> You are using dhclient. Iy you wish to transfer other \
vendor/user\n# specific variables, you have to add them in functions and \
in\n# dhcpmkconfig script or use tftp (to be enabled via kernel \
-command\n# line)." >>/etc/machine-setup
+command\n# line)." >>/tmp/confviadhcp
set | sed -n -e '/^new/p' | sed \
-e "s,^new_,,;s,fixed_address,clientip," \
-e "s,routers,gateway,;s,dhcp_server_identifier,serverip," \
-e "s,.*_t[iy][mp]e.*,,;s,.*_message_.*,,;/^$/d" \
-e "s,language=,country=,;s,ip_address,clientip," \
- >>/etc/machine-setup
+ >>/tmp/confviadhcp
;;
*pump*)
- dhcl="pump"; echo -e "$infomsg" >>/etc/machine-setup
+ dhcl="pump"; echo -e "$infomsg" >>/tmp/confviadhcp
;;
esac
+
diff --git a/initrd/initrd-stuff/bin/servconfig b/initrd/initrd-stuff/bin/servconfig
index 42b1be77..f27c4055 100755
--- a/initrd/initrd-stuff/bin/servconfig
+++ b/initrd/initrd-stuff/bin/servconfig
@@ -4,8 +4,10 @@
# for linux diskless clients (executed within initial
# ramdisk)
#
-# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 01-06-2006
-# Michael Janczyk, 31-05-2006
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 23-06-2006
+# Michael Janczyk, 31-05-2006
+# Lars Mueller, 23-06-2006
+# Oliver Tappe, 23-06-2006
#
# Copyright: (c) 2006 - RZ Universitaet Freiburg
#
@@ -59,10 +61,14 @@ echo "
# from dhcp, ldap ...
# wait for the appearance of configuration via dhcp
# do not wait if dhcp is not used (how?)
-waitfor /tmp/dhcp-done 10000 || error " Did not get any configuration \
-data via dhcp until now ..." nonfatal
-waitfor /tmp/ldap-done 10000 || error " Did not get any configuration \
-data via dhcp until now ..." nonfatal
+waitfor /tmp/dhcp-done 10000 || error "$scfg_errdcfg" nonfatal
+waitfor /tmp/file-done 10000 || error "$scfg_errfcfg" nonfatal
+waitfor /tmp/ldap-done 10000 || error "$scfg_errlcfg" nonfatal
+# concat the different files now into the central config file, order
+# matters - ldap data has highest priority
+for config in /tmp/confviadhcp /tmp/confviafile /tmp/confvialdap
+ do test -f $config && cat $config >> /etc/machine-setup
+done
. /etc/machine-setup
# hack for replacing variables ($serverip, $clientip, $host_name) in
# machine-setup
@@ -128,47 +134,7 @@ test -n "$domain_name_servers" && {
# initial boot scripts
# delete and create runlevel links for initial booting (SuSE, Debian,
# ...)
-case ${DISTRO} in
- suse*|debian*|ubuntu*)
- for i in ${D_RCDIRS} ${D_INITBOOTD} ; do
- rm -f /mnt/etc/$i/*
- done
- count=10
- # boot.ld is a special runlevel script generated within initial ramdisk
- # which should be executed before the rest
- for i in boot.ld ${D_INITSCRIPTS}; do
- count=`expr $count + 1`
- revcnt=`expr 41 - $count`
- ln -sf /etc${D_INITDIR}/$i /mnt/etc/${D_INITBOOTD}/S${count}$i
- ln -sf /etc${D_INITDIR}/$i /mnt/etc/${D_INITBOOTD}/K${revcnt}$i
- done
- ;;
- gentoo*)
- # rather different runlevel concept
- rm /mnt/etc/runlevels/*/.critical 2>/dev/null
- for i in ${D_INITSCRIPTS}; do
- ln -sf /etc${D_INITDIR}/$i /mnt/etc/${D_INITBOOTD}/$i
- echo $i >> /mnt/etc/${D_INITBOOTD}/.critical
- echo $i >> /mnt/etc/runlevels/default/.critical
- done
-
-# ( for i in /mnt/etc/init.d/*; do
-# strinstr ".sh" "$i" && continue
-# script=${i#/mnt/etc/init.d/*}
-# if ! strinstr "$script " "${D_INITSCRIPTS} " ; then
-# for j in /mnt/etc/init.d/*; do
-# strinstr ".sh" "$j" && continue
-# link=${j#/mnt/etc/init.d/*}
-# if ! strinstr "$script" "$link" ; then
-# sed "/depend/,/}/s/$script //;/depend/,/}/s/$script$//" \
-# /mnt/etc/init.d/$link > /tmp/rlvscript
-# cp /tmp/rlvscript /mnt/etc/init.d/$link
-# fi
-# done
-# fi
-# done ) &
- ;;
-esac
+initial_boot
#######################################################################
#
diff --git a/initrd/initrd-stuff/etc/functions b/initrd/initrd-stuff/etc/functions
index 508fd35e..351a4c6f 100644
--- a/initrd/initrd-stuff/etc/functions
+++ b/initrd/initrd-stuff/etc/functions
@@ -2,7 +2,7 @@
# linux diskless clients (included by init, hwautocfg,
# servconfig, ... within initial ramdisk)
#
-# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 28-05-2006
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 23-06-2006
# Felix Endres, 30-04-2006
# Tobias Maier
#
@@ -27,6 +27,10 @@ postinit () {
config_distro () {
:
}
+# udev/hotplug - auto device discovery service
+udev_hotplug () {
+ :
+}
#######################################################################
@@ -694,27 +698,28 @@ case "$country" in
;;
esac
}
-
-######################### dummy functions
-
-preinit () {
- :
-}
-
-postinit () {
- :
+#######################################################################
+# setup initial boot scripts (for most standard distributions, gentoo
+# is to be handled differently)
+initial_boot () {
+for i in ${D_RCDIRS} ${D_INITBOOTD} ; do
+ rm -f /mnt/etc/$i/*
+done
+count=10
+# boot.ld is a special runlevel script generated within initial ramdisk
+# which should be executed before the rest
+for i in boot.ld ${D_INITSCRIPTS}; do
+ count=`expr $count + 1`
+ revcnt=`expr 41 - $count`
+ ln -sf /etc${D_INITDIR}/$i /mnt/etc/${D_INITBOOTD}/S${count}$i
+ ln -sf /etc${D_INITDIR}/$i /mnt/etc/${D_INITBOOTD}/K${revcnt}$i
+done
}
-# distro specific function called from servconfig script
-config_distro () {
- :
-}
+#######################################################################
+# dummy functions
# AUS SuSE-9.3
-# udev/hotplug - auto device discovery service
-udev_hotplug () {
- :
-}
# linking runlevel scripts
rllinker () {
diff --git a/initrd/initrd-stuff/etc/messages b/initrd/initrd-stuff/etc/messages
index a9f776bc..8e319d19 100644
--- a/initrd/initrd-stuff/etc/messages
+++ b/initrd/initrd-stuff/etc/messages
@@ -132,6 +132,9 @@ df_errnsc=" Name Service caching deamon $df_errserv\n This service might \
be useful to take load from a ldap user directory."
# messages from servconfig
+scfg_errdcfg=" Did not get any configuration data via dhcp until now ..."
+scfg_errfcfg=" Did not get any configuration data via tftp until now ..."
+scfg_errlcfg=" Did not get any configuration data via ldap until now ..."
scfg_nfs=" Mount of some NFS source failed ..."
scfg_vmdir=" For some reason the runvmware script is not available for \
copying. That\n could be the result of failed mount or simply missing \
diff --git a/initrd/initrd-stuff/init b/initrd/initrd-stuff/init
index 3ba3bca4..3a9e4a11 100755
--- a/initrd/initrd-stuff/init
+++ b/initrd/initrd-stuff/init
@@ -44,7 +44,7 @@ exec < /dev/console > /dev/console 2>&1
# run pre init script
preinit
-[ -x /bin/vendor_preinit ] && /bin/vendor_preinit
+[ -x /bin/preinit.local ] && /bin/preinit.local
# start device auto discovery service - distro specific function
udev_hotplug
@@ -90,7 +90,7 @@ in $0\ncountry=\"${COUNTRY}\"" >> /etc/machine-setup
rm /tmp/ldap-done
;;
# ldap configuration with host and port to contact (base)
- ldap*)
+ ldap=*)
LDAP="yes"
rm /tmp/ldap-done
;;
@@ -102,7 +102,7 @@ in $0\ncountry=\"${COUNTRY}\"" >> /etc/machine-setup
rm /tmp/file-done
;;
# file source with tftp server and file location on the server
- file*)
+ file=*)
FILE="yes"
FILESRC=${opts#file=}
rm /tmp/file-done
@@ -120,7 +120,7 @@ in $0\ncountry=\"${COUNTRY}\"" >> /etc/machine-setup
UNIONFS=1;;
# if cowloop should be used, only ontop of network block device and in
# combination with classical fs, like ext2 useful
- cowloop*)
+ cowloop=*)
COWLOOP=1
#COWSIZE=${opts#cowloop=}
;;
@@ -456,7 +456,7 @@ cp /etc/machine-setup /mnt/etc
# post init for some distro specific
postinit
-[ -x /bin/vendor_postinit ] && /bin/vendor_postinit
+[ -x /bin/postinit.local ] && /bin/postinit.local
# start a debug shell in higher debug levels
[ $DEBUGLEVEL -gt 2 ] && /bin/sh
diff --git a/initrd/mkdxsinitrd b/initrd/mkdxsinitrd
index a856e4ab..9e7c0668 100755
--- a/initrd/mkdxsinitrd
+++ b/initrd/mkdxsinitrd
@@ -1,13 +1,13 @@
#!/bin/bash
#
# Description: universal (distro independent) generator for initial
-# ramdisks for linux diskless clients
+# ramdisks for linux diskless clients
#
-# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 22-06-2006
-# Nico Dietrich
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 23-06-2006
+# Nico Dietrich
# Felix Endres
#
-# Version: 0.3.2b
+# Version: 0.4.0a
#
# Copyright: (c) 2003 - 2006 - RZ Universitaet Freiburg
@@ -66,7 +66,7 @@ usage()
echo " gewünscht ist kann diese hier angegeben werden (funktioniert"
echo " natürlich nur für auf dem Hostsystem vorhandene Kernelversion"
echo " nen)."
- echo " -i Pfad"
+ echo " -i path/file"
echo " Optionale Angabe wo die erstellte ramdisk hingeschrieben werden"
echo " soll."
echo " -f Modulliste"
@@ -75,9 +75,9 @@ usage()
echo " -n Modulliste"
echo " Kernelmodule zum Betrieb der Clientnetzwerkkarten (z.B. e100 tg3"
echo " via-rhine)."
- echo " -r Pfad"
+ echo " -r path"
echo " Pfad zum Wurzelverzeichnis des zu exportierenden Betriebsystems"
- echo " (z.B. /nfsroot)."
+ echo " (z.B. /export/10.1)."
echo " -s screensize (for splash)"
echo " -d debug (add special modules to initramfs)"
echo " -D Name"
@@ -148,7 +148,7 @@ else
-e "s,@@@NWMODULES@@@,${NWMODULES},g" \
-e "s,@@@COMDIRINDXS@@@,${COMDIRINDXS},g" \
-e "s,@@@COMETCEXCL@@@,${COMETCEXCL},g" \
- -e "s,@@@DATE@@@,${DATE},g;/^#[^!].*/d" \
+ -e "s,@@@DATE@@@,${DATE},g;/^#[^!].*/d" \
initrd-stuff/${FILENAME} >> ${INSTDIR}/${FILENAME}
fi
fi
@@ -157,35 +157,50 @@ fi
# this function incrementally concats and copies distro-specific functions,
# configuration variables and files
copy_distro_stuff() {
- # first insert dependencies
- case $1 in
- suse)
- case $2 in
- 9.3)
- ;;
- 10.0)
- copy_distro_stuff suse 9.3
- ;;
- 10.1)
- copy_distro_stuff suse 10.0
- ;;
- esac
- ;;
- debian)
- ;;
- ubuntu)
- ;;
- gentoo)
- ;;
- esac
-
- # now insert the current stuff
+# Konzept geaendert!!!
+#Konzept der Konfiguration mittels
+#functions-* und config-* zu veraendert: Es gibt eine Default-Konfig, die
+#dann von der jeweiligen Version angepasst wird - Ketten von sowas wie
+#config-9.3 wird von config-10.0 wird von config-10.1 ueberschrieben usw.
+#soll durch einfaches config-default -> config-9.3, ... -> config-10.0
+#... abgeloest werden. Das erlaubt langfristig auch dafuer zu sorgen, dass
+#im config-def alles Wesentliche bezogen auf die aktuellsten Version drin
+#ist.
+
+# # first insert dependencies
+# case $1 in
+# suse)
+# case $2 in
+# 9.3)
+# ;;
+# 10.0)
+# copy_distro_stuff suse 9.3
+# ;;
+# 10.1)
+# copy_distro_stuff suse 10.0
+# ;;
+# esac
+# ;;
+# debian)
+# ;;
+# ubuntu)
+# ;;
+# gentoo)
+# ;;
+# esac
+
+ # copy first the default distro dependent configuration (variables) and
+ # function files, then append to each the distro/version specific file
+ # variables, functions set in default might that way be overwritten by
+ # definitions in distro/version specific files
+ cat distro-specs/$1/config-default >${INSTDIR}/etc/sysconfig/config
cat distro-specs/$1/config-$2 >>${INSTDIR}/etc/sysconfig/config
+ cat distro-specs/$1/functions-default >${INSTDIR}/etc/distro-functions
cat distro-specs/$1/functions-$2 >>${INSTDIR}/etc/distro-functions
# would be cool not to copy .svn here ...
# fixme!! works only for etc directories. If dir exists then next copy places
# file into the existing dir
- cp -a distro-specs/$1/files-$2 ${INSTDIR}/etc/sysconfig/files 2>/dev/null
+ cp -a distro-specs/$1/files-default ${INSTDIR}/etc/sysconfig/files 2>/dev/null
# ... so remove them afterwards ...
find ${INSTDIR}/etc/sysconfig/files \
-regex ".*/\..*" -exec rm -rf {} 2>/dev/null \;
@@ -265,7 +280,7 @@ while getopts :hgk:i:r:o:s:f:n:Sut:d:v:I:V:a: a ; do
I) NET_IF=$OPTARG;; # Not in use
a) acpi_dsdt="$OPTARG";; # Not in use
S) use_selinux=1;; # Not in use
- V) vendor_init_script="$OPTARG";; # Not in use
+ l) local_init_script="$OPTARG";; # Not in use
u) sysfs_root=1 # Not in use
use_udev=
;;
@@ -292,11 +307,6 @@ mkdir -p ${INSTDIR}/usr/share
# needed for KNOPPIX hwsetup not to confuse with ${D_SYSCONFDIR}
mkdir -p ${INSTDIR}/etc/sysconfig
-# temporary ldd for getting library information out of initrd binaries
-# fixme: ugly bug in ldd prevents renaming ...
-mv ${ROOTDIR}/usr/bin/ldd ${ROOTDIR}/usr/bin/ldd.orig
-cp `which ldd` ${ROOTDIR}/usr/bin/ldd
-
# if still no distro name set, try to find it using significant files
if [ -z "${DISTRO}" ] ; then
if [ -e ${ROOTDIR}/etc/SuSE-release ] ; then
@@ -478,8 +488,6 @@ for lib in `cat ${INSTDIR}/tmp/libraries 2>/dev/null | \
cp /${ROOTDIR}/${lib} ${INSTDIR}/lib
done
rm ${INSTDIR}/tmp/libraries
-# fixme: ugly ldd bug, see above
-mv ${ROOTDIR}/usr/bin/ldd.orig ${ROOTDIR}/usr/bin/ldd
# add kernel modules and dependency files
if [ -z "$KERNVER" ] ; then
@@ -584,17 +592,20 @@ else
disabled\nroot_pw='"'$1$T7VD/mmQ$aCP1WEaWplEsHe9khv4kK.'"'" \
> ${INSTDIR}/etc/machine-setup
fi
+
# custom init script for normal client start after initramfs
+# fixme: should be handled the same way as user-supplied init scripts
if [ -f /etc/dxs/client.cfg/boot.local.default ] ; then
cp /etc/dxs/client.cfg/boot.local.default ${INSTDIR}/etc/boot.local
fi
-# finally copy vendor-supplied preinit and postinit files
-for i in vendor_preinit vendor_postinit ; do
- if [ -f /etc/dxs/init.local/"${i}" ] ; then
- cp /etc/dxs/init.local/"$i" ${INSTDIR}/bin/"$i"
- fi
-done
+# finally copy user-supplied preinit and postinit files
+# fixme: where are these files coming from??
+#for i in vendor_preinit vendor_postinit ; do
+# if [ -f /etc/dxs/init.local/"${i}" ] ; then
+# cp /etc/dxs/init.local/"$i" ${INSTDIR}/bin/"$i"
+# fi
+#done
#########################################################################
# End of file copy procedures