diff options
author | Nico Dietrich | 2006-01-26 05:21:38 +0100 |
---|---|---|
committer | Nico Dietrich | 2006-01-26 05:21:38 +0100 |
commit | 3ae9f38ee84cfd1b9fb8f00232b186e7e932ebb0 (patch) | |
tree | baa771a267ca1ddb0f38d260dc0e74d622cd6d32 | |
parent | weiter und svn-chaos beseitigen (diff) | |
download | core-3ae9f38ee84cfd1b9fb8f00232b186e7e932ebb0.tar.gz core-3ae9f38ee84cfd1b9fb8f00232b186e7e932ebb0.tar.xz core-3ae9f38ee84cfd1b9fb8f00232b186e7e932ebb0.zip |
acpi fuer 9.3 angepasst
git-svn-id: http://svn.openslx.org/svn/openslx/dxs/ld4@37 95ad53e4-c205-0410-b2fa-d234c58c8868
-rw-r--r-- | initrd/distro-specs/suse/functions-9.3 | 377 |
1 files changed, 377 insertions, 0 deletions
diff --git a/initrd/distro-specs/suse/functions-9.3 b/initrd/distro-specs/suse/functions-9.3 new file mode 100644 index 00000000..4c585096 --- /dev/null +++ b/initrd/distro-specs/suse/functions-9.3 @@ -0,0 +1,377 @@ +# Description: configuration script for SuSE 10.0 to configure +# linux diskless clients (included by init, hwautocfg, +# servconfig, ... within initial ramdisk after inclusion +# of the main functions file) +# +# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 20-01-2006 +# Blabla +# Blub +# +# Copyright: (c) 2006 - RZ Universitaet Freiburg +# +# Version: 0.2.1a + +# distro specific stuff to initialize +preinit () { + # do nothing yet + echo > /dev/null +} + +# linking runlevel scripts +rllinker () { +local script="$1" +local start="$2" +local stop="$3" +# empty runlevel links - decision on running certain services is +# passed via configuration +for i in rc3.d/K$stop$script rc5.d/K$stop$script \ + rc3.d/S$start$script rc5.d/S$start$script ; do + ln -sf ../$script /mnt/etc/init.d/$i +done +} + +# group of functions for the normal runlevels - first parameter is start +# second stop +# function for ntp configuration +config_ntp () { +local start=$1 +local stop=$2 +if [ -f /mnt/etc/init.d/ntp ] ; then + strinfile "ntp:" /mnt/etc/passwd || \ + echo -e "ntp:x:74:65534:NTP daemon:/var/lib/ntp:/bin/false" \ + >>/mnt/etc/passwd + testmkd /mnt/var/lib/ntp/var/run/ntp &>/dev/null + if [ "x$start_ntp" = "xinitial" ] ; then + echo -e "\t# entry added by $0: $date" \ + >>/mnt/etc/${D_INITDIR}/boot.ld + echo -e "\tntpdate -s -b $ntp_servers >${LOGFILE} 2>&1 &" \ + >>/mnt/etc/${D_INITDIR}/boot.ld + else + rllinker "ntp" "$start" "$stop" + fi +fi +} + +# function for atd +config_atd () { +if [ "x$start_atd" = "xyes" ]; then + rllinker "atd" "$1" "$2" +fi +} + +# function for configuration of cron services +config_cron () { +if [ "x$start_cron" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/cron ] ; then + testmkd /mnt/var/spool/cron/lastrun + testmkd /mnt/var/spool/cron/tabs + echo -e "# /etc/crontab - file generated by $0:\n\ +#\t$date\nSHELL=/bin/sh\nPATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin\ +\nMAILTO=\n-*/15 * * * *\troot\ttest -x /usr/lib/cron/run-crons && \ +/usr/lib/cron/run-crons >/dev/null 2>&1\n" >/mnt/etc/crontab + else + error " The cron start script seems not to be installed, so requesting \ +\n the start of cron services make no sense." nonfatal + fi +fi +} + +# syslog service +config_syslog () { +if [ "x$start_syslog" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/syslog ] ; then + # how to configure remote log server? + # logging servers might be specified in $log_servers (from e.g. dhcp) + echo -e "# File modified by $0 within initial ramdisk" \ + > /etc/syslog-ng.conf + sed -e "s,.*dhcp/dev.*,," -e "s,.*named/dev.*,," \ + /mnt/etc/syslog-ng/syslog-ng.conf >> /etc/syslog-ng.conf + cp /etc/syslog-ng.conf /mnt/etc/syslog-ng/syslog-ng.conf + rllinker syslog "$1" "$2" + fi +fi +} + +# secure shell service +config_sshd () { +if [ "x$start_sshd" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/sshd ] ; then + testmkd /mnt/var/lib/sshd; testmkd /mnt/var/lib/empty + rllinker "sshd" "$1" "$2" + fi +fi +} + +# snmp agent for remote monitoring +config_snmp () { +if [ "x$start_snmp" = "xyes" ] ; then + if [ -f /mnt/etc/init.d/snmpd ] ; then + rllinker "snmpd" "$1" "$2" + testmkd /mnt/var/lib/net-snmp >/dev/null 2>&1 + fi + # fixme!! + # write service monitor depending on services started + fi +} + +# x11 stuff +descsession () { +if [ "x$desktop_session" != "x" ] ; then + windowmanagers="$desktop_session" + # write script for desktop-session chooser + if [ "x$vmware" != "xno" ] ; then + debug="" + [ ${DEBUGLEVEL} -gt 0 ] && debug="--debug 1" + echo -e "#!/bin/sh\n#\n# file generated by\n#\t$0:\n#\t$date\n +OSTYPE=\`echo \$0 | sed -e \"s,-, ,\" -e \"s,.*/,,\" | awk '{print \$1}'\` +SPECTYPE=\`echo \$0 | sed -e \"s,-, ,\" -e \"s,.*/,,\" | awk '{print \$2}'\`\n +OPTS=\"-o \$OSTYPE \${SPECTYPE:+\"-s \$SPECTYPE\"}\"\n +xterm -bg black -fg white -geometry 170x30+0-0 +sb \ +-e \"runvmware \$OPTS $debug\"\n" > /mnt/var/X11R6/bin/desktop-session + chmod a+x /mnt/var/X11R6/bin/desktop-session + addpath="true"; + fi +else + windowmanagers="kde,gnome,icewm,failsafe" +fi +# check if /usr/X11R6/bin is writeable, else use /var/X11R6/bin +if [ -w /mnt/usr/X11R6/bin/WM-Session ] ; then + sesspath="/usr/X11R6/bin" +else + sesspath="/var/X11R6/bin" + addpath="true" +fi + +# create links to desktop-session chooser +[ -f /mnt/usr/bin/X11/wmlist ] && wmlist=`cat /mnt/usr/bin/X11/wmlist` +testmkd /mnt/etc/X11/sessions +for i in `echo $windowmanagers|sed -e "s/,/ /g"` ; do + # beware!! quickhack for VMware sessions + strinstr "$i" "$wmlist" || \ + test -x /mnt/usr/X11R6/bin/$i || \ + echo -e "[Desktop Entry]\nX-SuSE-translate=true\nEncoding=UTF-8\n\ +Type=XSession\nExec=$i\nTryExec=$sesspath/$i\n\ +Name=$i\n" > /mnt/etc/X11/sessions/$i.desktop + # does not work correctly (add /var/X11R6/bin to path!!) + test -x /mnt/usr/X11R6/bin/$i || \ + ln -fs /var/X11R6/bin/desktop-session /mnt/$sesspath/$i +done + +# add special path /var/X11R6/bin to the PATH variable +[ "x$addpath" != "x" ] && \ + echo -e "# added path component by $0: $date\n\ +PATH=\"\$PATH:/var/X11R6/bin\"" >>/mnt/etc/SuSEconfig/profile + +} + +# configure X display manager (/etc/sysconfig/displaymanager) +config_dm_entry () { +local dm="$1" +# should be stated that entries were made (fixmee how??) +sed -e "s,DISPLAYMANAGER=.*,DISPLAYMANAGER=\"$start_xdmcp\"," \ + -e "s,.*_XSERVER.*,DISPLAYMANAGER_STARTS_XSERVER=\"$dm\"," \ + /mnt/etc/sysconfig/displaymanager > /etc/displaymanager +cp /etc/displaymanager /mnt/etc/sysconfig/displaymanager +# start the display manager as early as possible +ln -sf /etc/init.d/xdm /mnt/etc/init.d/boot.d/S12boot.xdm +ln -sf /etc/init.d/xdm /mnt/etc/init.d/rc5.d/S01xdm +ln -sf /etc/init.d/xdm /mnt/etc/init.d/rc5.d/K20xdm +} + +# configure X display manager (runlevel links and kind of manager) +config_xdm () { +config_dm_entry yes +} + +# configure gdm as display manager +config_gdm () { +config_dm_entry yes +testmkd /mnt/var/lib/gdm +strinfile "gdm:" /mnt/etc/passwd || echo "gdm:x:50:15:Gnome Display Manager \ +Daemon:/var/lib/gdm:/bin/false" >>/mnt/etc/passwd +# hack - gdm should be user 50 and shadow group 15 +chown 50:15 /mnt/var/lib/gdm +chmod 0750 /mnt/var/lib/gdm +xdmcp_hosts=`echo $x_display_manager|sed -e "s; ;,;"` +if [ "${DEBUGLEVEL}" -gt 0 ] ; then + debug="true" +else + debug="false" +fi +echo -e "# /etc/opt/gnome/gdm/gdm.conf - file generated by $0\n\ +[daemon] +AutomaticLoginEnable=false +TimedLoginEnable=false +#AlwaysRestartServer=false +Chooser=/opt/gnome/lib/gdm/gdmchooser +Greeter=/opt/gnome/lib/gdm/gdmgreeter +RemoteGreeter=/opt/gnome/lib/gdm/gdmgreeter +DefaultPath=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/bin:\ +/opt/gnome/bin:/opt/kde3/bin:/opt/kde/bin:/usr/openwin/bin +RootPath=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/local/bin:/usr/bin:\ +/usr/X11R6/bin:/bin:/usr/games:/opt/bin:/opt/gnome/bin:/opt/kde3/bin:\ +/opt/kde/bin:/usr/openwin/bin:/opt/cross/bin +User=gdm +Group=shadow +#KillInitClients=true +LogDir=/var/lib/gdm +ServAuthDir=/var/lib/gdm +PostLoginScriptDir=/etc/opt/gnome/gdm/PostLogin/ +PreSessionScriptDir=/etc/opt/gnome/gdm/PreSession/ +PostSessionScriptDir=/etc/opt/gnome/gdm/PostSession/ +DisplayInitDir=/etc/opt/gnome/gdm/Init +XKeepsCrashing=/etc/opt/gnome/gdm/XKeepsCrashing +RebootCommand=/sbin/shutdown -r now +HaltCommand=/sbin/shutdown -h now +SuspendCommand=/usr/bin/powersave --suspend-to-disk +BaseXsession=/etc/opt/gnome/gdm/Xsession +SessionDesktopDir=/usr/share/xsessions/:/etc/X11/sessions/:\ +/etc/opt/gnome/dm/Sessions/:/opt/gnome/share/gdm/BuiltInSessions/ +BaseXsession=/etc/opt/gnome/gdm/Xsession +SessionDesktopDir=/usr/share/xsessions/:/etc/opt/gnome/dm/Sessions/:\ +/opt/gnome/share/gdm/BuiltInSessions/ +UserAuthFBDir=/tmp +UserAuthFile=.Xauthority +StandardXServer=/usr/X11R6/bin/X +Xnest=/usr/X11R6/bin/Xnest -audit 0 -name Xnest + +[security] +AllowRoot=true +AllowRemoteRoot=true +AllowRemoteAutoLogin=false +CheckDirOwner=true +#UserMaxFile=65536 +RetryDelay=1 +#SessionMaxFile=524388 +NeverPlaceCookiesOnNFS=true + +[xdmcp] +Enable=$xdmcp +HonorIndirect=true +MaxPending=4 +MaxPendingIndirect=4 +MaxSessions=10 +MaxWait=15 +MaxWaitIndirect=15 +DisplaysPerHost=2 +Willing=/etc/X11/xdm/Xwilling + +[gui] +#MaxIconWidth=128 +#MaxIconWidth=128 + +[greeter] +Browser=false +#TitleBar=true +MinimalUID=500 +Quiver=true +Welcome=Welcome to %n +LockPosition=true +BackgroundImage=0 +BackgroundColor=#000000 +ShowGnomeFailsafeSession=false +ShowXtermFailsafeSession=false +ShowLastSession=false +Use24Clock=true +GraphicalTheme=GDM-SuSE +GraphicalTheme=circles +GraphicalThemeDir=/opt/gnome/share/gdm/themes/ +GraphicalThemeRand=false +#SystemMenu=true +InfoMsgFile=/opt/gnome/share/gdm/UserInfo +InfoMsgFont=monospace 10 +SoundOnLogin=false +[chooser] +HostImageDir=/opt/gnome/share/hosts/ +Broadcast=false +Multicast=false +Hosts=$xdmcp_hosts + +[debug] +Enable=$debug" >/mnt/etc/opt/gnome/gdm/gdm.conf +if [ "x$start_x" = "xindirect" ] ; then + # when X server consumes to much mem set X -terminate + echo -e "\n[servers]\n0=Terminal -audit 0 -indirect \ +$host_name\n\n\ +[server-Terminal]\nname=Terminal server\ncommand=/usr/X11R6/bin/X \ +-audit 0\n\ +flexible=true\nhandled=true\nchooser=true" >>/mnt/etc/opt/gnome/gdm/gdm.conf +else + echo -e "\n[servers]\n0=Standard\n\n\ +[server-Standard]\nname=Standard server\ncommand=/usr/X11R6/bin/X\n\ +flexible=true\nhandled=true" >>/mnt/etc/opt/gnome/gdm/gdm.conf +fi +} + +# configure gdm as display manager +config_kdm () { +config_dm_entry yes + +} + +# consolefont +consolefont () { +echo -e "\tsetfont ${CONSOLE_FONT} >${LOGFILE} 2>&1\n" \ + >>/mnt/etc/${D_INITDIR}/boot.ld +} + +# acpi and powersave +config_acpi () { + local start_powersave=`expr $1 + 5` + local stop_powersave=`expr $1 - 1` + rllinker powersaved "$start_powersave" "$stop_powersave" +} + +# configure dbus (inter application communication for kde and gnome), hal +# (hardware abstraction layer - used e.g. by powersaved) and resmgr +# (resource manager - the user gets permissions to devices when loggin on) +config_dreshal () { +local start="$1" +local stop="$2" +if [ "x$start_dreshal" = "xyes" ]; then + if [ -f /mnt/etc/init.d/dbus ] ; then + strinfile "messagebus:" /mnt/etc/passwd || \ + echo "messagebus:x:100:101:User for D-BUS:/var/run/dbus:/bin/false" \ + >> /mnt/etc/passwd + testmkd /mnt/var/run/dbus + # chown 100:101 /mnt/var/run/dbus + rllinker "dbus" "$start" "$stop" + fi + if [ -f /mnt/etc/init.d/resmgr ] ; then + testmkd /mnt/var/run/resmgr/classes + start="0"`expr $start + 1` + stop="0"`expr $start - 1` + rllinker "resmgr" "$start" "$stop" + fi + if [ -f /mnt/etc/init.d/haldaemon ] ; then + strinfile "haldaemon:" /mnt/etc/passwd || \ + echo "haldaemon:x:101:102:User for haldaemon:/var/run/hal:/bin/false" \ + >> /mnt/etc/passwd + start="0"`expr $start + 1` + stop="0"`expr $start - 1` + rllinker "haldaemon" "$start" "$stop" + fi +fi +} + +# initialize boot.ld - skript to be executed during early system startup +# (before most of the normal boot init scripts) +# this script should operate like a normal runlevel script +d_mkbootld () { +case "$1" in + init) + echo -e "#!/bin/sh\n# skeleton of /etc/${D_INITDIR}/boot.ld written \ +from $0" >/mnt/etc/${D_INITDIR}/boot.ld + echo -e '\n. /etc/rc.status\nrc_reset\ncase "$1" in\n start)' \ + >>/mnt/etc/${D_INITDIR}/boot.ld + echo -e '\techo -n "Running post configuration required by initrd"' \ + >>/mnt/etc/${D_INITDIR}/boot.ld + chmod u+x /mnt/etc/${D_INITDIR}/boot.ld + ;; + close) + echo -e "\trc_status -v\n\t;;\n stop)\n\t;;\nesac\nrc_exit" \ + >>/mnt/etc/${D_INITDIR}/boot.ld + + ;; +esac +} |