summaryrefslogtreecommitdiffstats
path: root/core/modules/dnbd3
diff options
context:
space:
mode:
authorJonathan Bauer2020-07-31 13:17:08 +0200
committerJonathan Bauer2020-07-31 13:17:08 +0200
commit68a4c77caff4cd23e45e2148bb27e530ca0ad189 (patch)
treee26c129f16202733c9f7109fbceffffa298d24bf /core/modules/dnbd3
parent[dnbd3] do not build kernel module (diff)
downloadmltk-68a4c77caff4cd23e45e2148bb27e530ca0ad189.tar.gz
mltk-68a4c77caff4cd23e45e2148bb27e530ca0ad189.tar.xz
mltk-68a4c77caff4cd23e45e2148bb27e530ca0ad189.zip
Revert "[dnbd3] do not build kernel module"
This reverts commit 2ef2b7332c94dd9e55c8a0232dcdc7e7058c3402.
Diffstat (limited to 'core/modules/dnbd3')
-rw-r--r--core/modules/dnbd3/module.build25
-rw-r--r--core/modules/dnbd3/module.conf6
2 files changed, 29 insertions, 2 deletions
diff --git a/core/modules/dnbd3/module.build b/core/modules/dnbd3/module.build
index 8ebc1983..66c19abc 100644
--- a/core/modules/dnbd3/module.build
+++ b/core/modules/dnbd3/module.build
@@ -1,16 +1,39 @@
#!/bin/bash
fetch_source() {
+ mkdir -p "src/kmod"
autoclone
+ cp src/dnbd3/Kbuild.in src/dnbd3/src/*.{c,h} src/dnbd3/src/kernel/*.{c,h} src/kmod/ || perror "Could not copy kernel module source files"
+ cat > "src/kmod/Makefile" <<HEREEND
+include \$(PWD)/Kbuild.in
+
+ifndef KDIR
+ KDIR = /lib/modules/\$(shell uname -r)/build
+endif
+
+all:
+ make -C "\$(KDIR)" "M=\$(PWD)" modules
+
+clean:
+ make -C "\$(KDIR)" "M=\$(PWD)" clean
+HEREEND
}
build() {
+ cd "${MODULE_WORK_DIR}/src/kmod" \
+ || perror "Could not CD to standalone dnbd3 kmod dir"
+ make MODULE_NAME=dnbd3 KDIR="$KERNEL_HEADERS_DIR" \
+ || perror "Could not compile kernel module"
+ mkdir -p "${MODULE_BUILD_DIR}/lib/modules/${TARGET_KERNEL_LONG}/kernel/drivers/block" \
+ || perror "Could not create lib/modules/${TARGET_KERNEL_LONG}/kernel/drivers/block"
mkdir -p "${MODULE_BUILD_DIR}/opt/openslx/bin" \
|| perror "Could not create opt/openslx/bin"
+ cp "${MODULE_WORK_DIR}/src/kmod/dnbd3.ko" "${MODULE_BUILD_DIR}/lib/modules/${TARGET_KERNEL_LONG}/kernel/drivers/block/" \
+ || perror "Could not copy dnbd3.ko"
cd "${MODULE_BUILD_DIR}/opt/openslx/bin" \
|| perror "Could not cd to build dir for client binary"
cmake \
-DBUILD_FUSE_CLIENT=ON \
- -DBUILD_KERNEL_MODULE=OFF \
+ -DBUILD_KERNEL_MODULE=ON \
-DBUILD_SERVER=ON \
-DBUILD_SERVER_FUSE=ON \
-DBUILD_STRESSTEST=OFF \
diff --git a/core/modules/dnbd3/module.conf b/core/modules/dnbd3/module.conf
index bcf87bb4..47c250f1 100644
--- a/core/modules/dnbd3/module.conf
+++ b/core/modules/dnbd3/module.conf
@@ -1,7 +1,9 @@
#!/bin/bash
REQUIRED_MODULES="
+ kernel
slxlog
"
+REQUIRED_MODULES="kernel"
REQUIRED_GIT="https://git.openslx.org/dnbd3.git||fuse_ll"
REQUIRED_BINARIES="
dnbd3-client
@@ -9,4 +11,6 @@ REQUIRED_BINARIES="
fusermount
dnbd3-server
"
-REQUIRED_DIRECTORIES=""
+REQUIRED_DIRECTORIES="
+ /lib/modules
+"