Browse Source

Fix regressions with dracut-install with kernel modules

Make sure, the same modules are installed as before.
master
Harald Hoyer 9 years ago
parent
commit
8d9ab2755d
  1. 9
      install/dracut-install.c
  2. 4
      modules.d/50drm/module-setup.sh
  3. 15
      modules.d/90kernel-modules/module-setup.sh
  4. 2
      modules.d/90kernel-network-modules/module-setup.sh
  5. 2
      modules.d/90multipath/module-setup.sh
  6. 2
      modules.d/95iscsi/module-setup.sh

9
install/dracut-install.c

@ -1202,6 +1202,7 @@ static int install_module(struct kmod_module *mod) @@ -1202,6 +1202,7 @@ static int install_module(struct kmod_module *mod)
if (!check_module_path(path) || !check_module_symbols(mod)) {
log_debug("No symbol or patch match for '%s'", path);
return 0;
//return -ENOENT;
}

log_debug("dracut_install '%s'", path);
@ -1295,7 +1296,7 @@ static int install_modules(int argc, char **argv) @@ -1295,7 +1296,7 @@ static int install_modules(int argc, char **argv)
}
kmod_list_foreach(itr, modlist) {
mod = kmod_module_get_module(itr);
ret = install_module(mod);
ret += install_module(mod);
}
kmod_module_unref_list(modlist);
modlist = 0;
@ -1364,13 +1365,13 @@ static int install_modules(int argc, char **argv) @@ -1364,13 +1365,13 @@ static int install_modules(int argc, char **argv)
}
kmod_list_foreach(itr, modlist) {
mod = kmod_module_get_module(itr);
ret = install_module(mod);
ret += install_module(mod);
kmod_module_unref(mod);
}
kmod_module_unref_list(modlist);
modlist = 0;
#else
ret = install_module(mod_o);
ret += install_module(mod_o);
kmod_module_unref(mod_o);
#endif

@ -1413,7 +1414,7 @@ static int install_modules(int argc, char **argv) @@ -1413,7 +1414,7 @@ static int install_modules(int argc, char **argv)
}
kmod_list_foreach(itr, modlist) {
mod = kmod_module_get_module(itr);
ret = install_module(mod);
ret += install_module(mod);
kmod_module_unref(mod);
}
kmod_module_unref_list(modlist);

4
modules.d/50drm/module-setup.sh

@ -34,8 +34,8 @@ installkernel() { @@ -34,8 +34,8 @@ installkernel() {
if [[ $hostonly ]]; then
for i in /sys/bus/{pci/devices,soc/devices/soc?}/*/modalias; do
[[ -e $i ]] || continue
if hostonly="" dracut_instmods -s "drm_crtc_init" $(<$i) 2>/dev/null; then
if strstr $(modinfo -F filename $(<$i) 2>/dev/null) radeon.ko; then
if hostonly="" dracut_instmods -s "drm_crtc_init" -S "iw_handler_get_spy" $(<$i) 2>/dev/null; then
if strstr "$(modinfo -F filename $(<$i) 2>/dev/null)" radeon.ko; then
hostonly='' instmods amdkfd
fi
fi

15
modules.d/90kernel-modules/module-setup.sh

@ -7,20 +7,21 @@ installkernel() { @@ -7,20 +7,21 @@ installkernel() {
if [[ -z $drivers ]]; then
hostonly='' instmods \
sr_mod sd_mod scsi_dh ata_piix hid_generic unix \
ehci-hcd ehci-pci \
ehci-hcd ehci-pci ehci-platform \
ohci-hcd ohci-pci \
uhci-hcd \
xhci-hcd xhci-pci xhci-plat-hcd \
ehci-platform

instmods \
"=drivers/hid" \
"=drivers/input/serio" \
"=drivers/input/keyboard" \
"=drivers/usb/storage" \
${NULL}

instmods \
yenta_socket scsi_dh_rdac scsi_dh_emc scsi_dh_alua \
atkbd i8042 usbhid firewire-ohci pcmcia hv-vmbus \
virtio virtio_blk virtio_ring virtio_pci virtio_scsi \
"=drivers/pcmcia" =ide "=drivers/usb/storage"
"=drivers/pcmcia" =ide

if [[ "$(uname -p)" == arm* ]]; then
# arm specific modules
@ -33,13 +34,13 @@ installkernel() { @@ -33,13 +34,13 @@ installkernel() {
${NULL}
fi

dracut_instmods -s "${_blockfuncs}" "=drivers"
dracut_instmods -o -s "${_blockfuncs}" "=drivers"

# 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
dracut_instmods -P ".*/(kernel/fs/nfs|kernel/fs/nfsd|kernel/fs/lockd)/.*" '=fs'
dracut_instmods -o -P ".*/(kernel/fs/nfs|kernel/fs/nfsd|kernel/fs/lockd)/.*" '=fs'
fi
else
hostonly='' instmods "${host_fs_types[@]}"

2
modules.d/90kernel-network-modules/module-setup.sh

@ -21,7 +21,7 @@ installkernel() { @@ -21,7 +21,7 @@ installkernel() {
_s390drivers="=drivers/s390/net"
fi

dracut_instmods -P ".*${_unwanted_drivers}.*" -s "$_net_drivers" "=drivers/net" ${_s390drivers:+"$_s390drivers"}
dracut_instmods -o -P ".*${_unwanted_drivers}.*" -s "$_net_drivers" "=drivers/net" ${_s390drivers:+"$_s390drivers"}

#instmods() will take care of hostonly
instmods \

2
modules.d/90multipath/module-setup.sh

@ -58,7 +58,7 @@ installkernel() { @@ -58,7 +58,7 @@ installkernel() {
_s390drivers="=drivers/s390/scsi"
fi

hostonly='' dracut_instmods -s "$_funcs" "=drivers/scsi" "=drivers/md" ${_s390drivers:+"$_s390drivers"}
hostonly='' dracut_instmods -o -s "$_funcs" "=drivers/scsi" "=drivers/md" ${_s390drivers:+"$_s390drivers"}
}

# called by dracut

2
modules.d/95iscsi/module-setup.sh

@ -166,7 +166,7 @@ installkernel() { @@ -166,7 +166,7 @@ installkernel() {
_s390drivers="=drivers/s390/scsi"
fi

dracut_instmods -s "$_funcs" "=drivers/scsi" ${_s390drivers:+"$_s390drivers"}
dracut_instmods -o -s "$_funcs" "=drivers/scsi" ${_s390drivers:+"$_s390drivers"}

}


Loading…
Cancel
Save