VirtualBox

source: vbox/trunk/src/VBox/Installer/linux/postinst-common.sh@ 77827

Last change on this file since 77827 was 77196, checked in by vboxsync, 6 years ago

Help text: explain about EFI Secure Boot and signing.
ticketref:18312: Unable to build Virtualbox 6.0 on Fedora 29
When a user tries to use VirtualBox on a Linux system with EFI Secure Boot
enabled, it sometimes fails in a non-obvious way due to unsigned kernel
modules. As it is rather tricky to detect this properly, mention it in the
help text which is shown when there are problems with the modules.

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Author Date Id Revision
File size: 4.1 KB
Line 
1#!/bin/sh
2# $Id: postinst-common.sh 77196 2019-02-07 13:33:50Z vboxsync $
3## @file
4# Oracle VM VirtualBox
5# VirtualBox Linux post-installer common portions
6#
7
8#
9# Copyright (C) 2015-2019 Oracle Corporation
10#
11# This file is part of VirtualBox Open Source Edition (OSE), as
12# available from http://www.virtualbox.org. This file is free software;
13# you can redistribute it and/or modify it under the terms of the GNU
14# General Public License (GPL) as published by the Free Software
15# Foundation, in version 2 as it comes in the "COPYING" file of the
16# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
17# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
18#
19
20# Put bits of the post-installation here which should work the same for all of
21# the Linux installers. We do not use special helpers (e.g. dh_* on Debian),
22# but that should not matter, as we know what those helpers actually do, and we
23# have to work on those systems anyway when installed using the all
24# distributions installer.
25#
26# We assume that all required files are in the same folder as this script
27# (e.g. /opt/VirtualBox, /usr/lib/VirtualBox, the build output directory).
28
29# The below is GNU-specific. See VBox.sh for the longer Solaris/OS X version.
30TARGET=`readlink -e -- "${0}"` || exit 1
31MY_PATH="${TARGET%/[!/]*}"
32cd "${MY_PATH}"
33. "./routines.sh"
34
35START=true
36while test -n "${1}"; do
37 case "${1}" in
38 --nostart)
39 START=
40 ;;
41 *)
42 echo "Bad argument ${1}" >&2
43 exit 1
44 ;;
45 esac
46 shift
47done
48
49# Remove any traces of DKMS from previous installations.
50for i in vboxhost vboxdrv vboxnetflt vboxnetadp; do
51 rm -rf "/var/lib/dkms/${i}"*
52done
53
54# Install runlevel scripts and systemd unit files
55install_init_script "${MY_PATH}/vboxdrv.sh" vboxdrv
56install_init_script "${MY_PATH}/vboxballoonctrl-service.sh" vboxballoonctrl-service
57install_init_script "${MY_PATH}/vboxautostart-service.sh" vboxautostart-service
58install_init_script "${MY_PATH}/vboxweb-service.sh" vboxweb-service
59finish_init_script_install
60
61delrunlevel vboxdrv
62addrunlevel vboxdrv
63delrunlevel vboxballoonctrl-service
64addrunlevel vboxballoonctrl-service
65delrunlevel vboxautostart-service
66addrunlevel vboxautostart-service
67delrunlevel vboxweb-service
68addrunlevel vboxweb-service
69
70ln -sf "${MY_PATH}/postinst-common.sh" /sbin/vboxconfig
71
72# Set SELinux permissions
73# XXX SELinux: allow text relocation entries
74if [ -x /usr/bin/chcon ]; then
75 chcon -t texrel_shlib_t "${MY_PATH}"/*VBox* > /dev/null 2>&1
76 chcon -t texrel_shlib_t "${MY_PATH}"/VBoxAuth.so \
77 > /dev/null 2>&1
78 chcon -t texrel_shlib_t "${MY_PATH}"/VirtualBox.so \
79 > /dev/null 2>&1
80 chcon -t texrel_shlib_t "${MY_PATH}"/components/VBox*.so \
81 > /dev/null 2>&1
82 chcon -t java_exec_t "${MY_PATH}"/VirtualBox > /dev/null 2>&1
83 chcon -t java_exec_t "${MY_PATH}"/VBoxSDL > /dev/null 2>&1
84 chcon -t java_exec_t "${MY_PATH}"/VBoxHeadless \
85 > /dev/null 2>&1
86 chcon -t java_exec_t "${MY_PATH}"/VBoxNetDHCP \
87 > /dev/null 2>&1
88 chcon -t java_exec_t "${MY_PATH}"/VBoxNetNAT \
89 > /dev/null 2>&1
90 chcon -t java_exec_t "${MY_PATH}"/VBoxExtPackHelperApp \
91 > /dev/null 2>&1
92 chcon -t java_exec_t "${MY_PATH}"/vboxwebsrv > /dev/null 2>&1
93 chcon -t bin_t "${MY_PATH}"/src/vboxhost/build_in_tmp \
94 > /dev/null 2>&1
95 chcon -t bin_t /usr/share/virtualbox/src/vboxhost/build_in_tmp \
96 > /dev/null 2>&1
97fi
98
99test -n "${START}" &&
100{
101 if ! "${MY_PATH}/vboxdrv.sh" setup; then
102 "${MY_PATH}/check_module_dependencies.sh" >&2
103 echo >&2
104 echo "There were problems setting up VirtualBox. To re-start the set-up process, run" >&2
105 echo " /sbin/vboxconfig" >&2
106 echo "as root. If your system is using EFI Secure Boot you may need to sign the" >&2
107 echo "kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load" >&2
108 echo " them. Please see your Linux system's documentation for more information." >&2
109 else
110 start_init_script vboxdrv
111 start_init_script vboxballoonctrl-service
112 start_init_script vboxautostart-service
113 start_init_script vboxweb-service
114 fi
115}
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette