Who Is Responsible To Load NIC Driver When Boot Up

Home » CentOS » Who Is Responsible To Load NIC Driver When Boot Up
CentOS 3 Comments

Hi

I have a small question about NIC driver (e.g. i40e) loading. Who is responsible to load i40e driver? And how does he knows we should load i40e, instead of ixgbe?

Thanks.

3 thoughts on - Who Is Responsible To Load NIC Driver When Boot Up

  • `depmod` may put hardware/driver lists into initramfs when `mkinitrd` is called when a new kernel is installed. Also check file: /lib/modules/`uname-r`/modules.alias The modules.alias contains PCI vendor/device IDs which can be found via
    `lspci -n`.

    Also you can `modinfo i40e` and `modinfo ixgbe` to see a list of PCI
    vendor/device IDs which each driver supports.

    Most of the time “it just works” be can be confusing tracking down exactly why one driver loads instead of another.

    CentOS mailing list CentOS@CentOS.org https://lists.CentOS.org/mailman/listinfo/CentOS

  • During the initial boot on EL7, the initial ramdisk which uses dracut to set up that. After the initial boot, I believe udev is what is doing the work. There are a ton of pretty good manual pages for all the different parts of dracut which explain how it is loading things, what order and how to add/remove things.


    Stephen J Smoogen.

  • I think you are right. I add a dump_stack() and printk() in virtio_net driver, and following infos printed when boot up:

    kernel: Pid: 737, comm: modprobe Not tainted 2.6.32-279.22.1.el6.local.x86_64 #1
    kernel: Call Trace:
    kernel: [] ? __blocking_notifier_call_chain+0x65/0x80
    kernel: [] ? init+0x9/0x3c [virtio_net]
    kernel: [] ? do_one_initcall+0x3c/0x1d0
    kernel: [] ? sys_init_module+0xe1/0x250
    kernel: [] ? system_call_fastpath+0x16/0x1b kernel: parent: udevd