From de131d50fc6869ce5c792064fced941ef6f30b30 Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Thu, 30 Jan 2014 17:23:56 +0100 Subject: [rfs-s31] dont grep all the time, set a variable at the start NOTE: missing /etc/splash.ppm in git atm, til we make it fancy. --- .../rootfs/rootfs-stage31/data/inc/setup_stage32 | 2 +- remote/rootfs/rootfs-stage31/data/init | 51 +++++++++++----------- 2 files changed, 27 insertions(+), 26 deletions(-) diff --git a/remote/rootfs/rootfs-stage31/data/inc/setup_stage32 b/remote/rootfs/rootfs-stage31/data/inc/setup_stage32 index df8b71fc..1a58f0aa 100755 --- a/remote/rootfs/rootfs-stage31/data/inc/setup_stage32 +++ b/remote/rootfs/rootfs-stage31/data/inc/setup_stage32 @@ -48,7 +48,7 @@ cp /etc/hostname /etc/hosts /etc/resolv.conf "${FUTURE_ROOT}/etc/" [ -s "/run/config" ] && cat "/run/config" >> "${FUTURE_ROOT}/opt/openslx/config" # if booting with splash, suppress kernel output in stage32 -if grep -q "splash" /proc/cmdline; then +if [ $SPLASH -eq 1 ]; then if grep -q -E "^\ kernel.printk" "${FUTURE_ROOT}/usr/lib/sysctl.d/50-default.conf"; then sed -i 's/^\ *kernel\.printk.*/kernel\.printk\ =\ 0\ 0\ 0\ 0/g' "${FUTURE_ROOT}/usr/lib/sysctl.d/50-default.conf" else diff --git a/remote/rootfs/rootfs-stage31/data/init b/remote/rootfs/rootfs-stage31/data/init index ae6ddbe5..7e4e3370 100755 --- a/remote/rootfs/rootfs-stage31/data/init +++ b/remote/rootfs/rootfs-stage31/data/init @@ -32,6 +32,29 @@ mkdir -p "$FUTURE_ROOT/opt/openslx" # let kernel know that mdev is to be used for hotplug echo "/sbin/mdev" > /proc/sys/kernel/hotplug +# read kernel command line for debugging switch +DEBUG=0 +SPLASH=0 +read KCL < "/proc/cmdline" +for opts in ${KCL}; do + case "${opts}" in + debug=*) + DEBUG=${opts#debug=} ;; + ip=*) + # process IP info + IPINFO=${opts#ip=} ;; + nfs=*) + NFS=${opts#nfs=} + NFSPATH=${NFS#*:} + NFSSERVER=${NFS%:/*} + ;; + BOOTIF=*) + MAC="$( echo "$opts" | cut -b 11- | tr '-' ':' | tr '[A-Z]' '[a-z]' )" ;; # make mac lowercase for udev (see setup_network) + splash*) + [ -e "/etc/splash.ppm" ] && SPLASH=1 + esac +done + setup_gfx () { # read graphic and network adaptor configuration (without proprietary drivers yet) # TODO: most ugly hack ever... needs to be improved when we add prop drivers @@ -42,12 +65,10 @@ setup_gfx () { modprobe "$DRM" 2>/dev/null done # start some kind of splash screen if activated - if grep -q -o "splash" /proc/cmdline; then - setsid fbsplash -c -s /etc/bootsplash.ppm - fi + [ $SPLASH -eq 1 ] && setsid fbsplash -c -s /etc/splash.ppm } -if grep -q -o "splash" /proc/cmdline; then +if [ $SPLASH -eq 1 ]; then exec 3>&1 4>&2 > /dev/null 2>&1 echo "0 0 0 0" > /proc/sys/kernel/printk setup_gfx @@ -59,28 +80,8 @@ fi # discover devices mdev -s -# read kernel command line for debugging switch -DEBUG=0 -read KCL < "/proc/cmdline" -for opts in ${KCL}; do - case "${opts}" in - debug=*) - DEBUG=${opts#debug=} ;; - ip=*) - # process IP info - IPINFO=${opts#ip=} ;; - nfs=*) - NFS=${opts#nfs=} - NFSPATH=${NFS#*:} - NFSSERVER=${NFS%:/*} - ;; - BOOTIF=*) - MAC="$( echo "$opts" | cut -b 11- | tr '-' ':' | tr '[A-Z]' '[a-z]' )" ;; # make mac lowercase for udev (see setup_network) - esac -done - # suppress kernel output if DEBUG is not set -if grep -q -o "splash" /proc/cmdline; then +if [ $SPLASH -eq 1 ]; then [ $DEBUG -ge 1 ] && echo "0 0 0 0" > /proc/sys/kernel/printk || echo "4 4 1 7" >/proc/sys/kernel/printk fi -- cgit v1.2.3-55-g7522