diff options
Diffstat (limited to 'initrd/distro-specs')
| -rw-r--r-- | initrd/distro-specs/debian/config | 40 | ||||
| -rw-r--r-- | initrd/distro-specs/debian/servconf | 19 | ||||
| -rw-r--r-- | initrd/distro-specs/gentoo/config | 38 | ||||
| -rw-r--r-- | initrd/distro-specs/gentoo/servconf | 19 | ||||
| -rw-r--r-- | initrd/distro-specs/servconf | 26 | ||||
| -rw-r--r-- | initrd/distro-specs/suse-10.0/.servconf.swp | bin | 0 -> 12288 bytes | |||
| -rw-r--r-- | initrd/distro-specs/suse-10.0/config | 47 | ||||
| -rwxr-xr-x | initrd/distro-specs/suse-10.0/files/etc/init.d/boot | 293 | ||||
| -rwxr-xr-x | initrd/distro-specs/suse-10.0/files/etc/init.d/halt | 90 | ||||
| -rw-r--r-- | initrd/distro-specs/suse-10.0/functions-suse-10.0 | 161 |
10 files changed, 733 insertions, 0 deletions
diff --git a/initrd/distro-specs/debian/config b/initrd/distro-specs/debian/config new file mode 100644 index 00000000..ca2bb2aa --- /dev/null +++ b/initrd/distro-specs/debian/config @@ -0,0 +1,40 @@ +# Description: distro specific settings for Debian/Sarge +# +# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 06-01-2006 +# +# Copyright: (c) 2003, 2005 - RZ Universitaet Freiburg + +# SYSCONFDIR - system wide configuration settings - /etc/sysconfig in SuSE +# and RedHat, /etc/default in Debian and Ubuntu +# DISETCEXCL - list of files, wildcards to be excluded from /etc when using +# bind mounts +# DIRINBINDMNT - lists of directories to be created in bind mounted rw +# part of the client filesystem +# RODIRSINRW - ReadOnly Directories in RW part of filesystem to save on +# TempFS usage +# DISDIRINDXS - directories in client filesystem which should be present +# anyhow +# DISBINDMNT - any code which is specific in bind mount environment +# RCDIRS - runlevel directories relative to /etc + + +SYSCONFDIR=/default +DISETCEXCL="opt/gnome/gconf/*\n*.old\n*-\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/*" +BINDMPTS="tmp root home" +DIRINBINDMNT="/var/run /var/log /var/tmp" +RODIRSINRW="/etc/opt/gnome/gconf /etc/X11/xkb /var/adm /var/lib/texmf /var/lib/rpm" +DISDIRINDXS="/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" +DISBINDMNT="# " +INITDIR="/init.d" +INITBOOTD="/rc.boot" +RCDIRS="/rc0.d /rc1.d /rc2.d /rc3.d /rc4.d /rc5.d /rc6.d /rcS.d" +INITSCRIPTS="boot.udev boot.proc boot.shm boot.klog boot.loadmodules boot.clock boot.localnet boot.sysctl boot.ipconfig" diff --git a/initrd/distro-specs/debian/servconf b/initrd/distro-specs/debian/servconf new file mode 100644 index 00000000..9e711042 --- /dev/null +++ b/initrd/distro-specs/debian/servconf @@ -0,0 +1,19 @@ +#!/bin/sh +# +# Description: configuration script for Debian/Sarge to configure +# linux diskless clients (executed within initial +# ramdisk after genconfig) +# +# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 13-12-2005 +# Blabla +# Blub +# +# Copyright: (c) 2003, 2005 - RZ Universitaet Freiburg +# +# Version: 0.3.5k + +# check for configuration files to source + +# ldap, dhcp, file + + diff --git a/initrd/distro-specs/gentoo/config b/initrd/distro-specs/gentoo/config new file mode 100644 index 00000000..04b3f5f2 --- /dev/null +++ b/initrd/distro-specs/gentoo/config @@ -0,0 +1,38 @@ +# Description: distro specific settings for Gentoo +# +# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 13-12-2005 +# +# Copyright: (c) 2003, 2005 - RZ Universitaet Freiburg + +# SYSCONFDIR - system wide configuration settings in /etc - sysconfig in +# SuSE and RedHat, default in Debian and Ubuntu, conf.d in Gentoo +# DISETCEXCL - list of files, wildcards to be excluded from /etc when using +# bind mounts +# DIRINBINDMNT - lists of directories to be created in bind mounted rw +# part of the client filesystem +# RODIRSINRW - ReadOnly Directories in RW part of filesystem to save on +# TempFS usage +# DISDIRINDXS - directories in client filesystem which should be present +# anyhow +# DISBINDMNT - any code which is specific in bind mount environment +# RCDIRS - runlevel directories relative to /etc +SYSCONFDIR=conf.d +DISETCEXCL="opt/gnome/gconf/*\n*.old\n*-\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/*" +BINDMPTS="tmp root home" +DIRINBINDMNT="/var/run /var/log /var/tmp" +RODIRSINRW="/var/adm /var/lib/texmf" +DISDIRINDXS="/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/nfs/state \ +/var/lib/misc /var/lib/acpi /var/spool/cron \ +/var/lock/subsys/sysconfig" +DISBINDMNT="# spielspass fuer splash" +INITDIR="/init.d" +INITBOOTD="/runlevels/boot" +RCDIRS="/runlevels/default /runlevels/nonetwork /runlevels/single" +INITSCRIPTS="" diff --git a/initrd/distro-specs/gentoo/servconf b/initrd/distro-specs/gentoo/servconf new file mode 100644 index 00000000..36c10d3c --- /dev/null +++ b/initrd/distro-specs/gentoo/servconf @@ -0,0 +1,19 @@ +#!/bin/sh +# +# Description: configuration script for Gentoo to configure +# linux diskless clients (executed within initial +# ramdisk after genconfig) +# +# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 13-12-2005 +# Blabla +# Blub +# +# Copyright: (c) 2003, 2005 - RZ Universitaet Freiburg +# +# Version: 0.3.5k + +# check for configuration files to source + +# ldap, dhcp, file + + diff --git a/initrd/distro-specs/servconf b/initrd/distro-specs/servconf new file mode 100644 index 00000000..1a5897f1 --- /dev/null +++ b/initrd/distro-specs/servconf @@ -0,0 +1,26 @@ +#!/bin/sh +# +# Description: universal (distro independent) configuration script +# for linux diskless clients (executed within initial +# ramdisk) +# +# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 06-01-2006 +# Blabla +# Blub +# +# Copyright: (c) 2003, 2005 - RZ Universitaet Freiburg +# +# Version: 0.0.1a + +# check for configuration files to source + +# functions common for all distros +. /etc/functions +# configuration settings (several file and directory variables) +. /etc/sysconfig/config + +# + +# ldap, dhcp, file + + diff --git a/initrd/distro-specs/suse-10.0/.servconf.swp b/initrd/distro-specs/suse-10.0/.servconf.swp Binary files differnew file mode 100644 index 00000000..2452cd37 --- /dev/null +++ b/initrd/distro-specs/suse-10.0/.servconf.swp diff --git a/initrd/distro-specs/suse-10.0/config b/initrd/distro-specs/suse-10.0/config new file mode 100644 index 00000000..f0f99b4b --- /dev/null +++ b/initrd/distro-specs/suse-10.0/config @@ -0,0 +1,47 @@ +# Description: distro specific settings for SuSE 10.0 +# +# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 06-01-2006 +# +# Copyright: (c) 2003, 2005 - RZ Universitaet Freiburg + + +# SYSCONFDIR - system wide configuration settings - /etc/sysconfig in SuSE +# and RedHat, /etc/default in Debian and Ubuntu +# DISETCEXCL - list of files, wildcards to be excluded from /etc when using +# bind mounts +# DIRINBINDMNT - lists of directories to be created in bind mounted rw +# part of the client filesystem +# RODIRSINRW - ReadOnly Directories in RW part of filesystem to save on +# TempFS usage +# DISDIRINDXS - directories in client filesystem which should be present +# anyhow +# DISBINDMNT - any code which is specific in bind mount environment +# RCDIRS - runlevel directories relative to /etc +# XF86CONFFILE - name and location of XFree/Xorg config file, e.g. +# /etc/X11/xorg.conf or /etc/X11/XF86config, ... +# XFONTPATH - path(es) where X11 fonts are installed (with trailing /*) +# DEFAULTCOUNTRY - localization (see common functions) + +SYSCONFDIR=/sysconfig +DISETCEXCL="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" +BINDMPTS="tmp root media home" +DIRINBINDMNT="/var/run /var/log /var/tmp" +RODIRSINRW="/etc/opt/gnome/gconf /etc/X11/xkb /var/adm /var/lib/texmf /var/lib/rpm" +DISDIRINDXS="/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" +DISBINDMNT="# spielspass fuer splash" +INITDIR="/init.d" +INITBOOTD="${INITDIR}/boot.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" +INITSCRIPTS="boot.udev boot.proc boot.shm boot.klog boot.loadmodules boot.clock boot.sysctl boot.ipconfig" +XF86CONFFILE="/etc/X11/xorg.conf" +XFONTPATH="/usr/X11R6/lib/X11/fonts/*" +DEFAULTCOUNTRY="de" diff --git a/initrd/distro-specs/suse-10.0/files/etc/init.d/boot b/initrd/distro-specs/suse-10.0/files/etc/init.d/boot new file mode 100755 index 00000000..6db53181 --- /dev/null +++ b/initrd/distro-specs/suse-10.0/files/etc/init.d/boot @@ -0,0 +1,293 @@ +#!/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 + +# script stuff written within initrd +if [ -s /etc/init.d/boot.ld ] ; then + rc_reset + echo -n "Running post configuration required by initrd" + chmod u+x /etc/init.d/boot.ld && /etc/init.d/boot.ld + rc_status -v -r +fi +# Start blogd, requires /proc and /dev/pts. +# Export the real device in variable REDIRECT. +test -x /sbin/blogd -a -n "$REDIRECT" && /sbin/blogd $REDIRECT +if test -z "$REDIRECT" ; then + if (echo -n > /dev/tty) 2>/dev/null ; then + REDIRECT=/dev/tty + else + REDIRECT=/dev/console + fi +fi + +################################################################ +# +# Save old terminal settings and set -nl to avoid staircase +# effect, do not lock scrolling, and avoid break characters. +otty=$(stty -g) +if test "$FLOW_CONTROL" = "yes" ; then + stty -nl ixon ignbrk -brkint +else + stty -nl -ixon ignbrk -brkint +fi + +################################################################ +# +# Should we ask for interactive boot mode +DO_CONFIRM="" +read -t 2 check < /proc/cmdline 2> /dev/null +case "$check" in + *confirm*) DO_CONFIRM=yes ;; +esac +test -z "$CONFIRM_PROMPT_TIMEOUT" && CONFIRM_PROMPT_TIMEOUT=5 +if test "$PROMPT_FOR_CONFIRM" = "yes" -a "$DO_CONFIRM" != "yes" ; then + echo -en "${extd}Enter Interactive startup mode?${norm}" + rc_timer_on "$CONFIRM_PROMPT_TIMEOUT" 37 + read -t "$CONFIRM_PROMPT_TIMEOUT" -n 1 \ + -p " ${extd}y${norm}/[${extd}n${norm}]\ +("${CONFIRM_PROMPT_TIMEOUT}s") " answer + rc_timer_off + case "$answer" in + [yYiI]) DO_CONFIRM=yes ;; + *) DO_CONFIRM= ;; + esac + unset answer + echo +fi +export DO_CONFIRM + +################################################################ +# +# Common used variables +bootrc=/etc/init.d/boot.d +rex="[0-9][0-9]" +failed="" +skipped="" +callord="" + +# +# Initialize boosplash progressbar variables +# +. /etc/rc.splash B +splashtrigger "rlchange B" + +################################################################ +# +# Do we stop/start script in parallel? +startpar=$(type -p startpar) +test "$RUN_PARALLEL" = "yes" || startpar="" +test "$DO_CONFIRM" = "yes" && startpar="" + +# Start bootup client scripts. +if test -d ${bootrc}/ ; then + for i in ${bootrc}/S*; do + test -f $i || continue + + B=${i##*/} + script=${B#*S$rex} + B=${B%$script} + + rc_splash "$script start" + + if test "$DO_CONFIRM" = "yes" ; then + rc_confirm -t 5 "Start bootup script ${script}" \ + < $REDIRECT > $REDIRECT 2>&1 + case "$?" in + 0) true ;; + 1) continue ;; + 2) DO_CONFIRM="" + esac + fi + + if test -z "$startpar" ; then + blogger "$script start" + + if test -x "$i" ; then + $i start + else + echo Running $i + /bin/sh $i b + rc_status -v1 -r + fi + status=$? + echo -en "$rc_reset" + + case $status in + [1-4]) failed="${failed:+$failed }$script" ;; + [56]) skipped="${skipped:+$skipped }$script" ;; + [07]|*) ;; + esac + + blogger "'$script start' exits with status $status" + else + # Parallel boot only for valid scripts + test -x $i || continue + + # Current vector + eval cur=\${$B} + test -n "$cur" || callord="${callord:+$callord }$B" + + # Remember scripts + eval $B="\${cur:+$i }\${cur:-$i}" + fi + done +fi + +################################################################ +# +# Call the scripts in correct order +if test -n "$startpar" ; then + declare -i s + for p in $callord ; do + vect=$p + eval p=(\${$p}) + + blogger "run boot scripts (${p[@]##*S$rex})" + if test ${#p[@]} -eq 1 ; then + ${p} start + status=($?) + else + status=($($startpar -t 30 -T 3 -a start ${p[@]})) + fi + echo -en "$rc_reset" + blogger "exit status of (${p[@]##*S$rex}) is (${status[@]})" + + s=0 + for script in ${p[@]##*S$rex} ; do + case "${status[$s]}" in + [1-4]) failed="${failed:+$failed }$script" ;; + [56]) skipped="${skipped:+$skipped }$script" ;; + 0|*) ;; + esac + : $((s++)) + done + done +fi + +################################################################ +# +# Be verbose and print stats +echo -n "System Boot Control: " +echo -e "The system has been ${stat}${extd}set up${norm}" +if test -n "$failed" ; then + n=$((${#failed} + 7)) + echo -n "Failed features: " + test $n -lt 47 && echo -en "\033[${COLUMNS}C\033[${n}D" + echo -e "${warn}${failed}${norm}" +fi +if test -n "$skipped" ; then + n=$((${#skipped} + 7)) + echo -n "Skipped features: " + test $n -lt 47 && echo -en "\033[${COLUMNS}C\033[${n}D" + echo -e "${attn}${skipped}${norm}" +fi + + +################################################################ +# +# Check for boot cycle detection +test -s /lib/bootcycle/stats && . /lib/bootcycle/stats + + +# Remember for master resource script +if test "$DO_CONFIRM" = "yes" ; then + touch /var/run/do_confirm +fi + +# Restore old terminal settings +stty $otty + +################################################################ +# +# Let zic set timezone - if present (from boot.ldconfig). +if test -n "$TIMEZONE" -a -x /usr/sbin/zic ; then + echo -n Setting up timezone data + /usr/sbin/zic -l $TIMEZONE + rc_status -v -r +fi + +################################################################ +# +# start user defined bootup script. +if test -f /etc/init.d/boot.local ; then + ECHO_RETURN=$rc_done_up + echo "Running /etc/init.d/boot.local" + /bin/sh /etc/init.d/boot.local || rc_failed + rc_status -v1; rc_reset + rc_splash "boot.local start" +fi + +rc_reset +exit 0 diff --git a/initrd/distro-specs/suse-10.0/files/etc/init.d/halt b/initrd/distro-specs/suse-10.0/files/etc/init.d/halt new file mode 100755 index 00000000..65e5b0ad --- /dev/null +++ b/initrd/distro-specs/suse-10.0/files/etc/init.d/halt @@ -0,0 +1,90 @@ +#! /bin/sh +# +# Description: Modificated /etc/init.d/halt for use with Diskless +# X Stations (v4.0) +# -> replaces /etc/init.d/halt +# +# Author(s): Dirk von Suchodoletz <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/suse-10.0/functions-suse-10.0 b/initrd/distro-specs/suse-10.0/functions-suse-10.0 new file mode 100644 index 00000000..f6523a53 --- /dev/null +++ b/initrd/distro-specs/suse-10.0/functions-suse-10.0 @@ -0,0 +1,161 @@ +# Description: configuration script for SuSE 10.0 to configure +# linux diskless clients (executed within initial +# ramdisk after genconfig) +# +# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 08-01-2006 +# Blabla +# Blub +# +# Copyright: (c) 2006 - RZ Universitaet Freiburg +# +# Version: 0.2.1a + +# linking runlevel scripts +rllinker () { +local script="$1" +local start="$2" +local stop="$3" +# empty runlevel links - decision on running certain services is +# passed via configuration +for i in rc3.d/K$stop$script rc5.d/K$stop$script \ + rc3.d/S$start$script rc5.d/S$start$script ; do + ln -sf ../$script /mnt/etc/init.d/$i +done +} + +# group of functions for the normal runlevels - first parameter is start +# second stop +# function for ntp configuration +config_ntp () { +local start=$1 +local stop=$2 +if [ -f /mnt/etc/init.d/ntp ] ; then + 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/${INITDIR}/boot.ld + echo "ntpdate -s -b $ntp_servers >${LOGFILE} 2>&1 &" \ + >>/mnt/etc/${INITDIR}/boot.ld + else + rllinker "ntp" "$start" "$stop" + fi +fi +} + +# function for atd +config_atd () { +if [ "x$start_atd" = "xyes" ]; then + rllinker "atd" "$1" "$2" +fi +} + +# function for configuration of cron services +config_cron () { +if [ "x$start_cron" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/cron ] ; then + testmkd /mnt/var/spool/cron/lastrun + testmkd /mnt/var/spool/cron/tabs + echo -e "# /etc/crontab - file generated by $0:\n\ +#\t$date\nSHELL=/bin/sh\nPATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin\ +\nMAILTO=\n-*/15 * * * *\troot\ttest -x /usr/lib/cron/run-crons && \ +/usr/lib/cron/run-crons >/dev/null 2>&1\n" >/mnt/etc/crontab + else + error " The cron start script seems not to be installed, so requesting \ +\n the start of cron services make no sense." nonfatal + fi +fi +} + +# secure shell service +config_sshd () { +if [ "x$start_sshd" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/sshd ] ; then + testmkd /mnt/var/lib/sshd; testmkd /mnt/var/lib/empty + rllinker "sshd" "$1" "$2" + fi +fi +} + +# snmp agent for remote monitoring +config_snmp () { +if [ "x$start_snmp" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/snmpd ] ; then + rllinker "snmpd" "$1" "$2" + testmkd /mnt/var/lib/net-snmp >/dev/null 2>&1 + fi + # fixme!! + # write service monitor depending on services started + fi +} + +# x11 stuff +descsession () { +if [ "x$desktop_session" != "x" ] ; then + windowmanagers="$desktop_session" + # write script for desktop-session chooser + if [ "x$vmware" != "xno" ] ; then + debug="" + [ ${DEBUGLEVEL} -gt 0 ] && debug="--debug 1" + echo -e "#!/bin/sh\n#\n# file generated by\n#\t$0:\n#\t$date\n +OSTYPE=\`echo \$0 | sed -e \"s,-, ,\" -e \"s,.*/,,\" | awk '{print \$1}'\` +SPECTYPE=\`echo \$0 | sed -e \"s,-, ,\" -e \"s,.*/,,\" | awk '{print \$2}'\`\n +OPTS=\"-o \$OSTYPE \${SPECTYPE:+\"-s \$SPECTYPE\"}\"\n +xterm -bg black -fg white -geometry 170x30+0-0 +sb \ +-e \"runvmware \$OPTS $debug\"\n" > /mnt/var/X11R6/bin/desktop-session + chmod a+x /mnt/var/X11R6/bin/desktop-session + addpath="true"; + fi +else + windowmanagers="kde,gnome,icewm,failsafe" +fi +# check if /usr/X11R6/bin is writeable, else use /var/X11R6/bin +if [ -w /mnt/usr/X11R6/bin/WM-Session ] ; then + sesspath="/usr/X11R6/bin" +else + sesspath="/var/X11R6/bin" + addpath="true" +fi + +# create links to desktop-session chooser +[ -f /mnt/usr/bin/X11/wmlist ] && wmlist=`cat /mnt/usr/bin/X11/wmlist` + +for i in `echo $windowmanagers|sed -e "s/,/ /g"` ; do + # beware!! quickhack for VMware sessions + strinstr "$i" "$wmlist" || \ + test -x /mnt/usr/X11R6/bin/$i || \ + echo -e "[Desktop Entry]\nX-SuSE-translate=true\nEncoding=UTF-8\n\ +Type=XSession\nExec=$i\nTryExec=$sesspath/$i\n\ +Name=$i\n" > /mnt/etc/X11/sessions/$i.desktop + # does not work correctly (add /var/X11R6/bin to path!!) + test -x /mnt/usr/X11R6/bin/$i || \ + ln -fs /var/X11R6/bin/desktop-session /mnt/$sesspath/$i +done + +# add special path /var/X11R6/bin to the PATH variable +[ "x$addpath" != "x" ] && \ + echo -e "# added path component by $0: $date\n\ +PATH=\"\$PATH:/var/X11R6/bin\"" >>/mnt/etc/SuSEconfig/profile + +} + +# configure display manager (runlevel links and kind of manager) +config_dm () { + # should be stated that entries were made (fixmee how??) + sed -e "s,DISPLAYMANAGER=.*,DISPLAYMANAGER=\"$start_xdmcp\"," \ + -e "s,.*_XSERVER.*,DISPLAYMANAGER_STARTS_XSERVER=\"$dsx\"," \ + /mnt/etc/sysconfig/displaymanager > /etc/displaymanager + cp /etc/displaymanager /mnt/etc/sysconfig/displaymanager + +# echo -e "#!/bin/sh\n# entry added by $0: $date\n\ +#(sleep 1; /etc/init.d/xdm start) &" >>/mnt/etc/${INITDIR}/boot.ld + ln -sf /etc/init.d/xdm /mnt/etc/init.d/rc5.d/S01xdm + ln -sf /etc/init.d/xdm /mnt/etc/init.d/rc5.d/K20xdm +} + +# consolefont +consolefont () { +echo -e "setfont ${CONSOLE_FONT} >${LOGFILE} 2>&1" \ + >>/mnt/etc/${INITDIR}/boot.ld +} |
