diff options
Diffstat (limited to 'initrd/distro-specs/suse/functions-9.3')
-rw-r--r-- | initrd/distro-specs/suse/functions-9.3 | 441 |
1 files changed, 9 insertions, 432 deletions
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 -} |