#!/usr/bin/env bash # SPDX-License-Identifier: GPL-2.0-only # created by Tobias Powalowski build() { ### block and filesystem modules map add_module vfat? iso9660? nls_cp437? nls_ascii? cdrom? ### add pcspkr add_module "pcspkr" ### add init modules map add_module zram? btrfs? zstd? libcrc32c? ### usb modules add_all_modules -f '_cs|ssb-hcd' '/usb/host' ### keyboard modules add_all_modules '/hid/hid-(alps|apple|asus|belkin|cherry|chicony|corsair|elan|hyperv|kensignton|lenovo|logitech|magicmouse|microsoft|razer|redragon|roccat|samsung|sony|speedlink|steelseries)' add_module 'usbhid' add_all_modules -f 'parkbd' '/input/serio|keyboard/(applespi|atkbd)' ### virtio modules add_all_modules -f '9pnet|bluetooth|fs' 'virtio' ### sata, scsi, nvme, usb, mmc, spi (for mmc mode) map add_all_modules 'scsi/.*ata' \ 'ata/(ahci|pdc_adma|ata_piix|ata_generic)' '/drivers/usb/storage/' add_all_modules -f 'butterfly|lm70llp' '/drivers/spi/' add_all_modules -f 'pcmcia|scsi/(ch|imm|ppa|sg|st)|rdma|rnbd|rbd|nbd|qed|cxgb|bnx2|csiostor|qla1280|qla2xxx|qla4xxx|iscsi|brd|aoe|null_blk|pktcdvd|drbd|floppy|ublk_drv|lpfc|bfa|snic|fnic|fcoe' '/(block|scsi|fusion|nvme)/' add_all_modules -f '_cs' '/(drivers/mmc|tifm_)' add_all_modules -f 'parport' 'ata/sata_' map add_binary bash sh blkid mount switch_root bsdcpio mkfs.btrfs setfont \ /usr/lib/systemd/systemd-udevd udevadm systemd-tmpfiles kmod insmod modprobe \ gzip uname cat cp dmesg grep ln ls mv rm umount lsblk rmmod cut sed find mkdir add_file "/usr/share/kbd/consolefonts/ter-v16n.psf.gz" "/consolefont-16.psf.gz" add_file "/usr/share/kbd/consolefonts/ter-v32n.psf.gz" "/consolefont-32.psf.gz" rules_d=/usr/lib/udev/rules.d map add_file ${rules_d}/50-udev-default.rules ${rules_d}/60-persistent-storage.rules \ ${rules_d}/64-btrfs.rules ${rules_d}/80-drivers.rules /usr/lib/udev/ata_id \ /usr/lib/udev/scsi_id add_file "/usr/share/archboot/base/init" "/init" map add_dir /mnt /cdrom /sysroot map add_file /etc/bash.bash_logout /etc/bash.bashrc /etc/profile /etc/shells # add default bash setup for i in .bashrc .bash_profile .bash_logout; do add_file "/etc/skel/${i}" "/root/${i}" done # add custom bash options echo ". /root/.bashrc" >> "${BUILDROOT}/etc/bash.bashrc" echo ". /etc/profile.d/custom-bash-options.sh" >> "${BUILDROOT}/root/.bashrc" echo "alias reboot='echo b >/proc/sysrq-trigger'" >> "${BUILDROOT}/root/.bashrc" echo "alias poweroff='echo o >/proc/sysrq-trigger'" >> "${BUILDROOT}/root/.bashrc" echo "root:x:0:root" > "${BUILDROOT}/etc/group" echo "root:x:0:0:/root:/bin/bash" > "${BUILDROOT}/etc/passwd" add_file "/usr/share/archboot/base/etc/profile.d/custom-bash-options.sh" \ "/etc/profile.d/custom-bash-options.sh" basic_config="os-release modprobe.d/modprobe.conf" for i in $basic_config; do add_file "/usr/share/archboot/base/etc/${i}" "/etc/${i}" done } help() { cat <