web-dev-qa-db-ja.com

/ etc / udev / rulesを使用して/ devにシンボリックリンクを作成します

Linux FoundationのLinux認定資格を取得するために勉強していますが、1つのラボについていくつか質問があります。ラボは次のとおりです。

  1. USBデバイスが接続されたときにmyusbというシンボリックリンクを作成するルールをシステムに作成して実装します。
  2. USBデバイスをシステムに接続します。ペンドライブ、マウス、ウェブカメラなどです。注:ハイパーバイザーの下で仮想マシンを実行している場合、ゲストがUSBデバイスを認識していることを確認する必要があります。ホストから。
  3. / devディレクトリのリストを取得し、シンボリックリンクが作成されたかどうかを確認します。
  4. USBデバイスを取り外します。 (ドライブの場合は、安全のために必ず最初にアンマウントする必要があります。)
  5. / devにシンボリックリンクがまだ存在するかどうかを確認します。

ターミナルでやったこと;

  1. /etc/udev/rules.d/75-myusb.rulesという名前のファイルを作成します

    Sudo vim /etc/udev/rules.d/75-myusb.rules
    
  2. コンテンツを1行だけ含めるようにします。

    SUBSYSTEM=="usb", SYMLINK+="myusb"
    
  3. udevサービスを再起動して確認します

    Sudo /etc/init.d/udev restart    
    ls -lF /dev | grep myusb
    

しかし、最後のコマンドからの出力がない、まったくリストされていない。

シンボリックリンクが作成されたかどうかを確認するにはどうすればよいですか?

2
Mokum

少ないポイント

  • 75-を使用し、ルールは順番に実行されます。 /lib/udev/rules.d/の次のルールによってルールが上書きされる可能性があります。99-90-を使用することをお勧めします

  • SUBSYSTEM=="usb", SYMLINK+="myusb"汎用的すぎる

    すべてのイベントアクションaddremoveおよびchangeに一致します。すべてのUSBデバイスの横。もっと厳しくする必要があるかもしれません。

    lsusbを使用して確認します

    Bus 003 Device 003: ID 0461:4d81 Primax Electronics, Ltd Dell N889 Optical Mouse
    

    それらを追加します。

    ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0461", ATTRS{idProduct}=="4d81", SYMLINK+="myusb"
    
  • すべてのデバイスが/devにノードを作成するわけではありません。 (どのタイプのデバイスを使用しましたか?)

  • ボーナス:)、たとえそうだとしても、ルールはツリーデバイスノードに関してまだ広範です。カメラを接続すると、ノードが1つだけ作成されるのではなく、ツリーのルートからリーフまで多くのノードが作成されます(ほとんどの場合、リーフは必要なものです)。小切手:

    udevadm info -a /dev/video0
    

    前に変更されたルールは、最後の2つのノード(リーフではない)に一致する場合があります。

2
user.dz