5

我正在尝试(可逆地)禁用 Raspbian Jessie 安装(内核版本 4.4.16-v7+)上的 USB HID 支持。我们需要将 Raspberry Pi 放在半公共空间并在电视上显示内容,我们希望至少让它有点难以处理。

到目前为止,我已经设法通过 rmmod 使 usbhid 模块从内核中移除。但是,在对模块进行 rmmod 之后,似乎每次我插入 USB 键盘或鼠标时,设备驱动程序都会重新加载到内核中。

有什么办法可以防止这种情况发生吗?

4

2 回答 2

6

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 中对其进行了测试。

于 2016-09-23T17:57:24.380 回答
0

我可以想到两个选择:

更轻松:

通过添加以下内容将 /etc/modprobe.d/blacklist.conf 中的内核模块列入黑名单:

blacklist usbhid

确保使用 sudo 或以 root 身份登录以 root 身份执行此操作,否则此文件是只读的。

更难:

如果您有能力重新编译您正在使用的内核,那么您可以在内核配置文件中设置 CONFIG_USB_HID=n 以完全禁用 usbhid。

您可以按照 Raspberry Pi 的内核构建步骤进行操作,一旦所有内容都准备好构建,您就可以修改配置文件,使 CONFIG_USB_HID=n。您可以在 menuconfig 期间执行此操作,也可以按照我通常执行的方式执行此操作,即在运行 make defconfig 后编辑隐藏的 .config 文件。有关配置和构建 linux 内核的更多信息,请参阅linux kernel in a nutshell

由于 Raspberry Pi 是 ARM,并且我假设您的计算机是 x86,因此您需要设置一个交叉编译器工具链。这些信息也应该在 RasPi 的内核构建步骤中找到。

然后继续按照 RasPi 的内核构建步骤将内核安装到您的 Raspberry Pi 上。这应该可以解决出现 usbhid 的问题。它不会首先被烘焙到内核中。

于 2016-09-22T14:49:35.023 回答