diff options
Diffstat (limited to 'initrd/distro-specs')
| -rw-r--r-- | initrd/distro-specs/debian/functions-debian | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/initrd/distro-specs/debian/functions-debian b/initrd/distro-specs/debian/functions-debian new file mode 100644 index 00000000..349e6c25 --- /dev/null +++ b/initrd/distro-specs/debian/functions-debian @@ -0,0 +1,167 @@ +# 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 + +# distro specific stuff to initialize +preinit () { + echo "dhcp:x:101:">>/etc/group + echo "dhcp:x:101:101::/nonexistent:/bin/false">>/etc/passwd +} + +# linking runlevel scripts +rllinker () { +local script="$1" +local start="$2" +local stop="$3" +# empty runlevel links - decision on running certain services is +# passed via configuration +for i in rc3.d/K$stop$script rc5.d/K$stop$script \ + rc3.d/S$start$script rc5.d/S$start$script ; do + ln -sf ../$script /mnt/etc/init.d/$i +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 +} |
