ENVおよびATTR/ATTRS

ENVおよびATTR/ATTRS

USBをRaspberry Piに自動マウントしようとしていますが、udevルールが機能しないようです。

私が使用するコードは次のとおりです。

ACTION=="add", ENV{ID_MODEL}=="Flash_Drive", RUN+="bin/mkdir /home/pi/heyimhere"

フラッシュドライブを挿入すると、その場所にディレクトリが作成されないため、機能しません。

同じルールを使ってUSBを使ってオフにすることができました。今回は、次の行を使ってオフにしてください。

ACTION=="remove", ENV{ID_MODEL}=="Flash_Drive", RUN+="sbin/shutdown -h now"

動作します。 USBを抜くとすぐに消えます。

なぜ? ATTRを使用して追加する必要がありますか?

ベストアンサー1

ENVおよびATTR/ATTRS

ATTR{ファイル名}
  イベントデバイスのsysfs属性の値と一致します。

ATTRS{ファイル名}
  sysfs 属性値が一致するデバイスの devpath を取得します。複数の ATTRS 一致が指定されている場合は、すべての項目が同じデバイスで一致する必要があります。

ENV{キー}
  デバイス属性の値と一致します。

ENV両方とも同じ情報が含まれている場合は、ATTR違いなく両方を使用できます。

ENV関連デバイスには、他の親デバイスから派生した値を含めることができます。したがってENV、sを使用すると、複数の親デバイスの値を同時に一致させることができますが、これは不可能ですATTRS


ディレクトリ生成ルール

絶対パスを使用する必要があります。RUNキー(RUN+="/bin/mkdir /home/pi/heyimhere"あなたの例では):

絶対パスが指定されていない場合、プログラムは/usr/lib/udevにあると予想されます。絶対パスを指定する必要があります。

さて、あなたの締め切り規則がなぜ機能するのかわかりません。sbin/shutdown鉛がないので、そうしてはいけません/


udevルールからのマウント

ジェイソン・リンのように言及する自動マウントにはudevを使用できません:

アクセスネットワークを実行しているか、udevルール内では、ファイルシステムのマウント/マウント解除は許可されません。、 systemd-udevd.service で実施されるデフォルトのサンドボックスのため。

おすすめ記事