udev 永続ネットルール: ドライバー/チップセットに基づいてインターフェースに名前を付ける

udev 永続ネットルール: ドライバー/チップセットに基づいてインターフェースに名前を付ける

私は、それぞれ 2 つの異なるワイヤレス カード (異なるチップセット / 異なるモジュールを使用、1 つは rtl8187、もう 1 つは rt2800usb) を搭載した一連の Raspberry Pi を使用するプロジェクトに取り組んでいます。

現時点では、各 Pi に永続的な命名規則を設定しているため、新しい Pi を設定したり、Pi 間でワイヤレス カードを交換したりする場合は、新しい rtl8187 カードが引き続き wlan0 になり、新しい rt2800usb カードが引き続き wlan1 になるように編集する必要があります。

永続的なルールを変更して、使用するモジュールなどに基づいてインターフェイスに名前を付ける方法はありますか? 理想的には、接続する rtl8187 カードが wlan0 で、接続する rt2800usb カードが wlan1 であることを認識できるようにしたいと思います。

または、回避策として、MAC アドレスのマッチングに部分的なワイルドカードを使用する方法はありますか? 同じチップセットのカードはすべて、同じベンダー MAC プレフィックスを持っています。

答え1

まず試したいのは、

ATTR{address}=="12:34:56:78:9A:AB"

ATTR{address}=="12:34:56:*"

( RaspPi/etc/udev/rules.d/70-persistent-net.rules上の同じ場所にあると仮定します)。

テストはしていませんが、通常のマッチングはこのように動作します。

動作する場合は、このファイルを各新しい RaspPi にコピーするだけです。

答え2

デバイスが wan0 か wan1 かの決定要因は MAC アドレスに基づいていることに気づいたので、デバイスに名前を付けても役に立たないと思います。

私が思いつく唯一の解決策は、非常に汚いものです...ネットワーク構成のコピーを 2 つ用意し、udev ルールを使用して必要なネットワーク構成をコピーします。(これは機能しますが、非常に汚いです...)

おそらく誰かがもっと良い解決策を考えつくかもしれませんが、これを選択する場合、方法は udev ルールでデバイスを一致させ、udev ルールの最後に +RUN=/usr/local/bin/bashscript.sh を指定します (権限をロックダウンするようにしてください)。

私が持っている唯一の質問は、1 つの NIC を wlan1 として使用するとどのような問題が発生するのか理解できないことです。

あなたの問題の解決策は、wlan1 から wlan0 に変更することではなく、なぜ変更する必要があるのか​​を理解することだと思います...

以下は、bash スクリプトを使用した udev ルールの例です。

ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0010|0110|0111|0114|0116|0401|0403|0405|0407|0410", ACTION=="remove", RUN+="/usr/local/bin/secdev_lock.sh"

(セキュリティ キーを抜くとラップトップの画面がロックされます)


アップデート:

デバッグに使用できるカード属性:

SUBSYSTEM=="net", ACTION=="add", RUN+="/usr/local/bin/addnic.sh"

addnic.sh 内;

#!/bin/bash

env > /home/user/udev_$RANDOM.txt

そこには、一致する関連情報がすべて見つかるはずです

関連情報