我试图(可逆地)在Raspbian安装上禁用USB支持,内核版本4.4.16-v7+。我们需要把Raspberry Pi放在一个半公开的空间里,在电视上展示一些东西,我们想让它至少有点难搞。
到目前为止,我已经设法通过rmmod将usbhid模块从内核中移除。在对模块进行rmmod之后,tt似乎每次插入USB键盘或鼠标时,设备驱动程序就会被加载回内核中。
有什么办法防止这种情况发生吗?
发布于 2016-09-23 17:57:24
udev是实现这一目的的最佳和最简单的方法,在例如:/etc/udev/rues.d/99禁用-usb-hid.Rule中添加一条新规则:
SUBSYSTEMS=="usb", DRIVERS=="usbhid", ACTION=="add", ATTR{authorized}="0"并重新启动udev。我刚在Debian Jessie ARM 4.4.16上测试过。
发布于 2016-09-22 14:49:35
我可以想到两种选择:
更容易:
将/etc/modprobe.d/blacklist.conf中的内核模块列入黑名单,添加:
blacklist usbhid请确保使用sudo或登录作为root用户作为root用户执行此操作,否则该文件将是只读的。
更难:
如果您有能力重新编译正在使用的内核,那么可以在内核配置文件中设置CONFIG_USB_HID=n来完全禁用usbhid。
您可以遵循Raspberry的内核构建步骤,一旦所有设置就绪之后,您就可以修改配置文件,使之成为CONFIG_USB_HID=n。您可以在菜单配置或我通常这样做的时候这样做,即在运行menuconfig之后编辑隐藏的.config文件。有关配置和构建linux内核的更多信息,请参见一个简单的linux内核。
因为Raspberry是ARM,而且我假设您的计算机是x86,所以您需要设置一个交叉编译器工具链。这些信息也应该在RasPi的核心构建步骤中得到证实。
然后继续遵循RasPi的内核构建步骤,将内核放到Raspberry Pi上。这应该解决了usbhid出现的问题。它一开始就不会被放入内核中。
https://stackoverflow.com/questions/38786343
复制相似问题