]> git.ipfire.org Git - thirdparty/dracut.git/blame - modules.d/90kernel-modules/module-setup.sh
90kernel-modules: Add PCI host controller modules
[thirdparty/dracut.git] / modules.d / 90kernel-modules / module-setup.sh
CommitLineData
95d2dabc 1#!/bin/bash
95d2dabc 2
8bcfd683 3# called by dracut
95d2dabc 4installkernel() {
f4ad2e5c
KS
5 local _blockfuncs='ahci_platform_get_resources|ata_scsi_ioctl|scsi_add_host|blk_cleanup_queue|register_mtd_blktrans|scsi_esp_register|register_virtio_device|usb_stor_disconnect|mmc_add_host|sdhci_add_host|scsi_add_host_with_dma'
6
a73ba9a8
HW
7 find_kernel_modules_external () {
8 local _OLDIFS
9 local external_pattern="^/"
10
11 [[ -f "$srcmods/modules.dep" ]] || return 0
12
13 _OLDIFS=$IFS
14 IFS=:
15 while read a rest; do
16 [[ $a =~ $external_pattern ]] || continue
17 printf "%s\n" "$a"
18 done < "$srcmods/modules.dep"
19 IFS=$_OLDIFS
20 }
f4ad2e5c
KS
21
22 is_block_dev() {
23 [ -e /sys/dev/block/$1 ] && return 0
24 return 1
25 }
26
27 install_block_modules () {
28 hostonly='' instmods sr_mod sd_mod scsi_dh ata_piix
29 instmods \
30 scsi_dh_rdac scsi_dh_emc scsi_dh_alua \
31 =ide nvme vmd nfit \
32 virtio_blk
33
34 dracut_instmods -o -s "${_blockfuncs}" "=drivers"
35 }
8bc04b98 36
794b2d2c 37 if [[ -z $drivers ]]; then
28609baf 38 hostonly='' instmods \
f4ad2e5c 39 hid_generic unix \
8d9ab275 40 ehci-hcd ehci-pci ehci-platform \
28609baf
HH
41 ohci-hcd ohci-pci \
42 uhci-hcd \
6bc2096c 43 xhci-hcd xhci-pci xhci-plat-hcd \
a0c915b1 44 "=drivers/pinctrl" \
432647c2
KS
45 ${NULL}
46
47 hostonly=$(optional_hostonly) instmods \
180e9d78 48 "=drivers/hid" \
c1699b59 49 "=drivers/tty/serial" \
180e9d78 50 "=drivers/input/serio" \
6bc2096c 51 "=drivers/input/keyboard" \
8d9ab275 52 "=drivers/usb/storage" \
48723f28 53 "=drivers/pci/host" \
f2d33a7f 54 "=drivers/pci/controller" \
8d9ab275
HH
55 ${NULL}
56
57 instmods \
f4ad2e5c 58 yenta_socket \
6bc2096c 59 atkbd i8042 usbhid firewire-ohci pcmcia hv-vmbus \
f4ad2e5c
KS
60 virtio virtio_ring virtio_pci virtio_scsi \
61 "=drivers/pcmcia"
cbc21754 62
a0120420 63 if [[ "${DRACUT_ARCH:-$(uname -m)}" == arm* || "${DRACUT_ARCH:-$(uname -m)}" == aarch64 ]]; then
917e1b6b 64 # arm/aarch64 specific modules
f496af50 65 _blockfuncs+='|dw_mc_probe|dw_mci_pltfm_register'
b96ea1e1 66 instmods \
2602a74e 67 "=drivers/clk" \
917e1b6b 68 "=drivers/dma" \
39018c93 69 "=drivers/extcon" \
a0c915b1 70 "=drivers/gpio" \
82651e9e 71 "=drivers/hwspinlock" \
b96ea1e1 72 "=drivers/i2c/busses" \
39018c93 73 "=drivers/mfd" \
f8e0c7cc 74 "=drivers/mmc/core" \
e752d42d
PR
75 "=drivers/phy" \
76 "=drivers/power" \
b96ea1e1 77 "=drivers/regulator" \
82651e9e 78 "=drivers/rpmsg" \
b96ea1e1 79 "=drivers/rtc" \
39018c93 80 "=drivers/soc" \
0c5e5f27
PR
81 "=drivers/usb/chipidea" \
82 "=drivers/usb/dwc2" \
83 "=drivers/usb/dwc3" \
b96ea1e1 84 "=drivers/usb/host" \
82651e9e 85 "=drivers/usb/misc" \
0c5e5f27 86 "=drivers/usb/musb" \
b96ea1e1 87 "=drivers/usb/phy" \
a73ba9a8 88 "=drivers/scsi/hisi_sas" \
b96ea1e1 89 ${NULL}
cbc21754
HH
90 fi
91
a73ba9a8
HW
92 find_kernel_modules_external | instmods
93
f4ad2e5c
KS
94 if ! [[ $hostonly ]] || for_each_host_dev_and_slaves is_block_dev; then
95 install_block_modules
96 fi
97
95d2dabc
HH
98 # if not on hostonly mode, install all known filesystems,
99 # if the required list is not set via the filesystems variable
100 if ! [[ $hostonly ]]; then
101 if [[ -z $filesystems ]]; then
8d9ab275 102 dracut_instmods -o -P ".*/(kernel/fs/nfs|kernel/fs/nfsd|kernel/fs/lockd)/.*" '=fs'
95d2dabc 103 fi
3bd3ef58 104 elif [[ "${host_fs_types[*]}" ]]; then
794b2d2c 105 hostonly='' instmods "${host_fs_types[@]}"
95d2dabc 106 fi
343b7d74 107 fi
c9e5b753 108 :
b6e244f7
HH
109}
110
8bcfd683 111# called by dracut
b6e244f7 112install() {
af119460 113 inst_multiple -o /lib/modprobe.d/*.conf
5a575820 114 [[ $hostonly ]] && inst_multiple -H -o /etc/modprobe.d/*.conf /etc/modprobe.conf
6ae68b46
HH
115 if ! dracut_module_included "systemd"; then
116 inst_hook cmdline 01 "$moddir/parse-kernel.sh"
117 fi
b6e244f7 118 inst_simple "$moddir/insmodpost.sh" /sbin/insmodpost.sh
95d2dabc 119}