Skip to content

Commit

Permalink
Fix vboxsf host mounting.
Browse files Browse the repository at this point in the history
vboxguest is included in 4.16, but not vboxsf.
I couldn't get vboxsf to compile for 4.16, so I downgraded to 4.15.
  • Loading branch information
dlorenc authored and dlorenc committed Jul 16, 2018
1 parent fbd620a commit 2be51dc
Show file tree
Hide file tree
Showing 7 changed files with 96 additions and 2 deletions.
5 changes: 5 additions & 0 deletions Makefile
Expand Up @@ -169,6 +169,11 @@ else
$(ISO_BUILD_IMAGE) /usr/bin/make out/minikube.iso
endif

iso_in_docker:
docker run -it --rm --workdir /mnt --volume $(CURDIR):/mnt $(ISO_DOCKER_EXTRA_ARGS) \
--user $(shell id -u):$(shell id -g) --env HOME=/tmp --env IN_DOCKER=1 \
$(ISO_BUILD_IMAGE) /bin/bash

test-iso:
go test -v $(REPOPATH)/test/integration --tags=iso --minikube-args="--iso-url=file://$(shell pwd)/out/buildroot/output/images/rootfs.iso9660"

Expand Down
5 changes: 3 additions & 2 deletions deploy/iso/minikube-iso/configs/minikube_defconfig
Expand Up @@ -3,6 +3,7 @@ BR2_CCACHE=y
BR2_OPTIMIZE_2=y
BR2_TOOLCHAIN_BUILDROOT_VENDOR="minikube"
BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_15=y
BR2_BINUTILS_VERSION_2_30_X=y
BR2_GCC_VERSION_7_X=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
Expand All @@ -18,7 +19,7 @@ BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/coreos/minikube/use
BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/coreos/minikube/rootfs-overlay"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.16.14"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.15"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/coreos/minikube/linux_defconfig"
BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y
Expand All @@ -31,6 +32,7 @@ BR2_PACKAGE_CIFS_UTILS=y
BR2_PACKAGE_E2TOOLS=y
BR2_PACKAGE_NFS_UTILS=y
BR2_PACKAGE_SSHFS=y
BR2_PACKAGE_XFSPROGS=y
BR2_PACKAGE_PARTED=y
BR2_PACKAGE_CA_CERTIFICATES=y
BR2_PACKAGE_CURL=y
Expand All @@ -50,7 +52,6 @@ BR2_PACKAGE_SYSTEMD_LOGIND=y
BR2_PACKAGE_SYSTEMD_MACHINED=y
BR2_PACKAGE_SYSTEMD_VCONSOLE=y
BR2_PACKAGE_UTIL_LINUX_NSENTER=y
BR2_PACKAGE_XFSPROGS=y
BR2_TARGET_ROOTFS_CPIO_BZIP2=y
BR2_TARGET_ROOTFS_ISO9660=y
BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/coreos/minikube/isolinux.cfg"
Expand Down
1 change: 1 addition & 0 deletions deploy/iso/minikube-iso/package/Config.in
Expand Up @@ -10,4 +10,5 @@ menu "System tools"
source "$BR2_EXTERNAL_MINIKUBE_PATH/package/cni-plugins-bin/Config.in"
source "$BR2_EXTERNAL_MINIKUBE_PATH/package/hv-kvp-daemon/Config.in"
source "$BR2_EXTERNAL_MINIKUBE_PATH/package/gluster/Config.in"
source "$BR2_EXTERNAL_MINIKUBE_PATH/package/vbox-guest/Config.in"
endmenu
5 changes: 5 additions & 0 deletions deploy/iso/minikube-iso/package/vbox-guest/Config.in
@@ -0,0 +1,5 @@
config BR2_PACKAGE_VBOX_GUEST
bool "vbox-guest"
default y
depends on BR2_LINUX_KERNEL

3 changes: 3 additions & 0 deletions deploy/iso/minikube-iso/package/vbox-guest/vbox-guest.hash
@@ -0,0 +1,3 @@
# From http://download.virtualbox.org/virtualbox/5.1.30/SHA256SUMS
sha256 96cab2296fb014ce0a16b7b9603b52208b9403c10c1524b44201d3c274e8a821 VirtualBox-5.1.38.tar.bz2
sha256 0e7ee2c78ebf7cd0d3a933d51148bef04a64f64fb27ccf70d59cddf9ca1e517a VBoxGuestAdditions_5.1.38.iso
67 changes: 67 additions & 0 deletions deploy/iso/minikube-iso/package/vbox-guest/vbox-guest.mk
@@ -0,0 +1,67 @@
################################################################################
#
# VirtualBox Linux Guest Drivers
#
################################################################################

VBOX_GUEST_VERSION = 5.1.38
VBOX_GUEST_SITE = http://download.virtualbox.org/virtualbox/$(VBOX_GUEST_VERSION)
VBOX_GUEST_LICENSE = GPLv2
VBOX_GUEST_LICENSE_FILES = COPYING
VBOX_GUEST_SOURCE = VirtualBox-$(VBOX_GUEST_VERSION).tar.bz2
VBOX_GUEST_EXTRA_DOWNLOADS = http://download.virtualbox.org/virtualbox/${VBOX_GUEST_VERSION}/VBoxGuestAdditions_${VBOX_GUEST_VERSION}.iso

define VBOX_GUEST_EXPORT_MODULES
( cd $(@D)/src/VBox/Additions/linux; ./export_modules modules.tar.gz )
mkdir -p $(@D)/vbox-modules
tar -C $(@D)/vbox-modules -xzf $(@D)/src/VBox/Additions/linux/modules.tar.gz
endef

VBOX_GUEST_POST_EXTRACT_HOOKS += VBOX_GUEST_EXPORT_MODULES

VBOX_GUEST_MODULE_SUBDIRS = vbox-modules/
VBOX_GUEST_MODULE_MAKE_OPTS = KVERSION=$(LINUX_VERSION_PROBED)

define VBOX_GUEST_USERS
- -1 vboxsf -1 - - - - -
endef

define VBOX_GUEST_INSTALL_INIT_SYSTEMD
$(INSTALL) -D -m 644 \
$(BR2_EXTERNAL_MINIKUBE_PATH)/package/vbox-guest/vboxservice.service \
$(TARGET_DIR)/usr/lib/systemd/system/vboxservice.service

ln -fs /usr/lib/systemd/system/vboxservice.service \
$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/vboxservice.service
endef

define VBOX_GUEST_BUILD_CMDS
7z x -aoa $(BR2_DL_DIR)/vbox-guest/VBoxGuestAdditions_${VBOX_GUEST_VERSION}.iso -ir'!VBoxLinuxAdditions.run' -o"$(@D)"
sh $(@D)/VBoxLinuxAdditions.run --noexec --target $(@D)
tar --overwrite -C $(@D) -xjf $(@D)/VBoxGuestAdditions-amd64.tar.bz2 sbin/VBoxService
tar --overwrite -C $(@D) -xjf $(@D)/VBoxGuestAdditions-amd64.tar.bz2 bin/VBoxControl

$(TARGET_CC) -Wall -O2 -D_GNU_SOURCE -DIN_RING3 \
-I$(@D)/vbox-modules/vboxsf/include \
-I$(@D)/vbox-modules/vboxsf \
-o $(@D)/vbox-modules/mount.vboxsf \
$(@D)/src/VBox/Additions/linux/sharedfolders/vbsfmount.c \
$(@D)/src/VBox/Additions/linux/sharedfolders/mount.vboxsf.c
endef

define VBOX_GUEST_INSTALL_TARGET_CMDS
$(INSTALL) -Dm755 \
$(@D)/vbox-modules/mount.vboxsf \
$(TARGET_DIR)/sbin

$(INSTALL) -Dm755 \
$(@D)/sbin/VBoxService \
$(TARGET_DIR)/sbin

$(INSTALL) -Dm755 \
$(@D)/bin/VBoxControl \
$(TARGET_DIR)/bin
endef

$(eval $(kernel-module))
$(eval $(generic-package))
12 changes: 12 additions & 0 deletions deploy/iso/minikube-iso/package/vbox-guest/vboxservice.service
@@ -0,0 +1,12 @@
[Unit]
Description=VirtualBox Guest Service
ConditionVirtualization=oracle

[Service]
ExecStartPre=-/usr/sbin/modprobe vboxguest
ExecStartPre=-/usr/sbin/modprobe vboxvideo
ExecStartPre=-/usr/sbin/modprobe vboxsf
ExecStart=/usr/sbin/VBoxService -f --disable-automount

[Install]
WantedBy=multi-user.target

0 comments on commit 2be51dc

Please sign in to comment.