X-Git-Url: https://git.grml.org/?p=grml-autoconfig.git;a=blobdiff_plain;f=autoconfig.functions;h=b7aaee0bc897a43f02740893650dabae56fff075;hp=3aa97875411206d2088d73f35a87a5e77afed324;hb=bf5fdccaaa763a9af71b8a12b3e65ea175be95d0;hpb=cc3ead1e11553fc43ff4cf50b2b0e0db2899d887 diff --git a/autoconfig.functions b/autoconfig.functions index 3aa9787..b7aaee0 100755 --- a/autoconfig.functions +++ b/autoconfig.functions @@ -259,7 +259,7 @@ config_language(){ if [ -r /usr/share/consolefonts/Uni3-Terminus16.psf.gz ] ; then CONSOLEFONT='Uni3-Terminus16' else - ewarn "/usr/share/consolefonts/Uni3-Terminus16.psf.gz not available. Please upgrade package console-terminus." ; eend 1 + ewarn "/usr/share/consolefonts/Uni3-Terminus16.psf.gz not available. Please upgrade package console-setup-linux." ; eend 1 fi if ! hasfb ; then CONSOLEFONT='Lat15-Terminus16' @@ -543,7 +543,8 @@ config_kernel(){ # }}} # {{{ secure boot -config_secureboot(){ +# helper function to check whether we're running under (enabled) Secure Boot +running_under_secureboot() { # systemd does this for us, but if we are not running under systemd then mokutil # doesn't work as needed as it relies on /sys/firmware/efi/efivars (while # /sys/firmware/efi/vars would exist) @@ -556,20 +557,28 @@ config_secureboot(){ if [ -x /usr/bin/mokutil ] ; then local secstate=$(mokutil --sb-state 2>/dev/null) # "SecureBoot enabled" if [ -n "$secstate" ] ; then - einfo "SecureBoot is enabled" ; eend 0 + return 0 else - einfo "SecureBoot not detected" ; eend 0 + return 1 fi else if modprobe efivars &>/dev/null ; then if od -An -t u1 /sys/firmware/efi/vars/SecureBoot-*/data 2>/dev/null | grep -q 1 ; then - einfo "SecureBoot is enabled" ; eend 0 + return 0 else - einfo "SecureBoot not detected" ; eend 0 + return 1 fi fi fi } + +config_secureboot(){ + if running_under_secureboot ; then + einfo "SecureBoot is enabled" ; eend 0 + else + einfo "SecureBoot not detected" ; eend 0 + fi +} # }}} # {{{ timezone @@ -1847,16 +1856,22 @@ fi # checkbootparam "BOOT_IMAGE=debian2hd # {{{ virtualbox shared folders config_virtualbox_shared_folders() { -if $VIRTUALBOX ; then - einfo "VirtualBox detected, trying to set up Shared Folders." - if ! modinfo vboxsf &>/dev/null ; then - ewarn "vboxsf driver not present, not setting up VirtualBox Shared Folders." - eend 0 - elif ! [ -x /usr/sbin/VBoxService ] ; then - ewarn "virtualbox-guest-utils not installed, not setting up VirtualBox Shared Folders." - eend 0 + if ! $VIRTUALBOX ; then + return + fi + + if checkbootparam 'novboxsf' ; then + ewarn "Skipping VirtualBox Shared Folders setup as requested on boot commandline." ; eend 0 else - eindent + einfo "VirtualBox detected, trying to set up Shared Folders." + if ! modinfo vboxsf &>/dev/null ; then + ewarn "vboxsf driver not present, not setting up VirtualBox Shared Folders." + eend 0 + elif ! [ -x /usr/sbin/VBoxService ] ; then + ewarn "virtualbox-guest-utils not installed, not setting up VirtualBox Shared Folders." + eend 0 + else + eindent einfo "Loading vboxsf driver." lsmod | grep -q vboxsf || modprobe vboxsf @@ -1869,8 +1884,8 @@ if $VIRTUALBOX ; then config_userfstab - einfo "Adding $fstabuser to group vboxsf." - adduser grml vboxsf &>/dev/null + einfo "Adding user ${fstabuser:-grml} to group vboxsf." + adduser "${fstabuser:-grml}" vboxsf >>"${DEBUG}" 2>&1 eend $? einfo "Starting VBoxService." @@ -1931,9 +1946,36 @@ if $VIRTUALBOX ; then fi fi - eoutdent + eoutdent + fi fi -fi +} +# }}} + +# {{{ VirtualBox application +config_virtualbox_setup() { + if checkbootparam 'novbox' ; then + ewarn "Skipping VirtualBox setup as requested on boot commandline." ; eend 0 + return + fi + + if ! [ -x /usr/bin/VBox ] ; then + return + fi + + if running_under_secureboot ; then + ewarn "VirtualBox service can not be started as running under enabled Secure Boot." ; eend 0 + return + fi + + einfo "VirtualBox service detected, trying to set up." + service_wrapper vboxdrv restart >>"${DEBUG}" 2>&1 ; eend $? + + config_userfstab + + einfo "Adding user ${fstabuser:-grml} to group vboxusers." + adduser "${fstabuser:-grml}" vboxusers >>"${DEBUG}" 2>&1 + eend $? } # }}}