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 で実施されるデフォルトのサンドボックスのため。