我正在尝试(可逆地)禁用Raspbian Jessie安装,内核版本4.4.16-v7 +上的USB HID支持。我们需要在半公共空间中使用Raspberry Pi并在电视上显示内容,我们希望至少有点难以理解它。
到目前为止,我已经设法通过rmmod从内核中删除usbhid模块。 rmmod'ing模块之后,似乎每次插入USB键盘或鼠标时,设备驱动程序都会被加载回内核。
有没有办法阻止它?
答案 0 :(得分:4)
udev 是这样做的最佳和最简单的方法,例如添加新规则: /etc/udev/rules.d/99-disable-usb-hid.rules:
SUBSYSTEMS=="usb", DRIVERS=="usbhid", ACTION=="add", ATTR{authorized}="0"
并重新启动 udev 。 我刚刚在Debian Jessie ARM 4.4.16中测试过它。
答案 1 :(得分:1)
我可以想到两个选择:
EASIER:
通过添加以下内容将/etc/modprobe.d/blacklist.conf中的内核模块列入黑名单:
blacklist usbhid
确保以root身份使用sudo或以root用户身份登录,否则此文件是只读的。
HARDER:
如果您有能力重新编译正在使用的内核,那么您可以在内核配置文件中设置CONFIG_USB_HID = n以完全禁用usbhid。
您可以关注Raspberry Pi的kernel building steps,一旦完成所有设置,您就可以修改配置文件,以便CONFIG_USB_HID = n。您可以在menuconfig或我通常的方式执行此操作,这是通过在运行make defconfig之后编辑隐藏的.config文件。有关配置和构建Linux内核的更多信息,请参阅linux kernel in a nutshell。
由于Raspberry Pi是ARM,我假设您的计算机是x86,因此您需要设置交叉编译工具链。这些信息也应该在RasPi的内核构建步骤中发挥作用。
然后继续按照RasPi的内核构建步骤将内核放到Raspberry Pi上。这应该可以解决出现usbhid的问题。它首先不会被烘焙到内核中。