#!/bin/bash build() { for dir in new_root proc sys dev run tmp usr/bin; do add_dir "/$dir" done add_symlink /sbin usr/bin add_symlink /bin usr/bin add_symlink /usr/sbin bin add_binary /usr/lib/initcpio/busybox /bin/busybox for applet in $(/usr/lib/initcpio/busybox --list); do add_symlink "/usr/bin/$applet" busybox done # add kmod with applet symlinks add_binary kmod for applet in {dep,ins,rm,ls}mod mod{probe,info}; do add_symlink "/usr/bin/$applet" kmod done add_binary blkid add_binary mount add_binary switch_root add_binary findmnt add_symlink "/etc/mtab" "/proc/self/mounts" # Add an empty fstab to avoid mount warning when -o remount is used >"$BUILDROOT/etc/fstab" add_file "/usr/lib/initcpio/init_functions" "/init_functions" add_file "/usr/lib/initcpio/init" "/init" add_file "/lib/modprobe.d/usb-load-ehci-first.conf" # write a new config file. re-source the config as we can't guarantee the # environment hasn't been modified, but subshell it so it doesn't disturb # anyone else. ( . "$CONFIG" # sanitize of any extra whitespace read -r -a modules <<< "$MODULES" read -r -a hooks <<< "$HOOKS" { (( ${#modules[*]} )) && printf 'MODULES="%s"\n' "${modules[*]%\?}" (( ${#hooks[*]} )) && printf 'HOOKS="%s"\n' "${hooks[*]}" } >"$BUILDROOT/config" ) } help() { cat <