私はそれぞれ2つの異なるワイヤレスカード(異なるチップセットを使用するか、異なるモジュールを使用し、1つはrtl8187、もう1つはrt2800usb)を持つ一連のRaspberry Piを使用してプロジェクトを進めています。
現在、各Piに継続的な命名規則が設定されているため、新しいPiを設定したり、Pis間でワイヤレスカードを交換したりすると、新しいrtl8187カードはまだwlan0で、新しいrt2800usbカードは次のように編集する必要があります。まだwlan1。
使用するモジュールなどに基づいてインタフェース名を指定するために永続性ルールを変更する方法はありますか?理想的には、私が接続したrtl8187カードがwlan0でなければならず、rt2800usbカードがwlan1でなければならないことを教えてくれたらと思います。
または、回避策としてMACアドレスの一致に部分的なワイルドカードを使用する方法はありますか?同じチップセットを使用するすべてのカードには、同じベンダーMACプレフィックスがあります。
答え1
私が最初に試すことは変わります。
ATTR{address}=="12:34:56:78:9A:AB"
到着
ATTR{address}=="12:34:56:*"
(/etc/udev/rules.d/70-persistent-net.rules
RaspPiの同じ位置にあると仮定)。
テストしてみませんでしたが、通常は一致する方法です。
機能する場合は、これらのファイルをそれぞれの新しいRaspPiにコピーしてください。
答え2
デバイス名がwan0かwan1であるかを決定する要素は、Macアドレスによって異なることをすでに知っていますので、デバイス名を指定すると役に立つとは思いません。
私が考えることができる唯一の解決策は非常に汚いことです。ネットワーク構成のコピーが2つあり、udevルールを使用して必要なネットワーク構成を所定の場所にコピーします。 (これはうまくいきますが、とても汚いです...)
おそらく誰かがより良い解決策を考えるかもしれませんが、これを選択した場合は、udevルールでデバイスを一致させ、udevの末尾に+RUN = / usr / local / bin / bashscript.shを置くことができます。ルール(権限をロックします)。
私の唯一の問題は、1つのネットワークカードを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
そこで一致する関連情報をすべて見つけることができると確信しています。