2016-08-05 14 views
2

Ressbian Jessieのインストール、カーネルバージョン4.4.16-v7 +でUSB HIDサポートを無効にしようとしています。私たちはセミパブリックスペースにラズベリーパイを持たなければならず、テレビで物を展示する必要があります。私たちは少なくともそれを混乱させるのはやや難しいと思っています。USB HIDデバイスが接続されているときにusbidが自動ロードされないようにする

これまでのところ、私はusbhidモジュールをrmmod経由でカーネルから取り外し可能にしました。しかし、モジュールをrmmodすると、USBキーボードやマウスを接続するたびに、デバイスドライバがカーネルにロードされるように見えます。

これを防ぐ方法はありますか?

私は2つのオプションを考えることができ

答えて

2

のudevは、例えば、新しいルールを追加することをやって最善かつ最も簡単な方法です

SUBSYSTEMS=="usb", DRIVERS=="usbhid", ACTION=="add", ATTR{authorized}="0" 

udevを再起動してください。 私はDebian Jessie ARM 4.4.16でテストしました。

+0

これは本当にクールな解決策です。私はこれが最終的に実装されたもの(悪意のあるカーネルモジュールをブラックリストに載せる)よりも、この方が良いと思います。私はこの可能性を知りたいと思っています。 – 1flx

1

blacklist usbhid 

が必ずいることを確認してください:追加することにより、

ブラックリスト/etc/modprobe.d/blacklist.conf内部のカーネルモジュール:

簡単にこれをrootとしてsudoを使うかrootとしてログインしてください。さもなければ、このファイルは読み取り専用です。

ハーダー:

あなたが使用しているカーネルを再コンパイルする能力を持っているなら、あなたはCONFIG_USB_HIDを設定することができ= n個のカーネル設定ファイルに完全USBHID無効にします。

ラズベリーパイのkernel building stepsに従うことができます。すべてをビルドするように設定したら、CONFIG_USB_HID = nに設定ファイルを変更できます。これは、makeconfigを実行した後に隠された.configファイルを編集することによって、通常はやり方でmenuconfigを実行している間に行うことができます。 Linuxカーネルの設定と構築の詳細については、linux kernel in a nutshellを参照してください。

Raspberry PiはARMであり、コンピュータがx86であると仮定しているため、クロスコンパイラツールチェーンを設定する必要があります。その情報は、RasPiのカーネル構築ステップでもうまくいくはずです。

その後、RasPiのカーネル作成手順に従って、カーネルをRaspberry Piに追加します。これは、usbhidが表示される問題を解決する必要があります。最初はカーネルに焼き付けられません。 /etc/udev/rules.d/99-disable-usb-hid.rules:

+0

私は実際にカーネルを再コンパイルしてそれぞれのモジュールをオプションにしようとしましたが、デバイスが接続されると常にオートロードされてしまい、機能しませんでした。 、モジュールを完全に省いたのは最後の手段だった。 ブラックリストで説明したようにしたいのですが、blacklist.confに入れてもどうにか動作しませんでした。私はusbhid、usbkbdとusbmouseのブラックリスト行を '/ etc/modprobe.d/usbkbd.conf'などに入れなければなりませんでした。何らかの理由でusbhidだけでは十分ではありませんでした。 – 1flx

+1

makeを実行すると、設定オプションが自動的に "y"または "n"に自動的に設定されることがあります。すでに解決策が見つかったようですが、設定オプションを強制する必要がある場合は、makeコマンドの後に追加するだけです。たとえば、 'make CONFIG_USB_HID = n'を実行して、その設定オプションを強制することができます。 –

関連する問題