diff options
| author | Dirk von Suchodoletz | 2006-09-18 13:58:18 +0200 |
|---|---|---|
| committer | Dirk von Suchodoletz | 2006-09-18 13:58:18 +0200 |
| commit | ebe256e4b71415fdc3e0cf37782222c02742ac63 (patch) | |
| tree | 3530e9d43a8769925f73eb364f2822f7d45f0554 /initrd/initrd-stuff/bin | |
| parent | Updated scripts for new path scheme (''opt'' prefix, see (diff) | |
| download | core-ebe256e4b71415fdc3e0cf37782222c02742ac63.tar.gz core-ebe256e4b71415fdc3e0cf37782222c02742ac63.tar.xz core-ebe256e4b71415fdc3e0cf37782222c02742ac63.zip | |
Hopefully completed #78 task, moved directory name (initramfs to
distinguish from ancient but not longer used Initial Ramdisk concept)
git-svn-id: http://svn.openslx.org/svn/openslx/trunk@380 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'initrd/initrd-stuff/bin')
| -rwxr-xr-x | initrd/initrd-stuff/bin/ddcprobe | bin | 28376 -> 0 bytes | |||
| -rwxr-xr-x | initrd/initrd-stuff/bin/dhcpmkconfig | 68 | ||||
| -rwxr-xr-x | initrd/initrd-stuff/bin/hwautocfg | 461 | ||||
| -rwxr-xr-x | initrd/initrd-stuff/bin/hwsetup | bin | 123832 -> 0 bytes | |||
| -rwxr-xr-x | initrd/initrd-stuff/bin/run-init | bin | 10832 -> 0 bytes | |||
| -rwxr-xr-x | initrd/initrd-stuff/bin/screenres | 226 | ||||
| -rwxr-xr-x | initrd/initrd-stuff/bin/servconfig | 521 |
7 files changed, 0 insertions, 1276 deletions
diff --git a/initrd/initrd-stuff/bin/ddcprobe b/initrd/initrd-stuff/bin/ddcprobe Binary files differdeleted file mode 100755 index 132a1671..00000000 --- a/initrd/initrd-stuff/bin/ddcprobe +++ /dev/null diff --git a/initrd/initrd-stuff/bin/dhcpmkconfig b/initrd/initrd-stuff/bin/dhcpmkconfig deleted file mode 100755 index ded4caaa..00000000 --- a/initrd/initrd-stuff/bin/dhcpmkconfig +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/sh -# -# universal (distro independent) IP configuration writer for several dhcp -# clients used within OpenSLX initramfs. The result is written in unified -# form to the /etc/machine-setup file -# -# Dirk von Suchodoletz <dvs@OpenSLX.com>, 03-09-2006 -# Lars Mueller, 23-06-2006 -# Oliver Tappe, 23-06-2006 -# -# (c) 2006 - RZ Universitaet Freiburg - -# client variable should be exported via calling function -cfgfile="/tmp/confviadhcp" -cfgmsg="\n## Configuration written by $0" -infomsg="# --> You are using $dhcl. With this client you are not \ -able to\n# transfer any vendor specific, self defined dhcp options. If \ -this is\n# intended, use dhclient instead or get them via tftp (to be \ -enabled\n# via kernel command line)." -# heavy debugging output in level 3 and above ... and on 13 -#FIXME: DEBUGLEVEL is not propagated to this file (at least for Ubuntu) -[ -z "$DEBUGLEVEL" ] && DEBUGLEVEL=0 -[ $DEBUGLEVEL -gt 3 -a $DEBUGLEVEL -lt 8 -o $DEBUGLEVEL -eq 13 ] && \ - set -x -case $0 in - *dhcpcd*) - dhcl="dhcpcd"; echo -e "$cfgmsg\n$infomsg" >>/tmp/confviadhcp - sed -e "s,',\",g;s,IPADDR,clientip,;s,NETMASK,subnet_mask," \ - -e "s,GATEWAY,gateway,;s,BROADCAST,broadcast_address," \ - -e "s,HOSTNAME,host_name,;s,DOMAIN,domain_name," \ - -e "s,ROOTPATH,root_path,;s,DNS,domain_name_servers," \ - -e "s,NTPSERVERS,ntp_servers,;s,DHCPSID,serverip," \ - -e "s,WINSSERVERS,netbios_name_servers," \ - -e "s,NETWORK,network," \ - -e "s,DHCP..ADDR.*,,;s,.*TIME=.*,,;s,CL.*,,;/^$/d" \ - -e "s,INTER.*,,;s,DHCPSNAME.*,," /var/lib/dhcp/dhcpcd-eth0.info \ - >>$cfgfile - ;; - *dhclient*) - if [ $reason = "BOUND" ] ; then - echo -e "$cfgmsg\n# --> You are using dhclient. If you wish to \ -transfer other vendor/user\n# specific variables, you have to add \ -them in functions and in\n# dhcpmkconfig script or use tftp (to be \ -enabled via kernel command\n# line)." >>$cfgfile - set | sed -n -e '/^new/p' | sed \ - -e "s,^new_,,;s,fixed_address,clientip," \ - -e "s,routers,gateway,;s,dhcp_server_identifier,serverip," \ - -e "s,.*_t[iy][mp]e.*,,;s,.*_message_.*,,;/^$/d" \ - -e "s,language=,country=,;s,ip_address,clientip," \ - >>$cfgfile - fi - ;; - *pump*) - dhcl="pump"; echo -e "$cfgmsg\n$infomsg" >>$cfgfile - ;; - *udhcpc*) - dhcl="udhcpc"; echo -e "$cfgmsg\n$infomsg" >>$cfgfile - unset infomsg HOME IFS mask lease interface - set | sed \ - -e "s,^P.*,,;s,ntpsrv,ntp_servers,;s,ip,clientip," \ - -e "s,serverid,serverip,;s,subnet,subnet_mask," \ - -e "s,router,gateway,;s,hostname,host_name," \ - -e "s,dns,domain_name_servers,;s,domain,domain_name," \ - -e "s,broadcast,broadcast_address,;s,dhc.*,,;/^$/d" \ - >>$cfgfile - ;; -esac - diff --git a/initrd/initrd-stuff/bin/hwautocfg b/initrd/initrd-stuff/bin/hwautocfg deleted file mode 100755 index edf77430..00000000 --- a/initrd/initrd-stuff/bin/hwautocfg +++ /dev/null @@ -1,461 +0,0 @@ -#!/bin/sh -# -# universal (distro independent) hardware autoconfiguration script for -# OpenSLX linux diskless clients, using hwconfig from knoppix as base tool -# -# Dirk von Suchodoletz <dvs@OpenSLX.com>, 03-09-2006 -# -# (c) 2003 - 2006 - RZ Universitaet Freiburg -# (c) 2006 - OpenSLX.org - -# local functions used within hwautocfg -displaysetup () { -# (temporary) configuration file -local xfc=$1 -# define some defaults -local HSYNCRANGE="31.5-63.5" -local VSYNCRANGE="60-90" -local DEFAULTMODES='"1024x768" "800x600" "640x480"' -local DEFAULTCOLORDPT=24 -# set variables representing the xorg.conf sections (version 6.9.x) -local Module='\tLoad\t\t"dbe"\n -\tLoad\t\t"extmod"\n -\tLoad\t\t"type1"\n -\tLoad\t\t"speedo"\n -\tLoad\t\t"freetype"\n -\tLoad\t\t"v4l"' -local ServerFlags='\tOption\t\t"AllowMouseOpenFail"\n -\tOption\t\t"blank time"\t\t"5"\n -\tOption\t\t"standby time"\t\t"10"\n -\tOption\t\t"suspend time"\t\t"15"\n -\tOption\t\t"off time"\t\t"20"' -local Files='\tRgbPath\t\t"/usr/X11R6/lib/X11/rgb"\n -\tModulePath\t"/etc/X11/modules"\n -\tModulePath\t"/usr/X11R6/lib/modules"\n -\tFontPath\t"/usr/X11R6/lib/X11/fonts/misc/:unscaled"\n -\tFontPath\t"/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"\n -\tFontPath\t"/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"' -local InputDevice='\tIdentifier\t"Keyboard1"\n -\tDriver\t\t"keyboard"\n -\tOption\t\t"XkbRules"\t\t"xfree86"\n -\tOption\t\t"XkbLayout"\t\t"XKEYBOARD"\n -\tOption\t\t"XkbModel"\t\t"pc105"' -local InputMouseDef='\tIdentifier "Mouse1"\n -\tDriver\t\t"mouse"\n -\tOption\t\t"Protocol"\t\t"imps/2"\n -\tOption\t\t"Device"\t\t"/dev/input/mice"\n -\tOption\t\t"Emulate3Buttons"\n -\tOption\t\t"ZAxisMapping"\t\t"4 5"\n -\tOption\t\t"Buttons"\t\t"3"' -local InputMouseSyn='\tIdentifier "Mouse1"\n -\tDriver\t\t"synaptics"\n -\tOption\t\t"Protocol"\t\t"explorerps/2"\n -\tOption\t\t"Device"\t\t"/dev/input/mice"\n -\tOption\t\t"Emulate3Buttons"\t"on"\n -\tOption\t\t"Buttons"\t\t"5"\n -\tOption\t\t"InputFashion"\t\t"Mouse"\n -\tOption\t\t"SHMConfig"\t\t"on"\n -\tOption\t\t"ZAxisMapping"\t\t"4 5"' -local Monitor='\tIdentifier "Default"\n -\tModelName\t"MODEL"\n -\tOption\t\t"CalcAlgorithm"\t"CheckDesktopGeometry"\n -\tHorizSync\tHS\n -\tVertRefresh\tVS\n -\tOption\t"DPMS"\t\t"true"' -local Device='\tIdentifier\t"StdGraphics"\n -\tVendorName\t"XDESC"\n -\tDriver\t\t"XMODULE"' -local Screen='\tIdentifier\t"Screen 1"\n -\tDevice\t\t"StdGraphics"\n -\tMonitor\t\t"Default"\n -\tDefaultColorDepth CDP' -local ServerLayout='\tIdentifier\t"Simple Layout"\n -\tScreen\t\t"Screen 1"\n -\tInputDevice\t"Keyboard1"\t"CoreKeyboard"\n -\tInputDevice\t"Mouse1"\t"CorePointer"\n -\tOption\t\t"BlankTime"\t"5"\n -\tOption\t\t"StandbyTime"\t"10"\n -\tOption\t\t"SuspendTime"\t"20"\n -\tOption\t\t"OffTime"\t"30"' -local DRI='\tGroup\t\t"video"\n -\tMode\t\t0666' - -# displayvars may overwrite the above settings -displayvars - -if [ -n "$hw_graphic" ] ; then - DRV=${hw_graphic% *} - CDP=${hw_graphic##* } - if [ -z "$DRV" ] ; then error "$hcfg_gfxdrv" nonfatal - XMODULE=vesa - fi -fi -if [ -z "$CDP" ] ; then error "$hcfg_gfxcdp" nonfatal - CDP=${DEFAULTCOLORDPT} -fi - -if [ -n "$hw_monitor" ] ; then - # just cut all starting from k(Hz) ... - HS=${hw_monitor%k*} - VS=${hw_monitor%Hz*} - [ "${hw_monitor}" == "$VS" ] && VS=${hw_monitor%hz*} - VS=${VS##* } - SCR_MODES="\"${hw_monitor##* }\"" -else - # gather information about the monitor capabilities - screenres > /tmp/screenres - VERTSR=`cat /tmp/screenres | sed -n \ - '/Vertical Frequency Range/s/[^0-9]* \([0-9-]*\)/\1/p'` - HORISR=`cat /tmp/screenres | sed -n \ - '/Horizontal Frequency Range/s/[^0-9]* \([0-9-]*\)/\1/p'` - HS=$HORISR - VS=$VERTSR - # compute max resolution - SCR_MODES=`cat /tmp/screenres | sed -n \ - '/Recommended Screen Modes:/s/[^"]*\(.*\)/\1/p'` -fi - -if [ -z "$HS" ] ; then #error "$hcfg_hfrq" nonfatal - HS=${HSYNCRANGE} -fi -if [ -z "$VS" ] ; then #error "$hcfg_vfrq" nonfatal - VS=${VSYNCRANGE} -fi -if [ -z "$SCR_MODES" ] ; then #error "$hcfg_res" nonfatal - SCR_MODES=${DEFAULTMODES} -fi -monmanual=yes - -# check for special X driver (fglrx, nvidia, ...) -check_glx - -# finally write config file -echo -e "#\n# autogenerated X hardware configuration by $0\n# \ -Dirk von Suchodoletz <dirk@goe.net>, $date" >$xfc -echo -e "# DO NOT EDIT THIS FILE BUT '$0' INSTEAD!\n#" \ - >>$xfc -for section in Files ServerFlags Module InputDevice Monitor \ - Screen Device ServerLayout DRI ; do - echo "Section \"$section\"" >>$xfc - case "$section" in - Files) - echo -e ${Files} >>$xfc - # check for 64bit CPU/installation (fixme!!) - [ -n "$amd64" ] && \ - echo '"\tModulePath\t"/usr/X11R6/lib64/modules"\n' >>$xfc - for i in ${D_XFONTPATH} ; do - echo -e "\tFontPath\t\"$i/\"" >>$xfc ; done - ;; - ServerFlags) - echo -e ${ServerFlags} >>$xfc - ;; - Device) - echo -e ${Device} | \ - sed -e "s,XMODULE,${XMODULE}," -e "s%XDESC%${XDESC}%" >>$xfc - # write TV config - no problem, if no TV is connected - [ -n "$TVOUT" ] && echo -e $TVOUT >>$xfc - [ x$DRV = "xs3virge" ] && \ - echo -e "\tOption\t\t\"XVideo\" \"Off\"\n" >>$xfc - [ x$DRV = "xnvidia" ] && { - echo -e "\tOption\t\t\"NvAGP\" \"3\"" >>$xfc - echo -e "\tOption\t\t\"NoLogo\" \"1\"" >>$xfc ; } - ;; - Module) - echo -e ${Module} >>$xfc - #[ "x$DRM" = "xyes" ] && \ - echo -e "\tLoad\t\t\"dri\"" >>$xfc - [ x$GLX != "xno" ] && \ - echo -e "\tLoad\t\t\"glx\"" >>$xfc - ;; - Monitor) - echo -e ${Monitor} | \ - sed -e "s,HS,${HS},g" -e "s,VS,${VS},g" >>$xfc - ;; - InputDevice) - echo -e ${InputDevice} | sed -e "s,XKEYBOARD,${XKEYBOARD},g" \ - >>$xfc - [ "${XKEYBOARD}" = "de" ] && \ - echo -e '\tOption\t\t"XkbVariant"\t\t"nodeadkeys"' >>$xfc - echo -e "EndSection\n\nSection \"$section\"" >>$xfc - # if special synaptics touchpad was detected and specific driver - # is present - if strinfile "synaptics" /tmp/hwsetup.info && \ - test -e /mnt/usr/X11R6/lib/modules/input/synaptics_drv.o ; then - echo -e $InputMouseSyn >>$xfc - else - echo -e $InputMouseDef >>$xfc - fi - ;; - Screen) - echo -e ${Screen} | sed -e "s,CDP,${CDP}," >>$xfc - for BPP in 15 16 24 - do echo -e '\tSubSection "Display"\n\t\tDepth\t'\ - $BPP'\n\t\tModes\t'$SCR_MODES'\n\tEndSubSection' >>$xfc - [ $BPP = "$CDP" ] && break - done - ;; - ServerLayout) - echo -e ${ServerLayout} >>$xfc - ;; - DRI) - echo -e ${DRI} >>$xfc - ;; - esac - echo -e "EndSection\n" >>$xfc -done -} - -####################################################################### -# script starts here - -# functions common for all distros -. /etc/functions -# functions common for all distros, messages contains all error and -# info output -. /etc/messages -# load distro specific configuration variables and functions. distro -# specific functions may overwrite functions defined in /etc/functions -. /etc/sysconfig/config -. /etc/distro-functions - -# script run timer -[ $DEBUGLEVEL -eq 8 ] && echo "** HW setup started at $(sysup)" - -# heavy debugging output in level 3 and above and specific for 11 -[ $DEBUGLEVEL -gt 3 -a $DEBUGLEVEL -lt 8 -o $DEBUGLEVEL -eq 11 ] && \ - set -x - -# set X11 configuration file -if [ -n "${D_XF86CONFFILE}" ] ; then - D_XF86CONFFILE="/mnt/${D_XF86CONFFILE}" -else - D_XF86CONFFILE="/mnt/etc/X11/xorg.conf" - error "$hcfg_xcfg" nonfatal -fi - -# USB core is needed for presence of /proc/bus/usb -modprobe ${MODPRV} usbcore & - -# "drivers" (pseudo, placeholder strings, ...) to exclude from loading -# depending on distro more hw modules have to be excluded too. use the -# D_HWMODTOIGNORE for that purpose -DRIVERLIST=" disabled unknown ignore pcspkr synaptics keybdev kanotix\ - ${D_HWMODTOIGNORE} " -# driver blacklist (real modules which fail to load) -DRIVERLIST=${DRIVERLIST}"hw_random genericwheelusb " -# hack for pseudo modules (not to load) hopefully "usbcore" is present -# as a module, might be exchanged with any other existing ... -for i in $DRIVERLIST ; do - echo -e "alias\t$i\tusbcore" >> /etc/modprobe.conf -done - -# load kernel module for ps2 mice -[ -f /lib/modules/${KERNEL}/kernel/drivers/input/mouse/psmouse.ko ] && \ - modprobe ${MODPRV} psmouse - -# and map the mousehandler to /dev/input/mice -[ -f /lib/modules/${KERNEL}/kernel/drivers/input/mousedev.ko ] && \ - modprobe ${MODPRV} mousedev - -# start the knoppix hardware autodetection tool -( hwsetup -v > /tmp/hwsetup.info && echo "hwsetup" > /tmp/hwrun1 ) & - -# ACPI configuration - at least not needed with SuSE 9.3/10.0 -# needed for other distros? - -# AGP configuration (agpgart and chipset specific driver) -modprobe ${MODPRV} agpgart || \ - modprobe ${MODPRV} agpgart agp_try_unsupported=1 - -# wait for /tmp/hwsetup.info to appear -waitfor /tmp/hwrun1 50000 || \ - error "$hcfg_hwsetup" -# load ide drivers first, takes a while to initialize -for DRIVER in cmd64x hpt366 piix slc90e66 cs5520 it821x rz1000 \ - triflex aec62xx cs5530 ns87415 sc1200 trm290 alim15x3 \ - cy82c693 opti621 serverworks via82cxxx amd74xx pdc202xx_new \ - siimage atiixp hpt34x pdc202xx_old sis5513; do - strinfile " ${DRIVER}" /tmp/hwsetup.info && { - IDE="yes" - modprobe ${MODPRV} ${DRIVER} & - DRIVERLIST="${DRIVERLIST} ${DRIVER}"; } -done -# check for IDE/SCSI (SATA) -for DRIVER in ata_piix sata_via sata_nv sata_sil sata_sis sata_svw \ - sata_sx4 sata_uli sata_vsc sata_qstor sata_promise sata_mv; do - strinfile " ${DRIVER}" /tmp/hwsetup.info && { - #SCSIIDE="yes" - modprobe ${MODPRV} ${DRIVER} & - DRIVERLIST="${DRIVERLIST} ${DRIVER}"; } -done -# check for USB, pcmcia and ieee1394 hardware drivers -for DRIVER in ohci-hcd uhci-hcd ehci-hcd ohci1394; do - strinfile " ${DRIVER}" /tmp/hwsetup.info && { - USB="yes" - modprobe ${MODPRV} ${DRIVER} - DRIVERLIST="${DRIVERLIST} ${DRIVER}"; } -done -# load usbhid (for USB keyboard/mouse) or remove usbcore module if USB -# not present -if [ -n "$USB" ] ; then - modprobe ${MODPRV} usbhid & -else rmmod usbcore -fi -# remove unneeded network card modules -for DRIVER in ${NWMODULES}; do - strinfile " ${DRIVER}" /tmp/hwsetup.info || { - rmmod ${DRIVER} & - DRIVERLIST="${DRIVERLIST} ${DRIVER}"; } -done -# check for PCMCIA / cardbus stuff -for DRIVER in yenta_socket i82365 pd6729 tcic; do - strinfile ${DRIVER} /tmp/hwsetup.info && { - modprobe ${MODPRV} ${DRIVER} - DRIVERLIST="${DRIVERLIST} ${DRIVER}" - PCMCIA="yes"; } -done -# should we check for card reader modules too? - -if [ -n "${PCMCIA}" ] ; then - modprobe ${MODPRV} ds -fi -# sound card setup (alsa and oss compatibility drivers) -if [ -f /etc/sysconfig/sound ] ; then - . /etc/sysconfig/sound -else DRIVER="snd-dummy" -fi -# problem with a specific module not disabled (via above trick) when -# busybox is used -# rmmod snd_atiixp_modem snd_atiixp -modprobe ${MODPRV} ${DRIVER} -DRIVERLIST="${DRIVERLIST} ${DRIVER} " -modprobe ${MODPRV} snd-pcm-oss -modprobe ${MODPRV} snd-mixer-oss - -# rerun the knoppix hardware autodetection tool for USB and ide devices -# like dvd or harddisk - wait a few seconds so hopefully the ide driver -# is initialized -test -f /proc/bus/usb/devices || mount -n -t usbfs usbfs /proc/bus/usb -[ -n "$IDE" ] && modprobe -q ide_generic 2>/dev/null -usleep 10 && hwsetup -v > /tmp/hwsetup.info -# remaining drivers listed in /tmp/hwsetup.info -cat /tmp/hwsetup.info| while read LINE ; do - if strinstr "driver:" "${LINE}"; then - DRIVER=${LINE##driver: } - if ! strinstr " ${DRIVER} " "${DRIVERLIST}"; then - strinstr "Card:" "${DRIVER}" || strinstr "ps/2" "${DRIVER}" || { - modprobe ${MODPRV} ${DRIVER} & - usleep 8; } - DRIVERLIST="${DRIVERLIST} ${DRIVER}" - fi - fi -done -# check if USB mouse and/or keyboard is connected and remove usbhid if -# not -strinfile "genericwheelusb" /tmp/hwsetup.info || \ - (strinfile "keybdev" /tmp/hwsetup.info || rmmod usbhid) - -# load IDE high level drivers -if [ -n "$IDE" ] ; then - # you might want to check /etc/sysconfig/floppy for more info - strinfile "ZIP" /tmp/hwsetup.info && modprobe ${MODPRV} ide-floppy - strinfile "CDROM" /tmp/hwsetup.info && modprobe ${MODPRV} ide-cd - strinfile "HD" /tmp/hwsetup.info && modprobe ${MODPRV} ide-disk -fi - -# not rather precise ... -if strinfile "SCSI" /tmp/hwsetup.info ; then - strinfile "CDROM" /tmp/hwsetup.info && { modprobe ${MODPRV} sr_mod; - modprobe ${MODPRV} sg; } - strinfile "HD" /tmp/hwsetup.info && modprobe ${MODPRV} sd_mod - strinfile "SCANNER" /tmp/hwsetup.info && \ - echo -e 'KERNEL=="sg*",\t\tNAME="%k", GROUP="disk", MODE="666"' \ - >> /mnt/etc/udev/rules.d/04-scanner.rules -fi -# fixme - psmouse entladen, falls nicht vorhanden - -# configure some variables from configuration file - wait for dhcp or ldap -# confiurator to complete -cfgcomplete -. /etc/machine-setup - -# run localizator and configure keyboard and console fonts -DEFKEYTABLE="de-latin1-nodeadkeys" -localization $country -if [ -z "${KEYTABLE}" ] ; then - error "$hcfg_keyb" nonfatal - KEYTABLE=${DEFKEYTABLE} -fi - -# run X11 / Xorg configurator if no xorg.conf file was provided by -# ConfigTGZ (check for /rootfs/${D_XF86CONFFILE#/mnt}) -if [ -f /rootfs${D_XF86CONFFILE#/mnt} ] ; then - echo "ready" > /tmp/xready -else - . /etc/sysconfig/xserver >/dev/null 2>&1 || error "$hcfg_hwsetup" nonfatal - ( displaysetup /etc/xorg.conf; echo "ready" > /tmp/xready ) & -fi - -# get idea of availabe harddisk partitions, put swap partitions into -# (/mnt)/etc/fstab and format and mount partitions of type 44 (unknown) -for hd in $(cat /tmp/hwsetup.info|sed -n -e '/HD$/,/device:/p'| \ - sed -n -e '/device:/p' | sed -e 's/device: //') ; do - fdisk -l /dev/$hd| sed -n "/^\/dev\//p" > /tmp/hd_part - for hdpartnr in $(cat /tmp/hd_part | \ - sed -n -e "/ 82 /p"|sed -e "s/[[:space:]].*//") ; do - echo -e "$hdpartnr\tswap\t\tswap\t\tdefaults\t 0 0" >> /tmp/fstab - done - # we use special non assigned partition type (id44) for harddisk scratch - # space, thus no normal filesystem will be incidentally deleted or - # corrupted - for hdpartnr in $(cat /tmp/hd_part | \ - sed -n -e "/ 44 /p"|sed -e "s/[[:space:]].*//") ; do - # ext2fs_check_if_mount message supressed - ( mkfs.ext2 -Fq $hdpartnr 2>/dev/null - umount /mnt/tmp 2>/dev/null - # if mounting of temp partion fails fall back to tmpfs on /tmp - mount -n -o nocheck,noexec $hdpartnr /mnt/tmp 2>/dev/null || \ - mount -n -t tmpfs none /mnt/tmp - echo "$hdpartnr is mounted to /tmp" > /tmp/tmpready ) & - echo -e "$hdpartnr\t/tmp\t\text2\t\tdefaults\t 0 0" >> /tmp/fstab - part44=yes - break - done - # put detected linux partitions into /etc/fstab with "noauto" - for hdpartnr in $(cat /tmp/hd_part | \ - sed -n -e "/ 83 /p"|sed -e "s/[[:space:]].*//") ; do - mkdir -p /mnt/media/${hdpartnr#/dev/*} 2>/dev/null - echo -e "$hdpartnr\t/media/${hdpartnr#/dev/*}\tauto\t\tnoauto,\ -noexec\t 0 0" >> /tmp/fstab - done -done -# determine if tmp preparation should wait for format/mount or not -[ -z "$part44" ] && echo "finished" > /tmp/tmpready - -# wait for completion of clients root filesystem in /mnt -waitfor /tmp/fscmpl 40000 -[ -f /tmp/fstab ] && cat /tmp/fstab >> /mnt/etc/fstab - -# add entries to initialize keytable and consolefont to boot.ld -# postpone some commands into normal bootup environment -echo -e "\t# entries added by $0: $date" >> /mnt/etc/${D_INITDIR}/boot.ld -[ -n "${KEYTABLE}" ] && keytable -[ -n "${CONSOLE_FONT}" ] && consolefont - -# finalize X configuration -# only if X is link itself (normally to /var/X11R6/bin/X) check!! -link=`ls -l /mnt/usr/X11R6/bin/X 2>/dev/null` -if strinstr "/var/X11R6" "$link" ; then - testmkd /mnt/var/X11R6/bin - for i in /usr/X11R6/bin/Xorg /usr/X11R6/bin/XFree86 ; do - [ -e "/mnt/$i" ] && { ln -sf $i /mnt/var/X11R6/bin/X; break; } - done -fi -# wait for completion of Xorg configuration -waitfor /tmp/xready 10000 -cp /etc/xorg.conf ${D_XF86CONFFILE} - -# script run timer -[ $DEBUGLEVEL -eq 8 ] && echo "** HW setup finished at $(sysup)" - -echo "finished" > /tmp/hwcfg diff --git a/initrd/initrd-stuff/bin/hwsetup b/initrd/initrd-stuff/bin/hwsetup Binary files differdeleted file mode 100755 index 1b6ab300..00000000 --- a/initrd/initrd-stuff/bin/hwsetup +++ /dev/null diff --git a/initrd/initrd-stuff/bin/run-init b/initrd/initrd-stuff/bin/run-init Binary files differdeleted file mode 100755 index 556caeb6..00000000 --- a/initrd/initrd-stuff/bin/run-init +++ /dev/null diff --git a/initrd/initrd-stuff/bin/screenres b/initrd/initrd-stuff/bin/screenres deleted file mode 100755 index 4a9f5fd9..00000000 --- a/initrd/initrd-stuff/bin/screenres +++ /dev/null @@ -1,226 +0,0 @@ -#!/bin/sh -# -# Author(s): Felix Endres -# Dirk von Suchodoletz, 04-07-2006 -# -# Copyright: (c) 2006 - RZ Universitaet Freiburg -# -# Description: -# -# This script gives information about recommended display modes for the -# attached monitor - -# The script tries to guess whether the attached monitor is a lcd or -# a crt based on age, display size and pixel size. -# For CRTs the script tries to determine which screen modes are -# convenient to work with: -# - High resolutions are not recommended for small displays, because -# everything on the screen would be too tiny. -# - The highest resolution is not recommended if the refresh rate is -# not known or lower than 80 Hz -# - Though the mode 1400x1050 never shows up in the ddc info, it is -# Recommended as a replacement for 1600x1200 if that one is not. -# - -## For CRTs determine recommended screen modes #################################################### - -# enable debugging in higher debug levels -[ -z "$DEBUGLEVEL" ] && DEBUGLEVEL=0 -[ $DEBUGLEVEL -gt 1 ] && DEBUG="yes" -# heavy debugging output in level 3 and above ... -[ $DEBUGLEVEL -gt 3 -a $DEBUGLEVEL -lt 8 -o $DEBUGLEVEL -eq 14 ] && set -x - -# Define some default output values if the script fails to find better values -# Empty defaults, s.t. hwautocfg defines the defaults -default_horiz_freq_range_khz="" #"31.5-63.5" -default_vert_freq_range_hz="" #"60-90" -default_recommended_screen_modes="" #'"1024x768" "800x600" "640x480"' - - -calculate_max_horizontal_freq () { - highest_resolution=` echo $screen_resolutions | sed -n 's/"\([0-9x]*\)".*/\1/p'` - [ -z $highest_resolution ] && return # if the highest resolution can not be extracted, the frequency can not be calculated - freq_for_highest_res=`sed -n /$highest_resolution'/s/[^@]*@\([0-9]\{2,3\}\).*/\1/p' $tmp_ddcprobe_output | sort -nr|sed -n 1p` - if [ -z "$freq_for_highest_res" ]; then - #Search for a number followed by the term "Hz" in the same line as the highest resolution - freq_for_highest_res=`sed -n /$highest_resolution'/s/.*[^a-zA-Z0-9]\([0-9]\{2,3\}\)[ \t]*[Hh][Zz].*/\1/p' $tmp_ddcprobe_output | sort -nr|sed -n 1p` - fi - [ -n "$DEBUG" ] && echo " # Vertical Frequency for highest resolution.: $freq_for_highest_res" - if [ -z "$freq_for_highest_res" ]; then - [ -n "$DEBUG" ] && echo "Vertical Frequency not available. Calculation not possible. Return default value." - horiz_freq_range_khz=$default_horiz_freq_range_khz - return - fi - - highest_res_line_count=` echo $highest_resolution | sed -n 's/.*[0-9]*x//p'` - [ -n "$DEBUG" ] && echo " # of lines in highest res.: $highest_res_line_count" - horiz_freq_khz=$(( $highest_res_line_count * $freq_for_highest_res / 950)) # 950 = 0,95 * 1000 (invisible range * Kilohertz) - [ -n "$DEBUG" ] && echo " Assumed Horizontal Frequency: $horiz_freq_khz" - horiz_freq_range_khz="31.5-$horiz_freq_khz" -} -determine_recommended_crt_modes () { - ## Introduce the standard resolution 1400x1050 as it is seldom in the list the monitors output, though supported - [ -n "$DEBUG" ] && echo "Screen Modes: $screen_resolutions" - if [ -z "`echo $screen_resolutions|sed -n /1400/p`" ]; then - [ -n "$DEBUG" ] && echo "Inserting 1400x1050 (if 1600x.... is present" - # Insert "1400x1050" after 1600x.... (of course only if a 1600er res. is there because 1400x1050 would otherwise be listed) - screen_resolutions=`echo $screen_resolutions|sed 's/\(.*"1600x[0-9]*"\)\(.*\)/\1 "1400x1050"\2/'` - fi - # For CRTs check if the highest frequency can be displayed with reasonable refresh rate (> 80Hz) - highest_resolution=` echo $screen_resolutions | sed -n 's/"\([0-9x]*\)" .*/\1/p'` - #Search for an @ in the same line as the highest resolution; FIXME: Sort only considers the vertical resolution - freq_for_highest_res=`sed -n /$highest_resolution'/s/[^@]*@\([0-9]\{2,3\}\).*/\1/p' $tmp_ddcprobe_output | sort -nr|sed -n 1p` - #echo $freq_for_highest_res - if [ -z "$freq_for_highest_res" ]; then - #Search for a number followed by the term "Hz" in the same line as the highest resolution - freq_for_highest_res=`sed -n /$highest_resolution'/s/.*[^a-zA-Z0-9]\([0-9]\{2,3\}\)[ \t]*[Hh][Zz].*/\1/p' $tmp_ddcprobe_output | sort -nr|sed -n 1p` - fi - # Assure that the highest resolution is removed if we do not know at what refresh rate it is displayed - # Chances are it would be flickering at that resolution - if [ -z "$freq_for_highest_res" ]; then - freq_for_highest_res=75 # Assume 75 Hz to be the least a monitor is able to do. - fi - # Cut the first resolution if it is displayed with less than 85Hz - # It's assumed here, that the second best resolution will be displayed with > 85Hz - if [ $freq_for_highest_res -lt 85 ]; then - screen_resolutions=` echo $screen_resolutions | sed -n 's/"[0-9x]*" \(.*\)/\1/p'` - fi - define_max_recommended_horizontal_pixel_count # sets max_wanted_resolution -# max_wanted_resolution="$?" - [ -n "$DEBUG" ] && echo " The screen is too small for resolutions greater than ${max_wanted_resolution}x...." - # Fetch the first resolution in the list - new_highest_resolution=` echo $screen_resolutions | sed -n 's/"\([0-9x]*\)" .*/\1/p'` - [ -n "$DEBUG" ] && echo " new highest resolution: $new_highest_resolution" - new_highest_horizontal_resolution=`echo $new_highest_resolution | sed -n 's/\([0-9]*\)x.*/\1/p'` - [ -n "$DEBUG" ] && echo " new_highest_horizontal_resolution: $new_highest_horizontal_resolution" - while [ $new_highest_horizontal_resolution -gt $max_wanted_resolution ]; do - # Cut the highest resolution because the display size is to small for it to be convenient - screen_resolutions=` echo $screen_resolutions | sed -n 's/"[0-9x]*" \(.*\)/\1/p'` - new_highest_resolution=` echo $screen_resolutions | sed -n 's/"\([0-9x]*\)".*/\1/p'` - [ -n "$DEBUG" ] && echo " new highest resolution: $new_highest_resolution" - new_highest_horizontal_resolution=`echo $new_highest_resolution | sed -n 's/\([0-9]*\)x.*/\1/p'` - [ -n "$DEBUG" ] && echo " new_highest_horizontal_resolution: $new_highest_horizontal_resolution" - done - ########## -} - -define_max_recommended_horizontal_pixel_count () { - ## To high resolutions are not wanted on small screens ##################################### - # For 15 inch and below - if [ $screen_size_in_qcm -lt 704 ]; then max_wanted_resolution=1024 - # For 15" to 17" - elif [ $screen_size_in_qcm -lt 918 ]; then max_wanted_resolution=1280 - # For 17" to 19" - elif [ $screen_size_in_qcm -gt 1121 ]; then max_wanted_resolution=1400 - else max_wanted_resolution=50000 # Accept any resolution on Monitors above 19" - fi - [ -n "$DEBUG" ] && echo " Max. recommended resolution: $max_wanted_resolution" - #return $max_wanted_resolution -} - - -#TODO command line arguments processing (--help --defaults) -tmp_ddcprobe_output=$1 -if [ -z $tmp_ddcprobe_output ]; then - tmp_ddcprobe_output=/tmp/ddcprobe_output - ddcprobe | sed "y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/" \ - > ${tmp_ddcprobe_output} -fi -# fixme: parameter I is not compatible with busybox - how to circumvent? -failed=`sed -n '/edid.*failed/p' ${tmp_ddcprobe_output}` -if [ -n "$failed" ]; then - echo "Error: Display seems to be incapable of providing DDC Information" - # Print Defaults OPTIMIZEME: The defaults could be command line parameters - echo "Recommended Screen Modes: $default_recommended_screen_modes" - echo "Horizontal Frequency Range (kHz): $default_horiz_freq_range_khz" - echo "Vertical Frequency Range (Hz): $default_vert_freq_range_hz" - exit 1; -fi -screen_size_in_qcm=$((`sed -n "s/screen.*size[^0-9]*\([0-9]*\)[^0-9]*\([0-9]*\).*/\1 * \2/p" ${tmp_ddcprobe_output}`)) -max_pixels=$((`echo "\`sed -n '/edid/,$s/.*[ \t]\([0-9]\{3,4\}\)x\([0-9]\{3,4\}\).*/\2 * \1/p' ${tmp_ddcprobe_output}|sort -rn| sed -n 1p\`"`)) -manufacturing_year=`sed -n 's/manufact.*\([12][90][0-9][0-9]\).*/\1/p' ${tmp_ddcprobe_output}` - -[ -n "$DEBUG" ] && echo "Maximal Resolution: $max_pixels" -# 640x400 (below) -if [ -z $screen_size_in_qcm ] || [ -z $manufacturing_year ] || [ 256000 -gt $max_pixels ] ; then - echo "Error: Display seems to be incapable of providing all relevant DDC Information" - # Print Defaults OPTIMIZEME: The defaults could be command line parameters - echo "Recommended Screen Modes: $default_recommended_screen_modes" - echo "Horizontal Frequency Range (kHz): $default_horiz_freq_range_khz" - echo "Vertical Frequency Range (Hz): $default_vert_freq_range_hz" - exit 1; -fi - -## Determine probabilitiy for TFT ########################################### -pix_per_qcm=$(($max_pixels/$screen_size_in_qcm)) -echo "Display size: $screen_size_in_qcm qcm" -echo "Max Pixels per qcm: $pix_per_qcm" -echo "Manufacturing year: $manufacturing_year" -# Set probability for having an LCD by means of age and size -# 15" ~ 30.6cm x 23cm -# 17" ~ 34cm x 27cm (17,1") -# 19" ~ 38,6cm x 29cm -# if older than 1998 it is most probably not a LCD -if [ $manufacturing_year -lt 1998 ] ;then tft_probability=1 -# if older than 2002 is probably no LCD, especially if larger than 15" -elif [ $manufacturing_year -lt 2002 ];then - if [ $screen_size_in_qcm -gt 704 ]; then tft_probability=1 - else tft_probability=20 - fi -# if older than 2003 is maybe no LCD, yet for sure if larger than 17" -elif [ $manufacturing_year -lt 2003 ];then - if [ $screen_size_in_qcm -gt 918 ]; then tft_probability=5 - else tft_probability=40 - fi -# if older than 2005 is probable an LCD, but not if larger than 19" -elif [ $manufacturing_year -lt 2005 ];then - if [ $screen_size_in_qcm -gt 1121 ]; then tft_probability=10 - else tft_probability=60 - fi -# in 2005 few people would buy a (new) CRT -elif [ $manufacturing_year -lt 2006 ];then tft_probability=90 -# after 2006 nobody would buy a new CRT -else tft_probability=99 -fi -if [ $pix_per_qcm -gt 1599 ]; then tft_probability=$(($tft_probability - 15)) -else tft_probability=$(($tft_probability + 15)) -fi -if [ -n "$DEBUG" ];then - echo -ne "Is a TFT: " - if [ $tft_probability -ge 50 ]; then - echo -n "true" - else echo -n "false" - fi - echo " ($tft_probability)" -fi - -# Find the lines with two times 3 to 4 digits delimited by an x. Print with the two values reverted, so sort sorts w.r.t the 2nd value. Then swap back -# Minor problem: If two Modes are found in a line, the second one is used. -screen_resolutions=`sed -n '/edid/,$s/\(.*[ \t]\)*\([0-9]\{3,4\}\) *x *\([0-9]\{3,4\}\).*/\3 x \2/p' ${tmp_ddcprobe_output}| sort -rn | sort -rnu | sed -n 's/\([0-9]\{3,4\}\) x \([0-9]\{3,4\}\).*/"\2x\1"/p' ` -screen_resolutions=`echo $screen_resolutions` -echo "Supported Screen Modes: $screen_resolutions" - - - -######## Vertical and horizontal frequency ranges ######### -# find a line with the word range and and numbers with a minus in the middle (e.g 123-321) -frequency_ranges=`sed '/range/!d;s/[^0-9]*\([1-9][0-9]\)[ \t]*-[ \t]*\([1-9][0-9]*\)[^0-9]*\([1-9][0-9]*\)[ \t]*-[ \t]*\([1-9][0-9]*\).*/\1-\2 \3-\4/' ${tmp_ddcprobe_output}` - -set -- $frequency_ranges # split into $1 und $2 -if [ -z "$frequency_ranges" ] && [ $tft_probability -lt 50 ]; then - calculate_max_horizontal_freq # gives us $horiz_freq_range_khz - horiz_freq_range="$horiz_freq_range_khz" -else horiz_freq_range=$1 -fi -######################################## - - -if [ $tft_probability -lt 50 ]; then - determine_recommended_crt_modes; -fi - -echo "Recommended Screen Modes: $screen_resolutions" - -#Fixme: How to Calculate the Vertical Refresh rate? -echo "Horizontal Frequency Range (kHz): $horiz_freq_range" -echo "Vertical Frequency Range (Hz): $2" diff --git a/initrd/initrd-stuff/bin/servconfig b/initrd/initrd-stuff/bin/servconfig deleted file mode 100755 index 9e592a23..00000000 --- a/initrd/initrd-stuff/bin/servconfig +++ /dev/null @@ -1,521 +0,0 @@ -#!/bin/sh -# -# universal (distro independent) configuration script for OpenSLX linux -# diskless clients (executed in stage3 within initial ramfs). The file- -# system is setup when servconfig starts -# -# Dirk von Suchodoletz <dvs@OpenSLX.com>, 03-09-2006 -# Michael Janczyk <mj0>, 12-09-2006 -# Lars Mueller <lm@OpenSLX.com>, 23-06-2006 -# Oliver Tappe <ot@OpenSLX.com>, 23-06-2006 -# -# (c) 2006 - RZ Universitaet Freiburg -# (c) 2006 - OpenSLX.ORG Project - -# check for configuration files to source - -# functions common for all distros, messages contains all error and -# info output -. /etc/messages -. /etc/functions -# load distro specific configuration variables and functions. distro -# specific functions may overwrite functions defined in /etc/functions -. /etc/sysconfig/config -. /etc/distro-functions -# get location of logfile definition -. /mnt/etc/${D_SYSCONFDIR}/logfile - -# script run timer -[ $DEBUGLEVEL -eq 8 ] && echo "** SW setup started at $(sysup)" - -# heavy debugging output in level 3 and below 8 ... -[ $DEBUGLEVEL -gt 3 -a $DEBUGLEVEL -lt 8 -o $DEBUGLEVEL -eq 12 ] && \ - set -x - -####################################################################### -# copy distro specific scripts, programs, libraries and configs -cp -a /etc/sysconfig/files/* /mnt 2>/dev/null & -# boot.local file (different for several distros) -[ -f "/etc/boot.local" -a -n "${D_BOOTLOCAL}" ] && { - echo "# added by $0 (initramfs from $date)" >> /mnt/etc/${D_BOOTLOCAL} - cat /etc/boot.local >> /mnt/etc/${D_BOOTLOCAL} -} - -####################################################################### -# read and unify configuration options - default configuration file, -# from dhcp, ldap ... -# wait for the appearance of configuration from several sources -cfgcomplete -. /etc/machine-setup -[ $DEBUGLEVEL -eq 8 ] && echo "** Config info is complete at $(sysup)" - -# copy additional configuration and var files and directories -# admins can place there files in /var/lib/openslx/config/... -# to be packed during stage2 into (/srv/dxs)/tftpboot/client-config...) -# ... in the near future ... -cp -a /rootfs/* /mnt 2>/dev/null - -# set greeting and add information on booted system (distro) -len=$(expr length $DISTRO) -dstr="$DISTRO)" -while [ $len -le 16 ] ; do - dstr="$dstr " - len=$(expr $len + 1) -done -len=$(expr length $host_name) -while [ $len -le 30 ] ; do - space="$space " - len=$(expr $len + 1) -done -echo " - WELCOME TO $space \n (\l) - _____ ______ ______ __ __ _______ __ __ __ - / _ | _ | ___| | | | | ____| | | | | | - | | | | |_| | |_ | | | | |___ | | / / - | | | | ___/| _| | | ____ | | | | - | |_| | | | |___| | | | ____| | |___ / / - _____/|__| |______|__| |__| |_______|______|__| |__| - - Diskless Workstation (v4.1/$dstr (c) <OpenSLX.ORG project> -">/mnt/etc/issue - -####################################################################### -# vmware stuff first part: two scenarios -# * VM images in /usr/share/vmware - then simply link -# * VM images via additional mount (mount source NFS, NBD, ...) -if [ "x$vmware" != "x" ] && [ "x$vmware" != "xno" ] ; then - # get source of vmware image server (get type, server and path) - if [ -n "${imgsrv}" ] ; then - vmimgprot=$(uri_token $imgsrv prot) - vmimgserv=$(uri_token $imgsrv server) - vmimgpath="/$(uri_token $imgsrv path)" - # on DHCP config systems vmware image server might be coded into the - # $vmware variable - elif strinstr "/" "$vmware" ; then - vmimgprot=$(uri_token $vmware prot) - vmimgserv=$(uri_token $vmware server) - vmimgpath="/$(uri_token $vmware path)" - fi - if [ -n "${vmimgserv}" ] ; then - testmkd /mnt/var/lib/vmware - case "${vmimgsprot}" in - *nbd) - ;; - *) - # we expect nfs mounts here ... - nfsmnt ${vmimgserv}:${vmimgpath} /mnt/var/lib/vmware || { - error "${scfg_nfs}" nonfatal; noimg=yes; } - ;; - esac - # if only the path is given expect a local source within exported - # system (allow compatibility to older 3.X versions) - elif [ -n "${vmimgpath}" ] ; then - ln -s ${vmimgpath} /mnt/var/lib/vmware 2>/dev/null - fi -fi - -####################################################################### -# set localization -if [ -z "$country" ] ; then - error "$scfg_country" nonfatal - country="${D_DEFAULTCOUNTRY}" -fi -localization "${country}" - -####################################################################### -# setup passwd and shadow for local system users like root, bin, daemon -# and nobody if no user/admin provided passwd exists ... -# the root password provided by machine-setup is used only if no passwd -# file is provided (default case) -if [ ! -f /rootfs/etc/passwd ] ; then - basepasswd -fi - -####################################################################### -# dns and ip configuration -# hostname of the machine -echo "$host_name" >/proc/sys/kernel/hostname -echo -e "# /etc/hosts - file generated by\n#\t$0:\n#\t$date\ -\n#\n# IP-Address Full-Qualified-Hostname Short-Hostname\n#\n\ -127.0.0.1\tlocalhost\n::1\t\tlocalhost ipv6-localhost ipv6-loopback\n\ -fe00::0\t\tipv6-localnet\nff00::0\t\tipv6-mcastprefix\nff02::1\ -\t\tipv6-allnodes\nff02::2\t\tipv6-allrouters\nff02::3\t\t\ -ipv6-allhosts\n" >/mnt/etc/hosts -echo -e "$clientip\t$host_name.$domain $host_name\n" >>/mnt/etc/hosts - -# set up domainname and resolving -test -n "$domain_name" && \ - echo -e "# /etc/resolv.conf - file generated by\n#\t$0:\n\ -#\t$date\n#options timeout:1 attempts:1 rotate\n\ -search "$domain_name >/mnt/etc/resolv.conf -test -n "$domain_name_servers" && { - for nameserver in $domain_name_servers; do - echo nameserver $nameserver >>/mnt/etc/resolv.conf; - done; } - -####################################################################### -# initial boot scripts -# delete and create runlevel links for initial booting (SuSE, Debian, -# ...) -initial_boot - -####################################################################### -# -# run distro specific configuration function -config_distro - - -####################################################################### -# -# boot.local -if [ -n "$bootlocal_script" ]; then - echo -e "# entries added by $0:\n#\t$date\n\n\ -$bootlocal_script" >> /mnt/etc/${D_INITDIR}/boot.local -fi - -####################################################################### -# basic (non network) services - -# at daemon - calling distro specific function config_atd -config_atd - -# configuration of cron services - calling distro specific function -# config_cron (runlevel links, directories, ...) -config_cron -[ "x$crontab_entries" != "x" ] && \ - echo -e "$crontab_entries" >> /mnt/etc/crontab - -# setup system log services - distro dependent function config_syslog -config_syslog - -# configure dbus - distro dependent function config_dreshal - handle -# all stuff regarding dependent services like dbus, resmgr, hal ... -# (check for runlevel scripts, passwd entries, directories ...) -config_dreshal - -# acpi and powersave - distro dependent function config_acpi -config_acpi - -# configure automounter -# if automounter=yes -if [ -d /mnt/misc ] ; then - echo -e "# /etc/auto.master - file generated by $0:\n\ -/misc\t/etc/auto.misc" >/mnt/etc/auto.master - echo -e "# /etc/auto.misc - file generated by $0:" >/mnt/etc/auto.misc -else - echo -e "# /etc/auto.master - file generated by $0:\n\ -/misc\t#/etc/auto.misc" >/mnt/etc/auto.master - echo -e "# /etc/auto.misc - file generated by $0:\nautomount for \ -removable devices is mostly deprecated, so /misc is not\nactivated in \ -auto.master." > /mnt/etc/auto.misc -fi -if [ -n "${automnt_src}" ] ; then - # local directory and home directory server from machine-setup - [ -z "${automnt_dir}" ] && automnt_dir="/home" - # remove leading and trailing slash - automnt_dir=${automnt_dir#/} - automnt_dir=${automnt_dir%/} - test -d /${automnt_dir} || error "$scfg_erradir" nonfatal - strinstr "/" ${automnt_dir} && error "$scfg_erratpld" nonfatal - amserv=$(uri_token $automnt_src server) - ampath=$(uri_token $automnt_src path) - echo -e "/${automnt_dir}\t/etc/auto.${automnt_dir}\n" \ - >> /mnt/etc/auto.master - echo -e "# /etc/auto.${automnt_dir} created by $0:\n" \ - > /mnt/etc/auto.${automnt_dir} - echo -e "*\t-rsize=32768,wsize=32768,rw\t${amserv}:/${ampath}/&" \ - >> /mnt/etc/auto.${automnt_dir} - # no tempfs needed if automounter operates on /home - [ "${automnt_dir}" = "home" ] && umount -t tmpfs /mnt/home 2>/dev/null - # portmapper is needed for remote NFS sources - config_portmap -fi -config_automount -# fi - -# configure bluetooth services -config_bt - -####################################################################### -# network(ed) services - -# network time service (ntp) configuration file -if [ -n "$ntp_servers" -a ! -f /rootfs/etc/ntp.conf ]; then - echo -e "# /etc/ntp.conf - file generated by $0: \ -$date\n" >/mnt/etc/ntp.conf - for ntpserver in $ntp_servers; do - echo server $ntpserver >>/mnt/etc/ntp.conf - done -fi -# copy timezone file defined with language settings -[ -z "$TZ" ] && TZ="$timezone" -ln -snf /usr/share/zoneinfo/${TZ} /mnt/etc/localtime || \ - error "$scfg_ntptz" nonfatal -config_ntp - -# secure shell server - at the moment all clients share one "secret" -# key or the key has to be regenerated on every bootup or fetched on -# every bootup from somewhere -config_sshd - -# simple network management protocol agent -config_snmp - -# setup afs client stuff -config_afs - -####################################################################### -# NIS -# setup nis configuration if needed -if [ "x$nis_domain" != "x" ] && [ "x$nis_servers" != "x" ] ; then - echo $nis_domain >/mnt/etc/defaultdomain - echo -e "# /etc/yp.conf - file generated by $0:\n#\t\ -$date\n\nypserver "$nis_servers >/mnt/etc/yp.conf - # should be last in passwd file - strinfile "+:::" /mnt/etc/passwd || echo "+::::::" >>/mnt/etc/passwd - config_nis -fi - -####################################################################### -# name service caching daemon if networked user database -config_nscd - -####################################################################### -# vmware stuff second part: setting up the environment - -# create needed directories and files -if [ "x$vmware" != "x" ] && [ "x$vmware" != "xno" ] ; then - for i in /var/X11R6/bin /etc/vmware/vmnet1 /etc/vmware/vmnet8 \ - /var/run/vmware /etc/X11/sessions ; do - testmkd /mnt/$i - done - # generate a runlevel script - d_mkrlscript init vmware-prep "Starting preparation of vmware environment" - sed "s,^#.*,,;/^$/d;s,^, ," /etc/vmware-prep >> \ - /mnt/etc/${D_INITDIR}/vmware-prep - d_mkrlscript close vmware-prep "" - chmod u+x /mnt/etc/${D_INITDIR}/vmware-prep - # check here that mount finished and the important files are available - if [ "$noimg" = "yes" ] ; then - error "$scfg_vmdir" nonfatal - else - # add special sessions to the display managers session menu - # default kdm session. Xdialog with WM and VMware images - cp /mnt/var/lib/vmware/templ/runvmware \ - /mnt/var/X11R6/bin >/dev/null 2>&1 - cp /mnt/var/lib/vmware/templ/defaultwm \ - /mnt/var/X11R6/bin >/dev/null 2>&1 - cp /mnt/var/lib/vmware/templ/kursimages \ - /mnt/var/X11R6/bin >/dev/null 2>&1 - fi - config_vmware - chmod 1777 /mnt/var/run/vmware - # define a variable where gdm/kdm should look for additional sessions - export vmsessions=/var/lib/vmware/vmsessions - # create default.desktop for kdm - echo -e "[Desktop Entry]\nEncoding=UTF-8\nName=Default\n\ -Name[de]=Standard\nExec=defaultwm\nTryExec=/var/X11R6/bin/defaultwm\n\ -Type=Application" >/mnt/etc/X11/sessions/default.desktop - rm /mnt/etc/vmware/not_configured 2>/dev/null - echo -e "#!/bin/sh\n#\n# file generated by ${0} at ${date}\ - \n# set X background\ - \nres=\$(xvidtune -show | grep -wo \"\\\".*\\\"\" | sed \"s/\\\"//g\")\ - \nif ! [ -f /var/lib/vmware/templ/corp-id/bootsplash/silent-\${res}.jpg ]; then - \n img=\$(ls /etc/bootsplash/themes/dxs/images/ | grep -m 1 \"silent\")\ - \n display -window root /var/lib/vmware/templ/corp-id/bootsplash/images/\${img}\ - \nelse\ - \n display -window root /var/lib/vmware/templ/corp-id/bootsplash/images/silent-\${res}.jpg\ - \nfi - \nstartvm=\$(echo \$0 | sed -e \"s,.*/,,\")\ - \n/var/X11R6/bin/runvmware -s \${startvm}\n"\ - > /mnt/var/X11R6/bin/desktop-session #${debug} removed - chmod 755 /mnt/var/X11R6/bin/runvmware /mnt/var/X11R6/bin/defaultwm \ - /mnt/var/X11R6/bin/desktop-session >/dev/null 2>&1 - sessions=$(ls /mnt/var/lib/vmware/vmsessions/*.desktop 2>/dev/null) - # fixme: the following part is to be tested!! - if [ -n "${sessions}" ]; then - for i in /mnt/var/lib/vmware/vmsessions/*.desktop; do - #session_name=$(cat ${i} | grep -iw "exec" \ - # | awk -F "=" '{print $2}') - session_name=$(cat ${i}|sed -n "/^[Ee]xec/p"|sed -e "s,Exec=,,") - # copy bacause of initrd - cp /mnt/var/X11R6/bin/desktop-session \ - /mnt/var/X11R6/bin/${session_name} - #ln -s /mnt/var/X11R6/bin/desktop-session \ - # /mnt/var/X11R6/bin/${session_name} - done - fi -fi - -####################################################################### -# preparation of /tmp directory (partition 44, nfs scratch, ramdisk) -# there might be the chance that we have a disk partition available, so -# wait for completion of detection, setup process -waitfor /tmp/tmpready 10000 -[ $DEBUGLEVEL -eq 8 ] && echo "** Setup of /tmp completed at $(sysup)" -# create some directories and correct permissions -tmpisdisk=$(sed -n '/\/tmp/p' /tmp/fstab 2>/dev/null) -# if there is no local disk partition for /tmp then try to mount a rw -# scratch space (if defined in $scratch) and prepared on server -if [ -n "$scratch" -a -z "$tmpisdisk" ] ; then - scrproto=$(uri_token $FILESRC prot) - scrpath=$(uri_token $FILESRC path) - testmkd /tmp/scratch - # exports have to be per client!! - case "$scrproto" in - nbd) - : - ;; - *) - tmpserv=$(uri_token $scratch server) - tmppath=$(uri_token $scratch path) - # fixme - use nfsmnt and pass info on rw - mount -t nfs -o rw,nolock,intr,nodev,soft,timeo=2,nosuid \ - ${tmpserv}:/${tmppath} /tmp/scratch >/dev/null 2>&1 && { - mkdir -p /tmp/scratch/${clientip} >/dev/null 2>&1 - umount /tmp/scratch - mount -t nfs -o rw,nolock,intr,nodev,soft,timeo=2,nosuid \ - ${tmpserv}:/${tmppath}/${clientip} /mnt/tmp >/dev/null 2>&1; } - ;; - esac -fi -chmod 1777 /mnt/tmp - -####################################################################### -# X11/GUI stuff -if [ "x$start_x" != "xno" ] ; then - # creating directories commonly needed for X11 in all distros - # rest should be done via config_x11 function (distro specific) - for i in /var/lib/xkb/ \ - /etc/X11/xdm \ - /etc/X11/sessions \ - /var/X11R6/bin \ - /var/run/xdmctl \ - /tmp/.ICE-unix \ - /tmp/.X11-unix ; do testmkd /mnt/$i; done - chmod a+rwxt /mnt/tmp/.ICE-unix /mnt/tmp/.X11-unix - echo "# file emtied by $0 during initramfs" > /mnt/etc/X11/xdm/Xservers - # define additional sessions offered to the user (via dhcp/ldap config) - # descsession -> deprecated by new vmware integration concept - # write available X display manager to /etc/X11/xdm/Xaccess - [ -n "$x_display_manager" ] && \ - echo -e "# /etc/X11/xdm/Xaccess - file generated by $0: \ -$date\n*\n%hostlist\t$x_display_manager\n*\t\tCHOOSER %hostlist"\ - >/mnt/etc/X11/xdm/Xaccess - - # define type of X session - dsx="no" - init="#7:5:respawn:/usr/X11R6/bin/X vt7 -quiet" - case "$start_x" in - yes|YES|direct|DIRECT|query|QUERY) - # direct connection onto the own displaymanager, which - # should be enabled then - [ "x$start_xdmcp" = "xno" ] && $start_xdmcp="yes" - init="" - dsx="yes" - xdmcp="false" - echo -e "# /etc/X11/Xservers - file generated by \ -$0: $date\n:0 local /usr/X11R6/bin/X :0 vt07\n" >/mnt/etc/X11/xdm/Xservers - ;; - broadcast|BROADCAST) - # the client will XDMCP broadcast and choose first available - # X11 server - [ "x$start_xdmcp" = "xgdm" ] || init="$init -broadcast" - ;; - indirect|INDIRECT) - # the client will try to XDMCP connect list of X11 servers - if [ "x$start_xdmcp" = "xgdm" ] ; then - init="" - else - init="$init -indirect $host_name" - fi - [ "x$start_xdmcp" = "xno" ] && start_xdmcp="yes" - xdmcp="true" - ;; - *) - # no display manager needed in kiosk mode - # in this mode you have to provide the type of X session to start - [ x$start_xdmcp != "x" ] || start_xdmcp="no"; - init="7:5:respawn:/var/X11R6/bin/kiosk /dev/tty7" - echo -e "#!/bin/sh\n# /var/X11R6/bin/kiosk - file generated by $0: \ -$date\nwhile ps aux|grep -i kiosk|grep -v \"grep\" &>/dev/null;\ -do\n test -f /var/run/kiosk || break; sleep 3;\ndone\ntouch \ - /var/run/kiosk\nresmgr login nobody tty7\nresmgr grant nobody desktop\n\ -chown nobody /dev/dsp* /dev/audio* /dev/mixer* /dev/snd/control*\n\ -chown -R nobody:nobody /var/lib/nobody\nsu -c 'xinit /var/X11R6/bin/startgui \ -$start_x -- vt7 -quiet' -l nobody &>/dev/null\nrm /var/run/kiosk\n\ -resmgr revoke nobody\nresmgr logout tty7\nkillall X" \ - >/mnt/var/X11R6/bin/kiosk - # early start of kiosk session if not late_dm is set - if [ "x$late_dm" != "xyes" ] ; then - echo -e "\t# kiosk start added by $0\n\t\ -/var/X11R6/bin/kiosk &>/dev/null &" >>/mnt/etc/${D_INITDIR}/boot.ld - fi - cp /etc/startgui /mnt/var/X11R6/bin - chmod a+x /mnt/var/X11R6/bin/kiosk /mnt/var/X11R6/bin/startgui - rm /mnt/var/run/kiosk 2>/dev/null - ;; - esac - echo -e "# entry made by $0 $date\n$init" >> /mnt/etc/inittab -fi - -# setup requested display manager -if [ "x$start_xdmcp" != "xno" ] ; then - testmkd /mnt/var/lib/xdm/authdir/authfiles - testmkd /mnt/var/run/xdmctl - if [ "$start_xdmcp" = "yes" ] ; then - start_xdmcp=kdm - fi - # just ensure lowercase - start_xdmcp=$(echo $start_xdmcp|sed -e "y/'GKWXDM'/'gkwxdm'/") - case "$start_xdmcp" in - wdm) - # anywhere in use!? - ;; - kdm) - # config is most probably not common in all distros? - # distro specific function config_kdm - config_kdm - ;; - gdm) - # config is most probably not common in all distros? - # distro specific function config_gdm - config_gdm - ;; - *) - # setup xdm (should be the same over the several distros) - echo -e "# /etc/X11/xdm/xdm-config - file generated by\n\ -#\t$0: $date\n\nDisplayManager.errorLogFile:\t/var/log/xdm.errors\n\ -DisplayManager.pidFile:\t\t/var/run/xdm.pid\n\ -DisplayManager.authDir:\t\t/var/lib/xdm\n\ -DisplayManager.keyFile:\t\t/etc/X11/xdm/xdm-keys\n\ -DisplayManager.servers:\t\t/etc/X11/xdm/Xservers\n\ -DisplayManager.accessFile:\t/etc/X11/xdm/Xaccess\n\ -DisplayManager.willing:\t\tsu nobody -c /etc/X11/xdm/Xwilling\n\ -DisplayManager.*.authName:\tMIT-MAGIC-COOKIE-1\n\ -DisplayManager.*.authComplain:\tfalse\n\ -DisplayManager.*.setup:\t\t/etc/X11/xdm/Xsetup\n\ -DisplayManager.*.chooser:\t/etc/X11/xdm/RunChooser\n\ -DisplayManager.*.startup:\t/etc/X11/xdm/Xstartup\n\ -DisplayManager.*.session:\t/etc/X11/xdm/Xsession\n\ -DisplayManager.*.reset:\t\t/etc/X11/xdm/Xreset" \ - >/mnt/etc/X11/xdm/xdm-config - [ "$xdmcp" = "false" ] && echo -e \ - "DisplayManager.requestPort:\t0\n" >>/mnt/etc/X11/xdm/xdm-config - # distro specific function config_xdm (at least for runlevel links) - config_xdm - ;; - esac -fi - -# theming -mkdir -p /mnt/var/lib/openslx/themes -cp -a /usr/share/themes/kdm /usr/share/themes/Xdialog \ - /usr/share/themes/bootsplash /mnt/var/lib/openslx/themes >/dev/null 2>&1 -cp /usr/share/themes/kdm/kdmrc /mnt/etc/opt/kde3/share/config/kdm >/dev/null 2>&1 - -# script run timer -[ $DEBUGLEVEL -eq 8 ] && echo "** SW setup finished at $(sysup)" - -# servconfig finished successfully -echo "finished" > /tmp/svcfg |
