linux查看驱动启动文件,Linux内核如何知道在引导时要加载的驱动程序?

How does the Linux kernel know which drivers to load at boot?

内核生成例如设备的事件. PCI总线插入(热或冷;事件排队等待用户空间运行AFAIR). udev将接收这些事件并进行modprobe调用,其中包括设备的PID / VID(产品/供应商ID);这通常是一个带有一些*的字符串. modprobe然后计算由udev的加载请求通配符表示的集合和内核模块的别名集合(它们本身可能是通配符).

由于USB / Firewire等.控制器通常连接到PCI总线,这就是您的HCI驱动程序的加载方式.这就是事情的复发;当然,加载USB / Firewire PID / VID.

然而,网络协议模块(例如ipv6)不通过udev处理;相反,当程序调用socket(AF_INET6,…)时,内核直接使用非通配符的别名调用modprobe(更准确地说:/ proc / sys / kernel / modprobe中的任何内容),net-pf-10在IPv6,因为AF_INET6恰好具有值10. modprobe然后加载ipv6.ko,因为这是net-pf-10的别名.

类似地,对于文件系统,尝试安装-t foo将使内核也可以调用modprobe(再次,通过____call_usermodehelper),这次使用foo作为参数.

如果loop.ko尚未加载,则访问设备节点(例如/ dev / loop0,只要它已经存在)具有相同的策略.这里的内核要求block-major-7-0(因为loop0通常有(7,0),参见ls -l),而loop.ko具有拟合块 – 大7-bit的别名.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值