Запретить загрузку usbhid при подключении устройства USB HID

Я пытаюсь (обратимо) отключить поддержку USB HID при установке Raspbian Jessie, версия ядра 4.4.16-v7+. Нам нужно иметь Raspberry Pi в полупубличном пространстве и показывать вещи по телевизору, и мы бы хотели, чтобы с ним было по крайней мере несколько трудно возиться.

До сих пор мне удалось сделать модуль usbhid удаляемым из ядра через rmmod. После того, как модуль был удален, кажется, что каждый раз, когда я подключаю USB-клавиатуру или мышь, драйвер устройства загружается обратно в ядро.

Есть ли способ предотвратить это?

2 ответа

Решение

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.

Я могу придумать два варианта:

ПОЛЕГЧЕ:

Добавьте в черный список модуль ядра внутри /etc/modprobe.d/blacklist.conf, добавив:

blacklist usbhid

Убедитесь, что вы делаете это как root, используя sudo или войдя в систему как root, в противном случае этот файл доступен только для чтения.

СИЛЬНЕЕ:

Если у вас есть возможность перекомпилировать ядро, которое вы используете, вы можете установить CONFIG_USB_HID=n в файле конфигурации ядра, чтобы полностью отключить usbhid.

Вы можете выполнить шаги сборки ядра Raspberry Pi, и как только у вас будет все готово для сборки, вы можете изменить файл конфигурации так, чтобы CONFIG_USB_HID=n. Вы можете сделать это во время menuconfig или обычным способом, который заключается в редактировании скрытого файла.config после запуска make defconfig. Посмотрите ядро Linux в двух словах для получения дополнительной информации о настройке и сборке ядра Linux.

Так как Raspberry Pi - ARM, и я предполагаю, что ваш компьютер - x86, вам нужно будет установить кросс-компиляторный набор инструментов. Эта информация также должна быть отражена на этапах сборки ядра RasPi.

Затем продолжайте следовать инструкциям по сборке ядра RasPi, чтобы загрузить ядро ​​на Raspberry Pi. Это должно решить проблему появления usbhid. Во-первых, оно не будет запекаться в ядре.

Другие вопросы по тегам