繁体   English   中英

为什么插入 Wifi-USB 适配器时会自动加载 linux 模块 rtl8812au?

[英]Why the linux module rtl8812au is loaded automatically when a Wifi-USB adapter plugged in?

我使用 Edimax EW-7811UTC Wi-Fi USB 适配器。 我已经在我的 Linux 分发版中安装了必要的 rtl8812au 驱动程序。

启动时,如果未插入 Wifi-USB 适配器,则未加载模块88XXau.ko 当我插入 Wifi-USB 适配器时,kernel 和udev会自动加载模块,但我没有找到执行此加载的特定 udev 规则。

有人可以帮助我更好地了解这种自动化吗?

谢谢

https://www.linuxfromscratch.org/lfs/view/development/chapter09/udev.html

编译为模块的设备驱动程序可能具有内置的别名。 别名在 modinfo 程序的 output 中可见,通常与模块支持的设备的总线特定标识符有关。 例如,snd-fm801 驱动程序支持供应商 ID 为 0x1319 和设备 ID 为 0x0801 的 PCI 设备,并具有别名“pci:v00001319d00000801sv sd bc04sc01i*”。 对于大多数设备,总线驱动程序会导出将通过 sysfs 处理设备的驱动程序的别名。 例如,/sys/bus/pci/devices/0000:00:0d.0/modalias 文件可能包含字符串“pci:v00001319d00000801sv00001319sd00001319bc04sc01i00”。 udev 提供的默认规则将导致 udevd 使用 MODALIAS uevent 环境变量的内容(应该与 sysfs 中的 modalias 文件的内容相同)调用 /sbin/modprobe,从而加载所有别名匹配的模块通配符扩展后的此字符串。

https://wiki.archlinux.org/title/Modalias

$ cd /usr/lib/udev/rules.d
$ grep -r MODALIAS .
80-drivers.rules
5:ENV{MODALIAS}=="?*", RUN{builtin}+="kmod load '$env{MODALIAS}'"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM