USBデバイスの機能をブロックできますか?

USBデバイスの機能をブロックできますか?

ワイヤレスポータブルリモコン(Dupad G20S Pro Plus)と通信するUSB​​デバイスがあります。私のDebianボックスではうまくいきます。私が解決しようとしている問題は、リモコンの電源ボタンでシステムがオフになるのを防ぐことです(私の考えでは、リモコンがスマートテレビに適しているようです)。

私は少なくともlsusbを介して問題のデバイス機能が次のようになることを見つけました。

% lsusb -vd 4842:0001
...
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0
      bInterfaceProtocol      1 Keyboard
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               2.01
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     121
          Report Descriptor: (length is 121)
...
            Item(Local ): Usage, data= [ 0x81 ] 129
                            System Power Down
...

一部のカーネルレベルでこの機能を回避する方法はありますか?私はsystemd-inhibitを使用して一般的なシャットダウンを防ぐことができましたが、低レベル(udevなど)を使用することを好みました。

修正する:

これはDebianサーバー用です(デスクトップではありません)。ホームオートメーション目的で主なイベントがキャプチャされています。

ベストアンサー1

(システムベースのLinuxホストの場合)ソリューションの手がかりは次のとおりです。人々 login.conf(8)

"power-switch" udevタグ付きの入力デバイスのみがキー/キャップスイッチイベントに対して監視されます。

実際、このラベルを作成した人はデフォルトのudevルール:

SUBSYSTEM=="input", KERNEL=="event*", ENV{ID_INPUT_KEY}=="1", TAG+="power-switch"

このファイル(/etc/udev/rules.d/70-power-switch.rules)の規則に注釈を付けてこれを防ぐことができました。

追加情報:

私の最初の修正の試みは、新しいファイルからこの新しいルールを使用してタグを削除することでした/etc/udev/rules.d/80-power-switch.rules(後処理で70-power-switch.rules)。

SUBSYSTEM=="input", KERNEL=="event*", TAG-="power-switch"

私のバージョンのsystemdはタグの削除(249)をサポートしていますが、動作させることはできません。私の推測は、systemdが元のタグに関する警告を受け取り、タグの削除をサポートしていないことです。

おすすめ記事