X-Git-Url: http://git.grml.org/?p=grml-autoconfig.git;a=blobdiff_plain;f=autoconfig.functions;h=9d85bc8561bd558619c07534c88f74c97dfddfc1;hp=a4faa87343f3e5d1462aeb782a5b109a246a8d73;hb=8ae37ab733a40aa3d76400cee6f836305ca7ccec;hpb=0e4cbb69e71cf942fab3842c4b70c981e80148be diff --git a/autoconfig.functions b/autoconfig.functions index a4faa87..9d85bc8 100755 --- a/autoconfig.functions +++ b/autoconfig.functions @@ -320,11 +320,26 @@ config_language(){ [ ${NUM_CONSOLES} -eq 1 ] && NUM_CONSOLES=6 fi CUR_CONSOLE=$(fgconsole 2>/dev/null) + + if [ -x "$(which setfont)" ] ; then + use_setfont=true + elif [ -x "$(which consolechars)" ] ; then + use_consolechars=true + else + eerror "Neither setfont nor consolechars tool present, can not set font." + eend 1 + return 1 + fi + if [ -n "$CHARMAP" ] ; then - einfo "Running consolechars for ${CHARMAP}" + einfo "Setting font to ${CHARMAP}" RC=0 for vc in $(seq 0 ${NUM_CONSOLES}) ; do - consolechars --tty=/dev/tty${vc} -m ${CHARMAP} ; RC=$? + if $use_setfont ; then + setfont -C /dev/tty${vc} $CHARMAP ; RC=$? + elif $use_consolechars ; then + consolechars --tty=/dev/tty${vc} -m ${CHARMAP} ; RC=$? + fi done if [ -n "$CUR_CONSOLE" ] ; then [ "$CUR_CONSOLE" != "serial" ] && chvt $CUR_CONSOLE @@ -336,10 +351,14 @@ config_language(){ ewarn "Skipping setting console font as requested on boot commandline." ; eend 0 else if [ -n "$CONSOLEFONT" ] ; then - einfo "Running consolechars using ${CONSOLEFONT}" + einfo "Setting font to ${CONSOLEFONT}" RC=0 for vc in $(seq 0 ${NUM_CONSOLES}) ; do - consolechars --tty=/dev/tty${vc} -f $CONSOLEFONT ; RC=$? + if $use_setfont ; then + setfont -C /dev/tty${vc} ${CONSOLEFONT} ; RC=$? + elif $use_consolechars ; then + consolechars --tty=/dev/tty${vc} -f ${CONSOLEFONT} ; RC=$? + fi done if [ -n "$CUR_CONSOLE" ] ; then [ "$CUR_CONSOLE" != "serial" ] && chvt $CUR_CONSOLE @@ -357,8 +376,9 @@ config_hostname(){ if checkbootparam 'hostname' ; then HOSTNAME="$(getbootparam 'hostname' 2>>$DEBUG)" if [ -z "$HOSTNAME" ] && [ -x /usr/bin/random-hostname ] ; then - einfo "Generating random hostname as no hostname was specified" + einfo "Generating random hostname as no hostname was specified." HOSTNAME="$(/usr/bin/random-hostname)" + eend $? fi einfo "Setting hostname to $HOSTNAME as requested." grml-hostname $HOSTNAME >>$DEBUG ; RC=$? @@ -595,11 +615,7 @@ if checkbootparam 'console'; then local serial="$this" local device="${this%%,*}" local device="${device##*=}" - if ! echo $serial | grep -q ttyS ; then - ewarn "Warning: console=ttyS... not specified as last console= option. Falling back to set up ttyS0/9600." - sed -i "/^#grmlserial#/iT0:23:respawn:/bin/bash -c \"/sbin/getty -L /dev/ttyS0 -l /usr/bin/zsh-login 9600 vt100 || sleep 30\"" /etc/inittab - eend 0 - else + if echo $serial | grep -q ttyS ; then local option="${serial##*,}" # default (works for kvm & CO): local speed="115200,57600,38400,19200,9600,4800,2400,1200"; @@ -614,14 +630,14 @@ if checkbootparam 'console'; then 2400*) speed=2400 ;; 1200*) speed=1200 ;; esac + eindent + einfo "Activating console login on device ${device} with speed ${speed}." + local number="${device#ttyS}" + sed -i "/^T$number:/d;/^#grmlserial#/iT$number:23:respawn:/bin/bash -c \"/sbin/getty -L $device -l /usr/bin/zsh-login $speed vt100 || sleep 30\"" /etc/inittab + eend $? + telinitq="1" + eoutdent fi - eindent - einfo "Activating console login on device ${device} with speed ${speed}." - local number="${device#ttyS}" - sed -i "/^#grmlserial#/iT$number:23:respawn:/bin/bash -c \"/sbin/getty -L $device -l /usr/bin/zsh-login $speed vt100 || sleep 30\"" /etc/inittab - eend $? - telinitq="1" - eoutdent ;; esac this="${line%%[$ws]*}" @@ -1543,6 +1559,15 @@ if checkbootparam 'vnc' ; then /bin/chown -R "$USER": "$VNCDIR" fi fi + if checkbootparam 'vnc_connect' ; then + VNC_CONNECT='' + VNC_CONNECT="$(getbootparam 'vnc_connect' 2>>$DEBUG)" + einfo "Bootoption vnc_connect found, will start vnc with connect to $VNC_CONNECT." + #store the options in a file + VNCDIR="/home/${USER}/.vnc" + [ -d "$VNCDIR" ] || mkdir "$VNCDIR" + echo " --connect $VNC_CONNECT " >> $VNCDIR/options + fi fi } # }}} @@ -1836,7 +1861,7 @@ config_netscript() { if get_remote_file ${CONFIG} ${SCRIPTFILE} ; then chmod +x ${SCRIPTFILE} - einfo "Running ${WHITE}${SCRIPTFILE}${NORMAL}:" && ${SCRIPTFILE} ; eend $? + einfo "Running ${WHITE}${SCRIPTFILE}${NORMAL}:" && NETSCRIPT=${CONFIG} ${SCRIPTFILE} ; eend $? fi fi @@ -1880,7 +1905,7 @@ config_x_startup(){ # make sure we start X only if startx is used *before* a nostartx option # so it's possible to disable automatic X startup using nostart if checkbootparam 'startx' && ! echo "$CMDLINE" | grep -q 'startx.*nostartx' ; then - if [ -x $(which X) ] ; then + if [ -x "$(which X)" ] ; then if [ -z "$INSTALLED" ] ; then WINDOWMANAGER="$(getbootparam 'startx' 2>>$DEBUG)" if [ -z "$WINDOWMANAGER" ] ; then @@ -2030,6 +2055,7 @@ fi # {{{ /cdrom/.*-options config_debs(){ if checkbootparam 'debs' ; then + iszsh && setopt localoptions shwordsplit DEBS="$(getbootparam 'debs' 2>>$DEBUG)" if ! echo $DEBS | grep -q '/'; then # backwards compatibility: if no path is given get debs from debs/ @@ -2427,7 +2453,7 @@ config_lvm(){ # {{{ debnet: setup network based on an existing one found on a partition config_debnet(){ if checkbootparam 'debnet' ; then - iszsh && setopt shwordsplit + iszsh && setopt localoptions shwordsplit DEVICES="$(< /proc/partitions tail -n +3 | awk '{print "/dev/"$4}' | tr "\n" " ")" DEVICES="$DEVICES $(ls /dev/mapper/*)" FOUND_DEBNET="" @@ -2470,19 +2496,6 @@ fi } # }}} -# {{{ check for broken ipw3945 driver which causes problems (especially on hd install) -config_ipw3945() { - if grep -q ipw3945 /proc/modules ; then - if ! iwconfig 2>/dev/null| grep -qe 'IEEE 802' -qe 'unassociated' ; then - ewarn "Broken ipw3945 network interface found, reloading module." - rmmod ipw3945 - modprobe ipw3945 - eend $? - fi - fi -} -# }}} - # {{{ disable console blanking config_blanking(){ if checkbootparam 'noblank' ; then