我正在开发内核 2.6.37,我制作了一些可加载模块而不是静态模块来优化内核,
我的任务是在运行我成功执行的应用程序后加载一些模块,
在任何嵌入式系统中,在系统初始化时,脚本都会从指定文件(例如 etc/modules)中修改模块。所以我删除了模块名称,以便在文件系统初始化时不加载,而是需要在应用程序启动后加载。更像是运行级别优先级从 35 更改为 99。
现在我的 wifi 内核模块需要 1-2 秒来加载,所以我尝试删除 wifi 模块名称及其依赖项,但 wifi 模块是在文件系统初始化时加载的。检查 rcS 脚本后,udev 脚本正在运行 udevadm 触发器,该触发器正在加载模块,而不是应该由 modprobe 完成。
/sbin/udevadm 触发器 --subsystem-nomatch=tty --subsystem-nomatch=mem --subsystem-nomatch=vc --subsystem-nomatch=vtconsole --subsystem-nomatch=misc --subsystem-nomatch=dcon --subsystem -nomatch=pci_bus --subsystem-nomatch=显卡 --subsystem-nomatch=背光 --subsystem-nomatch=video4linux --subsystem-nomatch=平台
有人能建议如何避免 wifi 模块加载吗?
答案1
这些不是我的问题的完美答案,而是更多的解决方法,
我制作了一些模块黑名单[它将在文件系统初始化时停止自动加载]和modprobe在我的应用程序运行后。
猫 /etc/modprobe.d/blacklist.conf
#blacklist那些需要停止自动加载的模块
黑名单 wl18xx
如果有人有更好的答案请分享。
感谢和问候,GBiradar