我正在使用嵌入式Linux。
有两个USB小工具驱动程序构建为LKM,g_ether.ko和g_file_storage.ko。
我做了depmod
,然后在modprobe -l
两个驱动程序都出现在列表中。
kernel/drivers/usb/gadget/g_ether.ko
kernel/drivers/usb/gadget/g_file_storage.ko
问题是,内核在解剖学上不会在引导时加载它们中的任何一个。
目前,我的解决方案是将启动脚本添加到/etc/init.d
etc/rcX.d
,以强制g_ether.ko
作为默认驱动程序在启动时加载。
还有其他(更好的)方法可以制作g_ether.ko
默认驱动程序吗?
一个可能的解决方案是,我g_ether.ko
成为静态驱动程序,并g_file_storage.ko
LKM,但我不知道如何关闭静态驱动程序以释放硬件,以便可以加载另一个 LKM 驱动程序。
有什么建议吗?
用户可以选择将 USB 外围控制器用作以太网或存储。因此,没有用于自动加载客户端驱动程序的相关硬件事件。
但是有一种方法可以通过 sysfs 在用户空间中绑定/取消绑定驱动程序。看看这个:https://lwn.net/Articles/143397/