diff --git a/Dockerfile.dapper b/Dockerfile.dapper index 81dd4eee..2594c7b3 100644 --- a/Dockerfile.dapper +++ b/Dockerfile.dapper @@ -2,7 +2,7 @@ FROM rancher/os-dapper-base RUN apt-get update && \ apt-get -y install locales sudo vim less curl wget git rsync build-essential isolinux xorriso gccgo \ - libblkid-dev libmount-dev libselinux1-dev cpio genisoimage qemu-kvm qemu python-pip ca-certificates pkg-config tox + libblkid-dev libmount-dev libselinux1-dev cpio genisoimage qemu-kvm qemu python-pip ca-certificates pkg-config tox module-init-tools ARG HOST_ARCH ENV HOST_ARCH ${HOST_ARCH} diff --git a/Makefile b/Makefile index 48fef23b..6c3edf74 100644 --- a/Makefile +++ b/Makefile @@ -30,6 +30,10 @@ assets/selinux/policy.29: mkdir -p $(dir $@) curl -L "$(SELINUX_POLICY_URL)" > $@ +assets/modules.tar.gz: + mkdir -p $(dir $@) + curl -L "$(VBOX_MODULES_URL)" > $@ + ifdef COMPILED_KERNEL_URL installer: minimal @@ -45,9 +49,10 @@ build/kernel/: curl -L "$(COMPILED_KERNEL_URL)" | tar -xzf - -C $@ -dist/artifacts/initrd: bin/ros assets/docker assets/selinux/policy.29 build/kernel/ build/images.tar +dist/artifacts/initrd: bin/ros assets/docker assets/selinux/policy.29 build/kernel/ build/images.tar assets/modules.tar.gz mkdir -p $(dir $@) - SUFFIX=$(SUFFIX) DFS_IMAGE=$(DFS_IMAGE) DEV_BUILD=$(DEV_BUILD) ./scripts/mk-initrd.sh $@ + SUFFIX=$(SUFFIX) DFS_IMAGE=$(DFS_IMAGE) DEV_BUILD=$(DEV_BUILD) \ + KERNEL_RELEASE=$(KERNEL_RELEASE) ARCH=$(ARCH) ./scripts/mk-initrd.sh $@ dist/artifacts/rancheros.iso: minimal @@ -77,7 +82,7 @@ build/images.tar: build/host_ros build/os-config.yml ARCH=$(ARCH) FORCE_PULL=$(FORCE_PULL) ./scripts/mk-images-tar.sh -dist/artifacts/rootfs.tar.gz: bin/ros assets/docker build/images.tar assets/selinux/policy.29 +dist/artifacts/rootfs.tar.gz: bin/ros assets/docker build/images.tar assets/selinux/policy.29 assets/modules.tar.gz mkdir -p $(dir $@) SUFFIX=$(SUFFIX) DFS_IMAGE=$(DFS_IMAGE) DEV_BUILD=$(DEV_BUILD) IS_ROOTFS=1 ./scripts/mk-initrd.sh $@ diff --git a/build.conf.amd64 b/build.conf.amd64 index 2c5c0fe8..25412ec2 100644 --- a/build.conf.amd64 +++ b/build.conf.amd64 @@ -4,3 +4,4 @@ TOOLCHAIN= #empty COMPILED_KERNEL_URL=https://github.com/rancher/os-kernel/releases/download/Ubuntu-4.2.0-28.33-rancher/linux-4.2.8-ckt3-rancher-x86.tar.gz DOCKER_BINARY_URL=https://get.docker.com/builds/Linux/x86_64/docker-1.10.3 OS_RELEASES_YML=https://releases.rancher.com/os/releases.yml +VBOX_MODULES_URL=https://github.com/rancher/os-vbox/releases/download/v0.0.2/vbox-modules.tar.gz diff --git a/scripts/mk-initrd.sh b/scripts/mk-initrd.sh index 4f847251..9dbfb267 100755 --- a/scripts/mk-initrd.sh +++ b/scripts/mk-initrd.sh @@ -36,6 +36,11 @@ cp assets/selinux/seusers ${INITRD_DIR}/usr/etc/selinux/ros/ cp assets/selinux/lxc_contexts ${INITRD_DIR}/usr/etc/selinux/ros/contexts/ cp assets/selinux/failsafe_context ${INITRD_DIR}/usr/etc/selinux/ros/contexts/ +if [ "$ARCH" == "amd64" ]; then + KERNEL_RELEASE=$(tar xvf assets/modules.tar.gz -C ${INITRD_DIR} | cut -f4 -d/ | cut -f1 -d ' ') + depmod -a -b ${INITRD_DIR}/usr $KERNEL_RELEASE +fi + DFS_ARCH=$(docker create ${DFS_IMAGE}${SUFFIX}) trap "docker rm -fv ${DFS_ARCH}" EXIT