X-Git-Url: https://git.grml.org/?p=grml-autoconfig.git;a=blobdiff_plain;f=autoconfig.functions;h=ab7062dd86d973019afdf3fe9d5cdaa4336193ed;hp=fdbe87c1efb91feac1111ffedce745cb852e5b04;hb=336d22f0089eaa50467bdae2f8d63c2294fabcba;hpb=a33161e114a50e2b3a32528b3c76cc5755edc53c diff --git a/autoconfig.functions b/autoconfig.functions index fdbe87c..ab7062d 100755 --- a/autoconfig.functions +++ b/autoconfig.functions @@ -617,16 +617,6 @@ fi } # }}} -# For burning on IDE-CD-Roms, k3b (and others) check for special permissions {{{ -config_cdrom_perm(){ -CDROMS="" -for DEVICE in /proc/ide/hd?; do - [ "$(cat $DEVICE/media 2>/dev/null)" = "cdrom" ] && CDROMS="$CDROMS /dev/${DEVICE##*/}" -done -[ -n "$CDROMS" ] && { chown root.cdrom $CDROMS; chmod 666 $CDROMS; } 2>/dev/null -} -# }}} - # {{{ Bring up loopback interface now config_local_net(){ if [ -z "$INSTALLED" ] ; then @@ -699,25 +689,6 @@ fi } # }}} -# {{{ hardware detection via discover -config_discover(){ -if checkbootparam 'nodisc' ; then - ewarn "Skipping hardware detection via discover as requested on boot commandline." ; eend 0 -else - if [ -x /sbin/discover ] ; then - einfo "Discovering hardware. Trying to load the following modules in background:" - eindent - einfo "$(discover --data-path=linux/module/name --data-path=linux/modules/options --format="%s %s" --data-version=`uname -r` --enable-bus all | sort -u | xargs echo)" - eoutdent - /sbin/discover-modprobe -v >>$DEBUG 2>&1 & - eend 0 - else - eerror "Application discover not available. Information: udev should handle hardware recognition." ; eend 0 - fi -fi -} -# }}} - # {{{ hardware detection via hwinfo config_hwinfo(){ if checkbootparam 'hwinfo' >>$DEBUG 2>&1; then @@ -1138,19 +1109,6 @@ if checkbootparam 'swap' || checkbootparam 'anyswap' ; then checkbootparam 'anyswap' && export ANYSWAP='yes' || export ANYSWAP="" fi -if checkbootparam 'nofstab' || checkbootparam 'forensic' ; then - ewarn "Skipping /etc/fstab creation as requested on boot commandline." ; eend 0 -else - einfo "Scanning for harddisk partitions and creating /etc/fstab. (Disable this via boot option: nofstab)" - iszsh && setopt nonomatch - if [ -x /usr/sbin/rebuildfstab ] ; then - config_userfstab || fstabuser=grml - /usr/sbin/rebuildfstab -r -u $fstabuser -g $fstabuser ; eend $? - else - ewarn "Command rebuildfstab not found. Install package grml-rebuildfstab." ; eend 1 - fi -fi # checkbootparam nofstab/forensic - # Scan for swap, config, homedir - but only in live-mode if [ -z "$INSTALLED" ] ; then [ -z "$NOSWAP" ] && einfo "Searching for swap partition(s) as requested." @@ -1292,30 +1250,6 @@ fi } # }}} -# {{{ Fat-Client-Version: DHCP Broadcast for IP address -config_dhcp(){ -if checkbootparam 'nodhcp'; then - ewarn "Skipping DHCP broadcast/network detection as requested on boot commandline." ; eend 0 -else - NETDEVICES="$(awk -F: '/eth.:|tr.:|wlan.:/{print $1}' /proc/net/dev 2>>$DEBUG)" - rm -rf /etc/network/status ; mkdir -p /etc/network/status - for DEVICE in `echo "$NETDEVICES"` ; do - einfo "Network device ${WHITE}${DEVICE}${NORMAL} detected, DHCP broadcasting for IP. (Backgrounding)" - trap 2 3 11 - ifconfig $DEVICE up >>$DEBUG 2>&1 - ( pump -i $DEVICE --script=/usr/lib/grml-autoconfig/pump-runparts >>$DEBUG 2>&1 && echo finished_running_pump > /etc/network/status/$DEVICE ) & - trap "" 2 3 11 - sleep 1 - eend 0 - done - if [ -n "$INSTALLED" ] ; then - ewarn 'If you want to disable automatic DHCP requests set CONFIG_DHCP=no in /etc/grml/autoconfig.' - eend 0 - fi -fi -} -# }}} - # {{{ CPU-detection config_cpu(){ if checkbootparam 'nocpu'; then @@ -1523,7 +1457,7 @@ config_mixer () { fi for card in $(cat /proc/asound/cards| grep -e '^\s*[0-9]' | awk '{print $1}') ; do - einfo "Configuring soundcard $(cat /proc/asound/cards| grep -e "$card" | awk -F\[ '{print $2}' | awk '{print $1}')" + einfo "Configuring soundcard \"$(awk -F\[ '/^ *'$card' \[/{ FS=" "; $0=$2; print $1}' < /proc/asound/cards)\"" eindent if checkbootparam 'vol' ; then @@ -1557,7 +1491,7 @@ config_mixer () { fi for CONTROL in Master PCM ; do - if amixer -q | grep -q "Simple mixer control.*$CONTROL" ; then + if amixer -q | grep -q "Simple mixer control '$CONTROL'" ; then amixer -q set "${CONTROL}" "${VOL}"% eend $? fi @@ -1590,34 +1524,6 @@ fi } # }}} -# {{{ keyboard add-ons -config_setkeycodes(){ -if checkbootparam 'setkeycodes' ; then - einfo "Setting keycodes as requested via bootparameter 'setkeycodes'." - # MS MM keyboard add-on - # fix - setkeycodes e001 126 &>/dev/null - setkeycodes e059 127 &>/dev/null - # fn keys - setkeycodes e03b 59 &>/dev/null - setkeycodes e008 60 &>/dev/null - setkeycodes e007 61 &>/dev/null - setkeycodes e03e 62 &>/dev/null - setkeycodes e03f 63 &>/dev/null - setkeycodes e040 64 &>/dev/null - setkeycodes e041 65 &>/dev/null - setkeycodes e042 66 &>/dev/null - setkeycodes e043 67 &>/dev/null - setkeycodes e023 68 &>/dev/null - setkeycodes e057 87 &>/dev/null - setkeycodes e058 88 &>/dev/null - # hp keycodes - setkeycodes e00a 89 e008 90 &>/dev/null - eend 0 -fi -} -# }}} - # {{{ wondershaper config_wondershaper(){ if checkbootparam 'wondershaper' ; then @@ -1856,8 +1762,11 @@ config_finddcsdir() { # foo, even if a GRMLCFG partition is present. DCSDIR="" DCSMP="/mnt/grml" +# autoconfig, see issue673 +GRMLCFG="$(getbootparam 'autoconfig' 2>>$DEBUG)" +[ -n "$GRMLCFG" ] || GRMLCFG="GRMLCFG" if checkbootparam 'noautoconfig' || checkbootparam 'forensic' ; then - ewarn "Skipping running automount of device(s) labeled GRMLCFG as requested." ; eend 0 + ewarn "Skipping running automount of device(s) labeled $GRMLCFG as requested." ; eend 0 else if [ -z "$INSTALLED" ] ; then if checkbootparam 'myconfig' ; then @@ -1866,7 +1775,7 @@ else eerror "Error: No device for bootoption myconfig provided." ; eend 1 fi # [ -z "$DCSDEVICE" ] elif checkvalue $CONFIG_MYCONFIG; then # checkbootparam myconfig - einfo "Searching for device(s) labeled with GRMLCFG. (Disable this via boot option: noautoconfig)" ; eend 0 + einfo "Searching for device(s) labeled with $GRMLCFG. (Disable this via boot option: noautoconfig)" ; eend 0 eindent # We do need the following fix so floppy disk is available to blkid in any case :-/ if [ -r /dev/fd0 ] ; then @@ -1875,7 +1784,7 @@ else blkid /dev/fd0 >>$DEBUG 2>&1 fi fi - DCSDEVICE=$(blkid -t LABEL=GRMLCFG | head -1 | awk -F: '{print $1}') + DCSDEVICE=$(blkid -t LABEL=$GRMLCFG | head -1 | awk -F: '{print $1}') if [ -n "$DCSDEVICE" ]; then DCSMP="/mnt/grmlcfg" fi @@ -1944,6 +1853,9 @@ config_debs(){ if checkbootparam 'debs' ; then iszsh && setopt localoptions shwordsplit DEBS="$(getbootparam 'debs' 2>>$DEBUG)" + if [ -z "$DEBS" ] ; then + DEBS="*.deb" + fi if ! echo $DEBS | grep -q '/'; then # backwards compatibility: if no path is given get debs from debs/ DEBS="debs/$DEBS" @@ -2006,9 +1918,13 @@ if checkbootparam 'config' || [ "$DCSMP" = "/mnt/grmlcfg" ]; then fi fi fi -# umount $DCSMP if it was mounted by finddcsdir -# this doesn't really belong here -grep -q '$DCSMP' /proc/mounts && umount $DCSMP +} +# }}} + +# {{{ confing_umount_dcsdir +config_umount_dcsdir(){ + # umount $DCSMP if it was mounted by finddcsdir + grep -q "$DCSMP" /proc/mounts && umount "$DCSMP" } # }}} @@ -2340,45 +2256,8 @@ config_lvm(){ # {{{ debnet: setup network based on an existing one found on a partition config_debnet(){ if checkbootparam 'debnet' ; then - iszsh && setopt localoptions shwordsplit - DEVICES="$(< /proc/partitions tail -n +3 | awk '{print "/dev/"$4}' | tr "\n" " ")" - DEVICES="$DEVICES $(ls /dev/mapper/*)" - FOUND_DEBNET="" - einfo "Bootoption 'debnet' found. Searching for Debian network configuration: " - eindent - if ! mount | grep '/mnt ' >/dev/null 2>&1 ; then - for i in $DEVICES; do - if mount -o ro -t auto "$i" /mnt >/dev/null 2>&1; then - einfo "Scanning on $i" - if [ -f /mnt/etc/network/interfaces ]; then - einfo "/etc/network/interfaces found on ${i}" ; eend 0 - FOUND_DEBNET="$i" - break - fi - umount /mnt - fi - done - - if [ -n "$FOUND_DEBNET" ]; then - einfo "Stopping network." - pump -k >/dev/null 2>&1 - /etc/init.d/networking stop >/dev/null 2>&1 ; eend $? - einfo "Copying Debian network configuration from $FOUND_DEBNET to running system." - rm -rf /etc/network/run - cp -a /mnt/etc/network /etc - rm -rf /etc/network/run - mkdir /etc/network/run - umount /mnt ; eend $? - einfo "Starting network." - invoke-rc.d networking start ; eend $? - else - eerror "/etc/network/interfaces not found." ; eend 1 - fi - eoutdent - else - eerror "Error: /mnt already mounted." ; eend 1 - fi + /usr/sbin/debnet fi } # }}} @@ -2436,7 +2315,7 @@ config_tohd() # {{{ grml2hd: automatic installation config_grml2hd(){ -if checkbootparam "BOOT_IMAGE=grml2hd" ; then +if checkbootparam "grml2hd" || checkbootparam "BOOT_IMAGE=grml2hd" ; then if checkbootparam 'user' ; then NEWUSER='' @@ -2488,7 +2367,7 @@ fi # if checkbootparam "BOOT_IMAGE=grml2hd ... # {{{ debootstrap: automatic installation config_debootstrap(){ -if checkbootparam "BOOT_IMAGE=debian2hd" ; then +if checkbootparam "BOOT_IMAGE=debian2hd" || checkbootparam "debian2hd" ; then einfo "Bootoption debian2hd found. Setting up environment for automatic installation via grml-debootstrap." ; eend 0