kernel modules scanning
Seewer mentioned that instmods =block is failing to pull in block device drivers on Debian. Debian lacks the modules.* lists. The following code is used to generate these lists on Fedora.
kernel.spec:
collect_modules_list()
{
sed -r -n -e "s/^([^ ]+) \\.?($2)\$/\\1/p" drivers.undef |
LC_ALL=C sort -u > $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.$1
}
collect_modules_list networking \'register_netdev|ieee80211_register_hw|usbnet_probe'
collect_modules_list block \
'ata_scsi_ioctl|scsi_add_host|blk_init_queue|register_mtd_blktrans|scsi_esp_register'
collect_modules_list drm \
'drm_open|drm_init'
collect_modules_list modesetting \
'drm_crtc_init'Under the assumption that we cannot rely on modules.* list files since it is not shipped by other distributions, the next best thing is to do a similar scanning during dracut runtime. This is a bit slower than simply reading the modules.* files but it seems we have no choice.
I had implemented the equivalent of "modesetting" and the important subset of "networking" that we require in dracut. The equivalent for "block" however is a bit more complex given the long list of alternative symbol names.
I had considered implementing the equivalent of collect_modules_list in dracut. Perhaps we could implement the equivalent with an additional parameter of base directory so it does not bother scanning the entire directory tree looking for modules.
Just a thought.
Warren Togami
[email protected]
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 21 lines · Warren Togami
Seewer mentioned that instmods =block is failing to pull in block device drivers on Debian. Debian lacks the modules.* lists. The following code is used to generate these lists on Fedora.
kernel.spec:
collect_modules_list() { sed -r -n -e "s/^([^ ]+) \\.?($2)\$/\\1/p" drivers.undef | LC_ALL=C sort -u > $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.$1 } collect_modules_list networking \'register_netdev|ieee80211_register_hw|usbnet_probe'
collect_modules_list block \'ata_scsi_ioctl|scsi_add_host|blk_init_queue|register_mtd_blktrans|scsi_esp_register'
collect_modules_list drm \ 'drm_open|drm_init' collect_modules_list modesetting \ 'drm_crtc_init'
Quoted 7 lines
Under the assumption that we cannot rely on modules.* list files since it is not shipped by other distributions, the next best thing is to do a similar scanning during dracut runtime. This is a bit slower than simply reading the modules.* files but it seems we have no choice.
I had implemented the equivalent of "modesetting" and the important subset of "networking" that we require in dracut. The equivalent for "block" however is a bit more complex given the long list of alternative symbol names.
I had considered implementing the equivalent of
collect_modules_listin dracut. Perhaps we could implement the equivalent with an additional parameter of base directory so it does not bother scanning the entire directory tree looking for modules.Just a thought.
All I can say here is yes please!
Regards,
Philippe
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html