Skip to contentSkip to conversation

kernel modules scanning

DISCUSSION Warren Togami 2 participants 2 messages Jun 30, 2009 1 message not in the archive

lore
Share & tools
lore
#0 lore raw

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

#2 lore raw
In reply to a message not in the archive
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_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.

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