#!/bin/bash build() { local filter local -A blockdevs # 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" && blockdevs['sd_mod']=1 done # usb if add_checked_modules -f '(_cs|sl811_hcd|isp116x_hcd)' '/usb/host'; then blockdevs+=(['usb_storage?']=1 ['sd_mod?']=1 ['sr_mod?']=1) add_checked_modules '/drivers/usb/storage/' fi # firewire if add_checked_modules '/drivers/firewire/'; then blockdevs+=(['firewire-sbp2?']=1 ['sd_mod?']=1 ['sr_mod?']=1) fi # mmc if add_checked_modules '/(mmc|tifm_)'; then blockdevs+=(['mmc_block?']=1) fi # virtio if add_checked_modules 'virtio'; then blockdevs['virtio_blk?']=1 fi map add_module "${!blockdevs[@]}" } help() { cat <