diff options
Diffstat (limited to 'initramfs/distro-specs/debian/functions-default')
-rw-r--r-- | initramfs/distro-specs/debian/functions-default | 92 |
1 files changed, 55 insertions, 37 deletions
diff --git a/initramfs/distro-specs/debian/functions-default b/initramfs/distro-specs/debian/functions-default index 52d4fea9..5edd231f 100644 --- a/initramfs/distro-specs/debian/functions-default +++ b/initramfs/distro-specs/debian/functions-default @@ -1,5 +1,5 @@ -# Copyright (c) 2003 - 2006 - RZ Uni Freiburg -# Copyright (c) 2007 - OpenSLX GmbH +# Copyright (c) 2003..2006 - RZ Uni Freiburg +# Copyright (c) 2007..2008 - OpenSLX GmbH # # This program is free software distributed under the GPL version 2. # See http://openslx.org/COPYING @@ -11,18 +11,44 @@ # # Configuration script for general Debian distributions to setup linux # stateless clients (included within initial ramfs) - + +# distro specific configuration variables used in the setup functions +# (formerly done via config-*, these variables are disputable ...) +# 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_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" +D_BINDMPTS="tmp root home" +D_DIRINBINDMNT="/var/run /var/log /var/tmp /var/lib/gdm /etc/X11" +D_RODIRSINRW="etc/gconf etc/X11/xkb /var/lib/texmf /var/cache/fontconfig \ +/var/lib/dpkg" +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" + # 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 () { + # clean the runlevel directories which will be populated by the stage3 setup + for dir in rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rcS.d ; do + rm -rf /mnt/etc/${dir}/* + done # 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 @@ -35,6 +61,20 @@ config_distro () { sed -e "s/.*initdefault/id:${D_INITDEFAULT}:initdefault/" -i /mnt/etc/inittab } +# initial (boot time) runlevel scripts +initial_boot () { +local count=10 +# boot.slx is a special runlevel script generated within initialramfs which +# should be executed before the normal runlevel scripts. Proper shutdown is +# not needed!? +for i in boot.slx mountkernfs.sh mountvirtfs udev procps.sh bootlogd \ + $D_SPLASHY keymap.sh hwclock.sh sudo dbus-1; do + count=$(($count + 1)) + [ $DEBUGLEVEL -ge 2 ] && echo "boot-runlevelscript $i" + ln -sf /etc/init.d/$i /mnt/etc/rcS.d/S${count}$i +done +} + # linking runlevel scripts rllinker () { local script="$1" @@ -61,16 +101,16 @@ local name=$2 local info=$3 case "$1" in init) - echo -e "#!/bin/sh\n# skeleton of /etc/${D_INITDIR}/$name created \ + echo -e "#!/bin/sh\n# skeleton of /etc/init.d/$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\ . /lib/lsb/init-functions\ncase \"\$1\" in\n start)\n\ -\tlog_begin_msg \"$info\"" >>/mnt/etc/${D_INITDIR}/$name - chmod u+x /mnt/etc/${D_INITDIR}/$name +\tlog_begin_msg \"$info\"" >>/mnt/etc/init.d/$name + chmod u+x /mnt/etc/init.d/$name ;; close) echo -e "\tlog_end_msg \$?\n\t;;\n stop)\n\tlog_end_msg \$?\n\t;;\ - \nesac\nexit 0" >>/mnt/etc/${D_INITDIR}/$name + \nesac\nexit 0" >>/mnt/etc/init.d/$name ;; esac } @@ -150,17 +190,17 @@ if [ "x$start_snmp" = "xyes" ] ; then #PATH=\"\$PATH:/var/X11R6/bin\"" >>/mnt/etc/profile } -# consolefont and language -consolefont () { +# localization like consolefont and language +dlocale () { # console font setting program not available in Debian 4!? echo -e "\t#setfont ${CONSOLE_FONT} >${LOGFILE} 2>&1" \ - >>/mnt/etc/${D_INITDIR}/boot.slx -chmod 744 /mnt/etc/${D_INITDIR}/boot.slx + >>/mnt/etc/init.d/boot.slx +chmod 744 /mnt/etc/init.d/boot.slx # 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 -sed -e "s,LANG=.*,LANG=\"${LANG}\" # set within initramfs," \ +sed -e "s,LANG=.*,LANG=\"${LANG}\," # set within initramfs," \ -i /mnt/etc/default/locale } @@ -171,25 +211,3 @@ if [ "x$start_dreshal" = "xyes" ]; then fi } -# overwrite settings set by hwautocfg, pathes will change for newer -# Xorg version 7.X -displayvars (){ -Files=' \t FontPath\t\t "/usr/share/X11/fonts/misc"\n -\t FontPath\t\t "/usr/share/X11/fonts/100dpi/:unscaled"\n -\t FontPath\t\t "/usr/share/X11/fonts/75dpi/:unscaled"\n -\t FontPath\t\t "/usr/share/X11/fonts/Type1"\n -\t FontPath\t\t "/usr/share/X11/fonts/100dpi"\n -\t FontPath\t\t "/usr/share/X11/fonts/75dpi"\n -' -Module=' \t Load\t "i2c"\n -\t Load\t "bitmap"\n -\t Load\t "ddc"\n -\t Load\t "dri"\n -\t Load\t "extmod"\n -\t Load\t "freetype"\n -\t Load\t "glx"\n -\t Load\t "int10"\n -\t Load\t "type1"\n -\t Load\t "vbe"\n' -synapticsdrv="" -} |