From 934e80a96ee7685718e3c4b0ead315e4c1845083 Mon Sep 17 00:00:00 2001 From: Oystein Tveit Date: Tue, 4 Jul 2023 16:50:03 +0200 Subject: [PATCH] Initial commit --- features/usbip-dkms/devcontainer-feature.json | 28 +++++++++++++++ features/usbip-dkms/dkms.conf | 17 +++++++++ features/usbip-dkms/install.sh | 35 +++++++++++++++++++ 3 files changed, 80 insertions(+) create mode 100644 features/usbip-dkms/devcontainer-feature.json create mode 100644 features/usbip-dkms/dkms.conf create mode 100644 features/usbip-dkms/install.sh diff --git a/features/usbip-dkms/devcontainer-feature.json b/features/usbip-dkms/devcontainer-feature.json new file mode 100644 index 0000000..fb71eaa --- /dev/null +++ b/features/usbip-dkms/devcontainer-feature.json @@ -0,0 +1,28 @@ +{ + "name": "USBIP DKMS Module", + "id": "usbip-dkms", + "version": "0.1.0", + "description": "DKMS module for USBIP", + + "installsAfter": [ + "ghcr.io/devcontainers/features/common-utils" + ], + + "options": { + "kernelVersion": { + "type": "string", + "proposals": [ + "v4.4", + "v4.14", + "v4.19", + "v5.4", + "v5.10", + "v5.15", + "v6.1", + "v6.3", + "v6.4" + ], + "default": "" + } + } +} diff --git a/features/usbip-dkms/dkms.conf b/features/usbip-dkms/dkms.conf new file mode 100644 index 0000000..acbd148 --- /dev/null +++ b/features/usbip-dkms/dkms.conf @@ -0,0 +1,17 @@ +PACKAGE_NAME="usbip" +PACKAGE_VERSION="#MODULE_VERSION#" + +BUILT_MODULE_NAME[0]="usbip-core" +DEST_MODULE_LOCATION[0]="/kernel/drivers/usb/usbip" + +BUILT_MODULE_NAME[1]="vhci-hcd" +DEST_MODULE_LOCATION[1]="/kernel/drivers/usb/usbip" + +BUILT_MODULE_NAME[2]="usbip-host" +DEST_MODULE_LOCATION[2]="/kernel/drivers/usb/usbip" + +BUILT_MODULE_NAME[3]="usbip-vudc" +DEST_MODULE_LOCATION[3]="/kernel/drivers/usb/usbip" + +AUTOINSTALL="YES" + diff --git a/features/usbip-dkms/install.sh b/features/usbip-dkms/install.sh new file mode 100644 index 0000000..64d7c48 --- /dev/null +++ b/features/usbip-dkms/install.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +KERNEL_VERSION="${KERNELVERSION:-}" + +set -euo + +if [ -z "$KERNEL_VERSION" ]; then + KERNEL_VERSION="v$(uname -r | grep -Po '\d\.\d+')" + if [ "$KERNEL_VERSION" == 'v' ]; then + >&2 echo "Could not automatically determine kernel version. Please set kernelVersion in the feature config." + fi +fi + +apt update +apt install -y --no-install-recommends \ + ca-certificates \ + dkms \ + git \ + "linux-headers-$(uname -r)" \ + subversion + +# Trick to be able to only download the usbip folder +svn export "https://github.com/torvalds/linux/tags/${KERNEL_VERSION}/drivers/usb/usbip" "/usr/src/usbip-${KERNEL_VERSION}" +install -m644 dkms.conf "/usr/src/usbip-${KERNEL_VERSION}/dkms.conf" + +sed -i "s|#MODULE_VERSION#|${KERNEL_VERSION}|" "/usr/src/usbip-${KERNEL_VERSION}/dkms.conf" + +export CONFIG_USBIP_CORE=m +export CONFIG_VHCI_HCD=m +export CONFIG_USBIP_HOST=m +export CONFIG_USBIP_VUDC=m + +dkms add -m usbip -v "${KERNEL_VERSION}" +dkms build -m usbip -v "${KERNEL_VERSION}" +dkms install -m usbip -v "${KERNEL_VERSION}"