summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Bauer2020-05-29 18:20:09 +0200
committerJonathan Bauer2020-05-29 18:20:09 +0200
commiteadece568d4a33d6ef257b51108358c2aba1b25c (patch)
tree92c6b3dcd5f2f679fb1c103995e142ffac1eba6f
parentxloop (diff)
downloadsystemd-init-eadece568d4a33d6ef257b51108358c2aba1b25c.tar.gz
systemd-init-eadece568d4a33d6ef257b51108358c2aba1b25c.tar.xz
systemd-init-eadece568d4a33d6ef257b51108358c2aba1b25c.zip
more work for xloop support
-rwxr-xr-xbuild-initramfs.sh6
-rw-r--r--modules.d/dnbd3-rootfs/helper/build.inc22
-rwxr-xr-xmodules.d/dnbd3-rootfs/module-setup.sh13
3 files changed, 19 insertions, 22 deletions
diff --git a/build-initramfs.sh b/build-initramfs.sh
index 806bbc66..e22dadc5 100755
--- a/build-initramfs.sh
+++ b/build-initramfs.sh
@@ -43,7 +43,7 @@ declare -A core_repo=(
[handler]="git"
[path]="$_repo_dir"
[url]="git://git.openslx.org/openslx-ng/systemd-init.git"
- [branch]="downloader"
+ [branch]="downloader-xloop"
)
declare -A core_dracut=(
@@ -78,8 +78,8 @@ declare -A module_xmount=(
declare -A module_kernel_qcow2_linux=(
[handler]="git"
- [url]="git://git.openslx.org/openslx/kernel-qcow2-linux.git"
- [path]="${_repo_dir}/modules.d/dnbd3-rootfs/binaries/kernel-qcow2-linux"
+ [url]="git://git.openslx.org/openslx-ng/xloop.git"
+ [path]="${_repo_dir}/modules.d/dnbd3-rootfs/binaries/xloop"
[branch]="kernel-qcow2-linux-4.19.y"
)
diff --git a/modules.d/dnbd3-rootfs/helper/build.inc b/modules.d/dnbd3-rootfs/helper/build.inc
index c36bce16..68b99a8e 100644
--- a/modules.d/dnbd3-rootfs/helper/build.inc
+++ b/modules.d/dnbd3-rootfs/helper/build.inc
@@ -45,18 +45,18 @@ build_initialize_components() {
fi
fi
if [ "$qcow_handler" = "kernel" ]; then
- if [ ! -f "${_deps_base_dir}/xloop/loop.ko" ] \
+ if [ ! -f "${_deps_base_dir}/xloop/xloop.ko" ] \
|| [ ! -f "${_deps_base_dir}/xloop/loop_file_fmt_qcow.ko" ] \
|| [ ! -f "${_deps_base_dir}/xloop/loop_file_fmt_raw.ko" ]; then
echo "Could not find loop kernel modules, building them..."
- if ! build_compile_kernel_qcow "${_deps_base_dir}/xloop"; then
+ if ! build_compile_xloop "${_deps_base_dir}/xloop"; then
echo "Failed to build qcow loop kernel modules."
return 1
fi
fi
if [ ! -f "${_deps_base_dir}/kernel-qcow2-util-linux/losetup" ]; then
echo "Could not find losetup with qcow2 support, building it..."
- if ! build_compile_losetup_qcow "${_deps_base_dir}/kernel-qcow2-util-linux"; then
+ if ! build_compile_xlosetup "${_deps_base_dir}/kernel-qcow2-util-linux"; then
echo "Failed to build losetup with qcow support."
return 1
fi
@@ -89,8 +89,8 @@ clean_components() {
build_clean_xmount "${_submoddir}/xmount/"
build_clean_qemu_xmount "${_submoddir}/qemu-xmount/"
build_clean_dnbd3 "${_submoddir}/dnbd3/"
- build_clean_losetup_qcow "${_submoddir}/kernel-qcow2-util-linux"
- build_clean_dnbd3 "${_submoddir}/dnbd3/"
+ build_clean_xloop "${_submoddir}/xloop"
+ build_clean_xlosetup "${_submoddir}/kernel-qcow2-util-linux"
build_clean_systemd_preserve_process_marker \
"${_submoddir}/systemd-preserve-process-marker/"
return 0
@@ -204,7 +204,7 @@ build_clean_dnbd3() {
rm --recursive --force "$1/build"
return $?
}
-build_compile_kernel_qcow() {
+build_compile_xloop() {
pushd "$1"
# https://lab.ks.uni-freiburg.de/projects/kernel-qcow2/wiki
if [ -z "$kernel_headers" ]; then
@@ -219,13 +219,9 @@ build_compile_kernel_qcow() {
popd
return $ret
}
-build_clean_kernel_qcow() {
- if [ -z "$kernel_headers" ]; then
- echo "Kernel header directory not set, ignoring."
- return 1
- fi
- pushd "$kernel_headers"
- make -C "$kernel_headers" M=$(pwd)/drivers/block/loop clean
+build_clean_xloop() {
+ pushd "$1"
+ make clean
local ret=$?
popd
return $ret
diff --git a/modules.d/dnbd3-rootfs/module-setup.sh b/modules.d/dnbd3-rootfs/module-setup.sh
index 01d3c736..a57a3aeb 100755
--- a/modules.d/dnbd3-rootfs/module-setup.sh
+++ b/modules.d/dnbd3-rootfs/module-setup.sh
@@ -97,13 +97,13 @@ installkernel() {
inst "${moddir}/binaries/dnbd3/build/dnbd3.ko" "${block_kmod_dir}/dnbd3.ko"
# kqcow2 kernel
- local kqcow_loop_kmod_dir="${moddir}/binaries/kernel-qcow2-linux/drivers/block/loop"
- if [ -e "${kqcow_loop_kmod_dir}/loop.ko" ] && \
+ local kqcow_loop_kmod_dir="${moddir}/binaries/xloop"
+ if [ -e "${kqcow_loop_kmod_dir}/xloop.ko" ] && \
[ -e "${kqcow_loop_kmod_dir}/loop_file_fmt_raw.ko" ] && \
[ -e "${kqcow_loop_kmod_dir}/loop_file_fmt_qcow.ko" ]; then
- mkdir -p "${initdir}/${block_kmod_dir}/loop"
+ mkdir -p "${initdir}/${block_kmod_dir}/xloop"
for kmod in "${kqcow_loop_kmod_dir}/"*.ko ; do
- inst "$kmod" "${block_kmod_dir}/loop/$(basename $kmod)"
+ inst "$kmod" "${block_kmod_dir}/xloop/$(basename $kmod)"
done
fi
}
@@ -130,9 +130,10 @@ install() {
# kqcow2 losetup
local losetup_qcow2_dir="$moddir/binaries/kernel-qcow2-util-linux"
if [[ -f "${losetup_qcow2_dir}/.libs/losetup" ]]; then
- inst "${losetup_qcow2_dir}/.libs/losetup" /usr/local/bin/losetup
+ inst "${losetup_qcow2_dir}/.libs/losetup" /usr/local/bin/xlosetup
mkdir -p "${initdir}/usr/local/lib"
- cp -a "${losetup_qcow2_dir}/.libs/"*.so* "${initdir}/usr/local/lib"
+ # no longer needed since we compile those libs statically into losetup
+ #cp -a "${losetup_qcow2_dir}/.libs/"*.so* "${initdir}/usr/local/lib"
fi
# endregion
# region hooks