我使用buildroot生成一个内核映像,并将其放在SD卡上启动。在buildroot中,我模块化了USB大容量存储。当我启动我的板没有一个USB连接到它,我可以看到没有模块运行使用lsmos。但是当我插入USB时,模块uas和usb_storage就会自动加载并允许访问USB。我想防止这一点,只有当我手动加载在这两个模块中时,才允许访问USB。
我在网上读过一些关于将模块列入黑名单或编辑与模块相关的文件的文章;但是,这不起作用,因为当我关闭电源时,我所做的任何更改都会被删除。因此,我需要另一个选项是永久的,也许在生成图像之前在buildroot设置中完成?
发布于 2021-08-22 12:58:11
我也有过同样的问题。问题是,在默认情况下,busybox的problem实现(在buildroot中使用)不支持blacklist。
解决方案是在编译映像时在busybox配置中启用此功能。为此,创建一个配置片段文件(例如,名为busybox.config ),其内容如下:
CONFIG_FEATURE_MODPROBE_BLACKLIST=y然后,将该文件的路径添加到buildroot选项。在buildroot配置文件中,它应该类似于以下内容:
BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="../busybox.config"现在,当您运行make时,您将看到buildroot进程正在重新构建busybox的配置文件。请注意调制解调器的输出,它应该如下所示:
modprobe (28 kb) (MODPROBE) [Y/n/?] y
Blacklist support (FEATURE_MODPROBE_BLACKLIST) [Y/n/?] y完成此操作后,您只需将blacklist <themodule>写到/etc/modprobe.conf中,它就会像预期的那样工作。
https://unix.stackexchange.com/questions/452485
复制相似问题