From 9670f5bf857d1abc32c0a9a040599197a05f00fb Mon Sep 17 00:00:00 2001 From: illiliti Date: Thu, 13 Feb 2020 05:18:53 +0300 Subject: [PATCH] general improvements --- generate | 11 ++++++----- init | 42 ++++++++++++------------------------------ 2 files changed, 18 insertions(+), 35 deletions(-) diff --git a/generate b/generate index d84b005..9afc412 100755 --- a/generate +++ b/generate @@ -22,6 +22,7 @@ msg() { # create tmpdir create_tmpdir() { + msg info "creating working directory" if [ -n "$XDG_CACHE_HOME" ]; then tmpdir="${XDG_CACHE_HOME}/initramfs.$$" elif [ -n "$TMPDIR" ]; then @@ -35,7 +36,7 @@ create_tmpdir() { # remove tmpdir remove_tmpdir() { - msg info "removing work dir" + msg info "removing working dir" rm -rf "$tmpdir" } @@ -276,12 +277,13 @@ install_all_drivers() { "${modker}/drivers/virtio" \ -type f 2> /dev/null) - modker="${moddir}/${kernel}" } # generate "modules" files generate_depmod() { - msg info "generating dependendies list of drivers" + msg info "running depmod" + modker="${moddir}/${kernel}" + # install list of drivers cp "${modker}/modules.softdep" "${modker}/modules.builtin" "${modker}/modules.order" "${tmpdir}/${modker}" @@ -312,7 +314,6 @@ install_binaries() { # handle libraries install_libraries() { for library in $(ldd "$(command -v $1)" | sed -nre 's,.* (/.*lib.*/.*.so.*) .*,\1,p' -e 's,.*(/lib.*/ld.*.so.*) .*,\1,p'); do - msg info "installing library $library" # check symlink if [ -h "$library" ]; then # check lib already existence @@ -407,7 +408,7 @@ trap remove_tmpdir EXIT INT check_currentdir # source config -. ./config || msg panic "./config doesn't exists" +. ./config || msg panic "failed to source config" # handle debug mode [ "$debug" = 1 ] && { diff --git a/init b/init index c715d45..79578df 100644 --- a/init +++ b/init @@ -3,7 +3,8 @@ # tiny init script panic() { - printf "panic >> %s\n" "$1" && sh + printf "panic >> %s\n" "$1" + sh -l } # parse_cmdline() { @@ -31,10 +32,10 @@ use_mdev() { mdev -s # trigger uevent for usb devices - for u in /sys/bus/usb/devices/*; do - case ${u##*/} in + for device in /sys/bus/usb/devices/*; do + case ${device##*/} in [0-9]*-[0-9]*) - printf add > "${u}/uevent" + printf add > "${device}/uevent" ;; esac done @@ -86,51 +87,32 @@ findfs_sh() { # unlock LUKS container unlock_luks() { - # find device of luks root - luks_root="$(findfs_sh $luks_root)" - # TODO investigate this # avoid race condition [ "$devmgr" != "udev" ] && sleep 1.5 # TODO improve mapper name ( crypttab or config option ) # unlock luks container - cryptsetup $luks_args luksOpen "$luks_root" luks_root || panic "failed to unlock luks container" + cryptsetup $luks_args luksOpen $(findfs_sh "$luks_root") luks_root || panic "failed to unlock luks container" } -# manually trigger LVM if udev disabled +# manually trigger LVM trigger_lvm() { lvm vgchange --quiet --sysinit -a y > /dev/null } # mount rootfs to /mnt/root mnt_rootfs() { - # merge mount flags - [ -n "$root_args" ] && mount_args="$root_args" - [ -n "$root_type" ] && mount_args="$mount_args -t $root_type" - - # find root - root="$(findfs_sh $root)" - # mount rootfs - mount $mount_args "$root" /mnt/root || panic "failed to mount rootfs" + mount $root_type $root_args $(findfs_sh "$root") /mnt/root || panic "failed to mount rootfs" } # kill and unmount cleanup() { case "$devmgr" in - mdev) - # stop mdev - { printf "" > /proc/sys/kernel/hotplug || killall uevent; } > /dev/null 2>&1 - ;; - mdevd) - # stop mdevd - killall mdevd - ;; - udev) - # stop udev - udevadm control --exit - ;; + mdev) { printf "" > /proc/sys/kernel/hotplug || killall uevent; } > /dev/null 2>&1 ;; + mdevd) killall mdevd ;; + udev) udevadm control --exit ;; esac # TODO re-do @@ -150,7 +132,7 @@ boot_system() { /sbin/busybox --install -s # source config -. /config || panic "config doesn't exists" +. /config || panic "failed to source config" # TODO re-do if [ "$debug" = 1 ]; then