general improvements

This commit is contained in:
illiliti 2020-02-13 05:18:53 +03:00
parent 9baf5880bd
commit 9670f5bf85
2 changed files with 18 additions and 35 deletions

View File

@ -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 ] && {

42
init
View File

@ -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