#!/usr/bin/env bash # SPDX-License-Identifier: GPL-2.0-only # created by Tobias Powalowski build() { map add_module sd_mod? sr_mod? usb_storage? mmc_block? virtio_blk? vfat btrfs # pata, sata, scsi, nvme for filter in 'scsi/.*ata' '/(block|scsi|fusion|nvme)/' 'ata/[ps]ata_' \ 'ata/(ahci|pdc_adma|ata_piix|ata_generic)'; do add_checked_modules "$filter" done # usb add_checked_modules -f '(_cs|sl811_hcd|isp116x_hcd)' '/usb/host' add_checked_modules '/drivers/usb/storage/' # mmc add_checked_modules '/(drivers/mmc|tifm_)' # spi (mmc in spi mode) add_checked_modules '/drivers/spi/' # virtio add_checked_modules 'virtio' 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 map add_binary blkid mount switch_root bsdcpio mkfs.btrfs setfont \ /usr/lib/systemd/systemd-udevd udevadm systemd-tmpfiles add_file "/usr/share/kbd/consolefonts/ter-v16n.psf.gz" "/consolefont.psf.gz" map add_udev_rule '50-udev-default.rules' '60-persistent-storage.rules' \ '64-btrfs.rules' '80-drivers.rules' map add_file '/usr/lib/udev/ata_id' '/usr/lib/udev/scsi_id' add_dir /mnt add_file "/usr/share/archboot/base/init" "/init" } help() { cat <