diff options
Diffstat (limited to 'modules.d/dnbd3-rootfs/module-setup.sh')
-rwxr-xr-x | modules.d/dnbd3-rootfs/module-setup.sh | 55 |
1 files changed, 32 insertions, 23 deletions
diff --git a/modules.d/dnbd3-rootfs/module-setup.sh b/modules.d/dnbd3-rootfs/module-setup.sh index 955fd9b9..bc1daf0c 100755 --- a/modules.d/dnbd3-rootfs/module-setup.sh +++ b/modules.d/dnbd3-rootfs/module-setup.sh @@ -57,12 +57,13 @@ check() { # non-critical if failed $xmount_is_built || echo "Compiling 'xmount'/'libxmount_input_qemu' failed." - if [[ ! -f "$moddir/binaries/dnbd3/build/dnbd3.ko" ]] || \ - [[ ! -f "$moddir/binaries/dnbd3/build/dnbd3-client" ]]; then - CMAKE_FLAGS="-DKERNEL_VERSION=${kernel}" \ + if [[ ! -f "$moddir/binaries/dnbd3/build/src/kernel/dnbd3/dnbd3.ko" ]] || \ + [[ ! -f "$moddir/binaries/dnbd3/build/src/client/dnbd3-client" ]]; then + CMAKE_FLAGS="-DKERNEL_BUILD_DIR=${kernel}" \ build_compile_dnbd3 "$moddir/binaries/dnbd3/" [[ $? != 0 ]] && return 1 fi + # TODO xloop checks & remove them from installkernel if [[ ! -f "$moddir/binaries/systemd-preserve-process-marker/systemd-preserve-process-marker" ]]; then build_compile_systemd_preserve_process_marker \ "$moddir/binaries/systemd-preserve-process-marker/" @@ -90,31 +91,39 @@ depends() { echo base bash kernel-modules shutdown slx-dmsetup slx-network } installkernel() { - local block_kmod_dir="/lib/modules/${kernel}/kernel/drivers/block" + local extra_kmod_dir="/lib/modules/${kernel}/extra" # dnbd3 - mkdir -p "${initdir}/${block_kmod_dir}" - inst "${moddir}/binaries/dnbd3/build/dnbd3.ko" "${block_kmod_dir}/dnbd3.ko" + mkdir -p "${initdir}/${extra_kmod_dir}" + inst "${moddir}/binaries/dnbd3/build/src/kernel/dnbd3/dnbd3.ko" "${extra_kmod_dir}/dnbd3.ko" # kqcow2 kernel - 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}/xloop" - for kmod in "${kqcow_loop_kmod_dir}/"*.ko ; do - inst "$kmod" "${block_kmod_dir}/xloop/$(basename $kmod)" - done - fi + local xloop_kmod_build_dir="${moddir}/binaries/xloop/build/src/kernel" + + for mod in xloop xloop_file_fmt_raw xloop_file_fmt_qcow; do + if [ ! -e "${xloop_kmod_build_dir}/${mod}/${mod}.ko" ]; then + derror "Failed to find '$mod' in '$xloop_kmod_build_dir'." + continue + # TODO fatal fail once we move completely to xloop + fi + inst "${xloop_kmod_build_dir}/${mod}/${mod}.ko" "${extra_kmod_dir}" + done +# if [ -e "${xloop_build_dir}/xloop.ko" ] && \ +# [ -e "${xloop_build_dir}/loop_file_fmt_raw.ko" ] && \ +# [ -e "${xloop_build_dir}/loop_file_fmt_qcow.ko" ]; then +# for kmod in "${kqcow_loop_kmod_dir}/"*.ko ; do +# inst "$kmod" "${block_kmod_dir}/xloop/$(basename $kmod)" +# done +# fi } install() { # region binaries - inst "$moddir/binaries/dnbd3/build/dnbd3-client" /usr/local/bin/dnbd3-client - inst "$moddir/binaries/systemd-preserve-process-marker/systemd-preserve-process-marker" \ + inst "${moddir}/binaries/dnbd3/build/src/client/dnbd3-client" /usr/local/bin/dnbd3-client + inst "${moddir}/binaries/systemd-preserve-process-marker/systemd-preserve-process-marker" \ /usr/local/bin/systemd-preserve-process-marker # xmount local \ - xmount_installation="$moddir/binaries/xmount/trunk/build/release_build" + xmount_installation="${moddir}/binaries/xmount/trunk/build/release_build" if [ -f "${xmount_installation}/usr/bin/xmount" ]; then inst "${xmount_installation}/usr/bin/xmount" /usr/bin/xmount for file in ${xmount_installation}/usr/lib/xmount/*; do @@ -127,12 +136,12 @@ install() { inst_libdir_file 'libafflib.so*' inst_libdir_file 'libewf.so*' fi - # 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/xlosetup + # xlosetup + local xlosetup_build_path="${moddir}/binaries/xloop/build/src/utils/sys-utils/xlosetup" + if [ -f "$xlosetup_build_path" ]; then + inst "$xlosetup_build_path}" /usr/local/bin/xlosetup fi - local xloop_udev_rule="${moddir}/binaries/xloop/udev/50-xloop.rules" + local xloop_udev_rule="${moddir}/binaries/xloop/src/kernel/udev/50-xloop.rules" if [ -f "$xloop_udev_rule" ]; then inst "$xloop_udev_rule" "/etc/udev/rules.d/${xloop_udev_rule##*/}" fi |