diff --git a/modules.d/90kernel-modules/install b/modules.d/90kernel-modules/install index d1c430e7..eec3ae72 100755 --- a/modules.d/90kernel-modules/install +++ b/modules.d/90kernel-modules/install @@ -1,7 +1,14 @@ #!/bin/bash -# FIXME: hard-coded module list of doom. -[[ $drivers ]] || drivers="=block sd_mod =fs" -instmods $drivers +if [ -z $drivers ]; then + drivers="sd_mod =fs" + instmods $drivers + # Include block controller drivers + for modname in $(find "/lib/modules/$kernel/kernel/drivers" -name '*.ko'); do + if nm -uPA $modname | egrep -q 'ata_scsi_ioctl|scsi_add_host|blk_init_queue|register_mtd_blktrans|scsi_esp_register'; then + instmods $modname + fi + done +fi [ -f /etc/modprobe.conf ] && dracut_install /etc/modprobe.conf dracut_install $(find /etc/modprobe.d/ -type f -name '*.conf')