#!/bin/sh # (C) 2007 Michael Meskes ### BEGIN INIT INFO # Provides: vboxguest virtualbox-guest-utils # Short-Description: VirtualBox Linux Additions # Required-Start: $remote_fs # Required-Stop: $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 ### END INIT INFO PATH=$PATH:/bin:/sbin:/usr/sbin . /lib/lsb/init-functions test -d /usr/share/doc/virtualbox-guest-utils -a -x /usr/sbin/VBoxService || exit 0 in_virtual_machine() { if [ -z "$(lspci -d 80ee:cafe)" ]; then log_warning_msg "VirtualBox Additions disabled, not in a Virtual Machine" return 1 fi return 0 } running() { lsmod | grep -q "$1[^_-]" } case "$1" in start) in_virtual_machine || exit 0 log_begin_msg "Starting VirtualBox Additions" if ! running vboxguest; then if ! modprobe vboxguest > /dev/null 2>&1; then if ! find /lib/modules/`uname -r` -name "vboxguest\.*" 2>/dev/null|grep -q vboxguest; then log_failure_msg "No suitable module for running kernel found" else log_failure_msg "modprobe vboxguest failed. Please use 'dmesg' to find out why" fi log_end_msg 1 return 1 fi fi if ! running vboxsf; then if ! modprobe vboxsf > /dev/null 2>&1; then if ! find /lib/modules/`uname -r` -name "vboxsf\.*" 2>/dev/null|grep -q vboxsf; then log_failure_msg "No suitable module for running kernel found" else log_failure_msg "modprobe vboxsf failed. Please use 'dmesg' to find out why" fi log_end_msg 1 return 1 fi fi if /usr/bin/VBoxClient --check3d 2>/dev/null; then setup_gl=true else unset setup_gl fi # Disable 3D if Xwayland is found, except on Ubuntu 18.04. if type Xwayland >/dev/null 2>&1; then unset PRETTY_NAME . /etc/os-release 2>/dev/null case "${PRETTY_NAME}" in "Ubuntu 18.04"*) ;; *) unset setup_gl ;; esac fi if test -n "${setup_gl}"; then if test -e /usr/lib/virtualbox/additions/00vboxvideo.conf; then cp -f /usr/lib/virtualbox/additions/00vboxvideo.conf /etc/ld.so.conf.d/00vboxvideo.conf ldconfig fi fi /usr/bin/VBoxClient --vmsvga start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/VBoxService if [ $? -ne 0 ]; then log_end_msg 1 exit 1 fi log_end_msg 0 ;; stop) in_virtual_machine || exit 0 log_begin_msg "Stopping VirtualBox Additions" if test -e /etc/ld.so.conf.d/00vboxvideo.conf; then rm -f /etc/ld.so.conf.d/00vboxvideo.conf ldconfig fi start-stop-daemon --stop --quiet --oknodo --exec /usr/sbin/VBoxService if [ $? -ne 0 ]; then log_end_msg 1 exit 1 fi log_end_msg 0 ;; restart|force-reload) $0 stop && $0 start ;; status) if ! pgrep -x VBoxService > /dev/null; then echo "VBoxService daemon isn't running" exit 3 fi exit 0 ;; *) echo "Usage: $0 {start|stop|restart|force-reload|status}" exit 1 ;; esac