既知の USB デバイスを許可する Udev ルールがハブを検出しない

既知の USB デバイスを許可する Udev ルールがハブを検出しない

既知の USB デバイスのみを許可する udev ルールを追加しましたが、ハブは承認されないため、すべての USB ポートが承認されません。これがハブの udev ルールです。

# Skeep not USB
SUBSYSTEM!="usb", GOTO="usb_end"
# Skeep remove actions
ACTION=="remove", GOTO="usb_end"

    # 2.0 root hub
    SUBSYSTEMS=="usb", ACTION=="add", ATTR{product}=="EHCI Host Controller", ATTR{serial}=="0000:00:1a.0", \
      ATTR{idVendor}=="1d6b", ATTR{idProduct}=="0002", ATTR{bDeviceClass}=="09", ATTR{authorized}="1", GOTO="usb_end"
    # Disable all other USB devices
    SUBSYSTEMS=="usb", ACTION=="add", ATTR{authorized}="0"
    
    LABEL="usb_end"

OS: Gentoo 強化版

カーネル: 4.7.9-hardened

答え1

udev ルールを設定してスクリプトを実行することで、udev ルールをデバッグできます。スクリプトはさまざまな項目をログに記録できます。

例: $DEVNAME, $ACTION

USB ハブからすべてのデータをログに記録すると、どのデバイスが欠落しているか、またはどの情報が欠落しているかを確認できます。

udev ルールでは、RUN+="/usr/local/bin/log.sh" が必要になります。

log.sh では、env >> /tmp/blabla.log、または echo "$DEVNAME $ACTION ..." >> /tmp/blabla.log です。

関連情報