From a6da8fdfbcb5c00318c90d2693c557267557486b Mon Sep 17 00:00:00 2001 From: Oliver Tappe Date: Wed, 28 Jan 2009 21:26:57 +0000 Subject: * added invocation of w3m in preboot environment (not doing anything useful yet) git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@2551 95ad53e4-c205-0410-b2fa-d234c58c8868 --- boot-env/preboot/init | 150 -------------------------------------------- boot-env/preboot/preboot.sh | 7 ++- 2 files changed, 6 insertions(+), 151 deletions(-) delete mode 100755 boot-env/preboot/init (limited to 'boot-env') diff --git a/boot-env/preboot/init b/boot-env/preboot/init deleted file mode 100755 index f2e4f50e..00000000 --- a/boot-env/preboot/init +++ /dev/null @@ -1,150 +0,0 @@ -#!/bin/ash -# Copyright (c) 2008..2009 - OpenSLX GmbH -# -# This program is free software distributed under the GPL version 2. -# See http://openslx.org/COPYING -# -# If you have any feedback please consult http://openslx.org/feedback and -# send your feedback to feedback@openslx.org -# -# General information about OpenSLX can be found at http://openslx.org -# -# Main script for preboot initial ramfs - preloading environment for running -# OpenSLX linux stateless clients version 5 for testing - -fetchip () { -# we expect to get an ip address within 10++ seconds -( sleep 6 ; killall udhcpc >/dev/null 2>&1 ) & -for i in 1 2 ; do - udhcpc -f -n -q $vci -s /usr/share/udhcpc/default.script -i $nwif 2>/dev/null - if grep "ip=" /tmp/ipstuff >/dev/null 2>&1 ; then - . /tmp/ipstuff - for i in $dns ; do - echo "nameserver $i" >>/etc/resolv.conf - done - # simply add a single dns server for passing via kernel cmdline to stage3 - # (quickhack, just the last, list of dns might be better ...) - echo "dnssrv=$i" >>/tmp/ipstuff - return - else - if [ $i -eq 1 ] ; then - sleep 1 - else - echo "Did not get any proper IP configuration"; /bin/ash - fi - fi -done -} - -############################################################################# -# device files get their own filesystem -devdir="/dev" -mount -n -t tmpfs -o 'size=25%,mode=0755' initramfsdevs ${devdir} -DEBUGLEVEL=0 - -# create basic device files an directories in dev (for most hardware related -# devices mdev should handle that) -for i in "/dev/mem c 1 1" "/dev/null c 1 3" "/dev/zero c 1 5" \ - "/dev/urandom c 1 9" "/dev/kmsg c 1 11" "/dev/tty0 c 4 0" \ - "/dev/tty1 c 4 1" "/dev/tty2 c 4 2" "/dev/tty3 c 4 3" \ - "/dev/tty4 c 4 4" "/dev/tty5 c 4 5" "/dev/tty6 c 4 6" \ - "/dev/tty7 c 4 7" "/dev/tty8 c 4 8" "/dev/tty9 c 4 9" \ - "/dev/tty10 c 4 10" "/dev/tty c 5 0" "/dev/console c 5 1" \ - "/dev/ptmx c 5 2" "/dev/psaux c 10 1" "/dev/agpgart c 10 175" \ - "/dev/fb0 c 29 0" "/dev/bootsplash p" "/dev/xconsole p"; do - mknod $i -done -mkdir -p ${devdir}/pts ${devdir}/shm ${devdir}/.udevdb ${devdir}/.udev - -# initramfs-setup configuration (common settings for all clients using a -# certain InitRamFS generated by slxmkramfs/mkdxsinitrd) -[ -f /etc/initramfs-setup ] && . /etc/initramfs-setup 2>/dev/null - -export PATH=/bin:/sbin:/usr/bin/:/usr/sbin - -# set a default LAN interface, has to be modified for WLAN or on machines -# with more than one ethernet card built in -nwif="eth0" - -# mount the important standard directories -[ ! -f /proc/cpuinfo ] && mount -n -t proc proc /proc -[ ! -d /sys/class ] && mount -n -t sysfs sysfs /sys - -# load network adaptor modules -for mod in ${ramfs_nicmods}; do - modprobe $mod || echo "module $mod did not load for some reason" - usleep 10000 -done - -# read kernel commandline -read KCMDLINE < /proc/cmdline -# read the system wide machine-setup and then the kernel commandline -for opts in ${KCMDLINE} ; do - case ${opts} in - debug) - DEBUGLEVEL=1;; - # ... or a specified debug level (will be passed to next stage) - debug=*) - DEBUGLEVEL=${opts#debug=};; - esac -done - -# start a watchdog to ensure an automated reboot or halt of the machine if the -# preboot init does not succeed (e.g. missing kernel module/firmware for the -# network adaptor) -if [ "${DEBUGLEVEL}" -gt 0 ] ; then - cat< /bin/watchdog -#!/bin/ash -echo \$$ > /tmp/watchdogpid -[ ! -f /proc/version ] && mount -n -t proc proc /proc -sleep 120 2> /dev/null -echo "o" > /proc/sysrq-trigger -EOF - chmod u+x /bin/watchdog - watchdog & -fi - -if [ -n "${essid}" ] ; then - # WLAN setup will most probably change the network interface name stored in - # nwif (to wlan0 or something like that) - : -else - # check here for the active ethernet link - ip link show dev eth1 >/dev/null 2>&1 && echo "more than one nw if found" -fi - -# set up loopback networking and power up ethernet -ip link set dev lo up -ip addr add 127.0.0.1/8 dev lo -ip link set dev $nwif up || echo "I did not find any usable network adaptor." - -# run udhcpc and start a debug shell if no lease could be obtained -mkdir -p /usr/share/udhcpc -echo -e "#!/bin/ash\nunset infomsg HOME IFS mask lease interface DEBUGLEVEL \ -BOOT_IMAGE\nset >/tmp/ipstuff" >/usr/share/udhcpc/default.script -chmod u+x /usr/share/udhcpc/default.script -modprobe -q af_packet -[ -n $vci ] && vci="-V $vci" -fetchip -ip addr add $ip/$(ipcalc -s -p $ip $subnet|sed s/.*=//) dev $nwif -ip route add default via $router - -# at this point a little selection script could be downloaded, which lets the -# user choose what kind of SLX client he wants to get -echo "Fetching preboot interactive part and configuration from the net ..." -wget -q -c -O /tmp/preboot.env $boot_uri/bootloader/${preboot_id}.env -mkdir /preboot -tar -xzf /tmp/preboot.env -C /preboot -# start a debug shell if needed, else set quiet kernel parameter -if [ "${DEBUGLEVEL}" -gt 0 ] ; then - /bin/ash -else - # no debugging output for stage3 run - echo "quiet=quiet" >>/etc/initramfs-setup -fi -# run the preboot interactive part which finally will execute kexec -cd /preboot -exec ./preboot.sh -# we will never return from that one ... - - diff --git a/boot-env/preboot/preboot.sh b/boot-env/preboot/preboot.sh index c6d10b1a..14f154c4 100755 --- a/boot-env/preboot/preboot.sh +++ b/boot-env/preboot/preboot.sh @@ -19,7 +19,12 @@ dialog --file bootmenu.dialog 2>result # source the system to boot configuration ($kernel, $initramfs, $append, # $label) -. ./$(cat result) +sysname=$(cat result) +. ./$sysname + +chvt 4 +w3m -o confirm_qq=no $boot_uri/user_settings.pl?system=$sysname +chvt 1 # fetch kernel and initramfs of selected system wget -O /tmp/kernel $boot_uri/$kernel -- cgit v1.2.3-55-g7522