udev の追加/削除ループを防ぐ方法

udev の追加/削除ループを防ぐ方法

udoo (ラズベリー ボードの一種) で MIDI キーボード (eagletone tinykey) を使いたいのですが、デバイスを接続しても正しくセットアップされません。

やってみる

udevadm monitor

一種の追加/削除ループを示します。

KERNEL[1174.215632] add      /devices/soc0/soc.0/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.1 (usb)
KERNEL[1174.218337] add      /devices/soc0/soc.0/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.1/1-1.1:1.0 (usb)
KERNEL[1174.222021] add      /devices/soc0/soc.0/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.1/1-1.1:1.0/sound/card2 (sound)
KERNEL[1174.222417] add      /devices/soc0/soc.0/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.1/1-1.1:1.0/sound/card2/midiC2D0 (sound)
KERNEL[1174.222708] add      /devices/soc0/soc.0/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.1/1-1.1:1.0/sound/card2/midi2 (sound)
KERNEL[1174.223329] add      /devices/soc0/soc.0/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.1/1-1.1:1.0/sound/card2/dmmidi2 (sound)
KERNEL[1174.223700] add      /devices/soc0/soc.0/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.1/1-1.1:1.0/sound/card2/controlC2 (sound)
KERNEL[1174.224050] add      /devices/soc0/soc.0/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.1/1-1.1:1.1 (usb)
KERNEL[1174.225644] remove   /devices/soc0/soc.0/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.1/1-1.1:1.0/sound/card2/midi2 (sound)
KERNEL[1174.226290] remove   /devices/soc0/soc.0/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.1/1-1.1:1.0/sound/card2/dmmidi2 (sound)
KERNEL[1174.226739] remove   /devices/soc0/soc.0/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.1/1-1.1:1.0/sound/card2/midiC2D0 (sound)
KERNEL[1174.227161] remove   /devices/soc0/soc.0/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.1/1-1.1:1.0/sound/card2/controlC2 (sound)
KERNEL[1174.227637] remove   /devices/soc0/soc.0/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.1/1-1.1:1.0/sound/card2 (sound)
KERNEL[1174.227889] remove   /devices/soc0/soc.0/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.1/1-1.1:1.0 (usb)
KERNEL[1174.228311] remove   /devices/soc0/soc.0/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.1/1-1.1:1.1 (usb)
KERNEL[1174.229425] remove   /devices/soc0/soc.0/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.1 (usb)
UDEV  [1174.232087] add      /devices/soc0/soc.0/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.1 (usb)
UDEV  [1174.238406] add      /devices/soc0/soc.0/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.1/1-1.1:1.0 (usb)
UDEV  [1174.242659] add      /devices/soc0/soc.0/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.1/1-1.1:1.1 (usb)
UDEV  [1174.243523] add      /devices/soc0/soc.0/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.1/1-1.1:1.0/sound/card2 (sound)
UDEV  [1174.244195] remove   /devices/soc0/soc.0/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.1/1-1.1:1.1 (usb)
UDEV  [1174.253150] add      /devices/soc0/soc.0/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.1/1-1.1:1.0/sound/card2/midi2 (sound)
...

デスクトップ システムの Ubuntu でも、数か月前に同じ問題が発生しましたが、現在は修正されており (おそらく更新による)、デバイスは 2 秒以内に適切にセットアップされます。

lsusb 

デスクトップに抽出:

Bus 003 Device 004: ID 0218:0401 Hangzhou Worlde 

この種の問題を解決するための提案はありますか? 解決策は、udev ルールを変更することなのか、カーネル内のルールを変更することなのか、あるいは初期化スクリプトを変更することなのか、疑問に思います。

関連情報