diff options
-rwxr-xr-x | builder/build-initramfs.sh | 14 | ||||
m--------- | builder/dnbd3-rootfs/binaries/dnbd3 | 0 | ||||
-rwxr-xr-x | builder/dnbd3-rootfs/binaries/nbd/Makefile | 8 | ||||
-rwxr-xr-x | builder/dnbd3-rootfs/module-setup.sh | 13 | ||||
-rw-r--r-- | dev-tools/virtualBoxTFTPRoot/pxelinux.cfg/default | 2 |
5 files changed, 30 insertions, 7 deletions
diff --git a/builder/build-initramfs.sh b/builder/build-initramfs.sh index acc3ed85..136f9299 100755 --- a/builder/build-initramfs.sh +++ b/builder/build-initramfs.sh @@ -67,7 +67,10 @@ build_initramfs_verbose='no' build_initramfs_debug='no' build_initramfs_create_system_image='no' build_initramfs_dependencies=(bash cpio git test shift echo mktemp cat rm sed \ - gzip curl tar grep make) + gzip curl tar grep make gcc cmake) +# TODO Check for: +# /usr/lib/x86_64-linux-gnu/libz.so +# for dnbd3 # endregion @@ -202,6 +205,12 @@ function build_initramfs_create_qcow2_system() { # region controller +# TODO link dracut module if present in same folder or download if not present +# already. +# TODO write clean procedure (also clean dracut module). +# TODO check for existing kernel headers: + # ubuntu: sudo apt-get install linux-headers-$(uname -r) + utils.dependency_check "${build_initramfs_dependencies[*]}" if ! build_initramfs_parse_command_line "$@"; then build_initramfs_print_help_message "$0" @@ -218,7 +227,8 @@ if [[ ! -L "$build_initramfs__dracut_modules_target" || "$(readlink \ "$build_initramfs__dracut_modules_target")" != \ "$build_initramfs__dracut_modules_source" ]] then - logging.info 'Link dnbd3 plugin into dracut modules folder.' + logging.info \ + "Link dnbd3 plugin into dracut modules folder ($build_initramfs__dracut_modules_source -> $build_initramfs__dracut_modules_target)." ln --symbolic "$build_initramfs__dracut_modules_source" \ "$build_initramfs__dracut_modules_target" # NOTE: If you copy we would have to recompile each binaries every time: diff --git a/builder/dnbd3-rootfs/binaries/dnbd3 b/builder/dnbd3-rootfs/binaries/dnbd3 -Subproject c3c050851dc866f2311d33a262ed81af8c57ce2 +Subproject 7e0668d1e4f78a0c7ff8689b197e2c104ce569e diff --git a/builder/dnbd3-rootfs/binaries/nbd/Makefile b/builder/dnbd3-rootfs/binaries/nbd/Makefile index 4dd501c3..2bd08b8e 100755 --- a/builder/dnbd3-rootfs/binaries/nbd/Makefile +++ b/builder/dnbd3-rootfs/binaries/nbd/Makefile @@ -3,13 +3,13 @@ obj-m += nbd.o all: build build: update - make --directory /lib/modules/$(shell uname -r)/build M=$(PWD) modules + make --directory /lib/modules/$(shell uname --kernel-release)/build M=$(PWD) modules install: - make --directory /lib/modules/$(shell uname -r)/build M=$(PWD) modules_install + make --directory /lib/modules/$(shell uname --kernel-release)/build M=$(PWD) modules_install clean: - make --directory /lib/modules/$(shell uname -r)/build M=$(PWD) clean + make --directory /lib/modules/$(shell uname --kernel-release)/build M=$(PWD) clean update: - curl --location --remote-name "https://raw.githubusercontent.com/torvalds/linux/v$(uname --kernel-release | cut --delimiter='.' --fields=1-2)/drivers/block/nbd.c" + curl --location --remote-name "https://raw.githubusercontent.com/torvalds/linux/v$(shell uname --kernel-release | cut --delimiter='.' --fields=1-2)/drivers/block/nbd.c" diff --git a/builder/dnbd3-rootfs/module-setup.sh b/builder/dnbd3-rootfs/module-setup.sh index b730b516..1a38b016 100755 --- a/builder/dnbd3-rootfs/module-setup.sh +++ b/builder/dnbd3-rootfs/module-setup.sh @@ -15,6 +15,19 @@ check() { utils_compile_systemd_preserve_process_marker \ "$moddir/binaries/systemd-preserve-process-marker/" fi + + # NOTE: This are workarounds for: + # - distributions where "systemd-udevd" doesn't lives in "/usr/lib" but in + # "/lib". + if [[ ! -f "${systemdutildir}/systemd-udevd" ]] && [[ -f /lib/systemd/systemd-udevd ]]; then + mkdir --parents "${initdir}${systemdutildir}" + ln --symbolic --force /lib/systemd/systemd-udevd \ + "${initdir}${systemdutildir}/systemd-udevd" + fi + # - "/usr/bin/sh" isn't available. + if [[ ! -f /usr/bin/sh ]] && [[ -f /bin/sh ]]; then + ln --symbolic --force /bin/sh /usr/bin/sh + fi return 0 } diff --git a/dev-tools/virtualBoxTFTPRoot/pxelinux.cfg/default b/dev-tools/virtualBoxTFTPRoot/pxelinux.cfg/default index efe9d298..ee38ed10 100644 --- a/dev-tools/virtualBoxTFTPRoot/pxelinux.cfg/default +++ b/dev-tools/virtualBoxTFTPRoot/pxelinux.cfg/default @@ -6,7 +6,7 @@ PROMPT 0 MENU TITLE My PXE Boot Menu LABEL arch -MENU LABEL ^arch network boot +MENU LABEL ^test network boot KERNEL /vmlinuz-linux APPEND initrd=/initramfs-test.img root=PARTLABEL=system rw rootflags=subvol=root loglevel=2 acpi_osi="!Windows 2012" rd.info rd.break ip=10.0.2.15::10.0.2.2:255.255.255.0 vconsole.font=latarcyrheb-sun16 vconsole.keymap=de-latin1-nodeadkeys rd.locale.LANG=de_DE.UTF-8 slxsrv=10.0.2.2:80,10.0.2.2:8080,10.0.2.2:8008,10.0.2.2:8090,10.0.2.2:8280,10.0.2.2:8888 slxbase=archLinux/ vga=current |