File: //usr/share/dracut/modules.d/90kernel-modules/installkernel
#!/bin/bash
if [[ -z $drivers ]]; then
block_module_test() {
local blockfuncs='ata_scsi_ioctl|scsi_add_host|blk_cleanup_queue|register_mtd_blktrans|scsi_esp_register|register_virtio_device'
egrep -q "$blockfuncs" "$1"
}
hostonly='' instmods sr_mod sd_mod scsi_dh scsi_dh_rdac scsi_dh_emc scsi_dh_alua
hostonly='' instmods pcmcia firewire-ohci
hostonly='' instmods usb_storage sdhci sdhci-pci
# install keyboard support
hostonly='' instmods atkbd i8042 usbhid hid-apple ehci-hcd ohci-hcd uhci-hcd xhci-hcd hyperv_keyboard hid-hyperv
instmods "=drivers/pcmcia" =ide "=drivers/usb/storage"
instmods $(filter_kernel_modules block_module_test)
# if not on hostonly mode, install all known filesystems if the required list is not set via the filesystems variable
if ! [[ $hostonly ]]; then
if [[ -z $filesystems ]]; then
n_omit_drivers=".*/fs/ocfs/.*|$omit_drivers"
n_omit_drivers=${n_omit_drivers%%|}
omit_drivers="$n_omit_drivers" instmods '=fs'
unset n_omit_drivers
# hardcoded list of exceptions
# to save a lot of space
rm -fr ${initdir}/lib/modules/*/kernel/fs/ocfs2
else
instmods $filesystems
fi
else
hostonly='' instmods $(get_fs_type "/dev/block/$(find_root_block_device)")
fi
else
hostonly='' instmods $drivers $filesystems
fi
[[ $add_drivers ]] && hostonly='' instmods $add_drivers
# force install of scsi_wait_scan
hostonly='' instmods scsi_wait_scan