udev および汎用メソッドを使用した永続インターフェイス名の割り当て

udev および汎用メソッドを使用した永続インターフェイス名の割り当て

私は現在Raspberry Pi 3を開発しており、IoTを実行しようとしています。 USBワイヤレスアダプタをスニッフィングし、デフォルトのワイヤレスアダプタまたはイーサネット経由でデータを転送したいと思います。 udevを使用して/etc/udev/rules.d/70-pertant-net.rulesを変更できるようです。プライマリワイヤレスアダプタのMACアドレスを取得する必要があるようです。 lshwを使用してMACアドレスを取得しました。

root@raspberrypi:/etc/udev# lshw -class network   
*-usb:1             
   description: Wireless interface
   product: 802.11 n WLAN
   vendor: Ralink
   physical id: 4
   bus info: usb@1:1.4
   logical name: wlan1
   version: 1.01
   serial: 1.0
   capabilities: usb-2.00 ethernet physical wireless
   configuration: broadcast=yes driver=rt2800 usbdriverversion=4.4.13-v7+ firmware=0.29 link=no maxpower=450mA multicast=yes speed=480Mbit/s wireless=IEEE 802.11bgn   
*-network:0
   description: Wireless interface
   physical id: 2
   logical name: wlan0
   serial: b8:27:eb:e9:67:22
   capabilities: ethernet physical wireless
   configuration: broadcast=yes driver=brcmfmac driverversion=7.45.41.26 firmware=01-df77e4a7 ip=192.168.0.102 multicast=yes wireless=IEEE 802.11bgn   
*-network:1
   description: Ethernet interface
   physical id: 3
   logical name: eth0
   serial: b8:27:eb:bc:32:77
   size: 100Mbit/s
   capacity: 100Mbit/s
   capabilities: ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
   configuration: autonegotiation=on broadcast=yes driver=smsc95xx driverversion=22-Aug-2005 duplex=full firmware=smsc95xx USB 2.0 Ethernet ip=10.42.0.11 link=yes multicast=yes port=MII speed=100Mbit/s

このコマンドを使用すると、プライマリワイヤレスインターフェイスのMACアドレスを表示できます。ルールに入れるだけで、インターフェイスをwlan0に直接設定できます。私が望むのはもっと一般的なものです。私が設定したすべてのデバイスにこれらの項目を設定したくありません。ワイヤレスアダプタのアドレスを取得するスクリプトを作成します。

root@raspberrypi:/etc/udev# sudo lshw -class network | grep b8:27:eb | sed 's/^.*serial: //' 
b8:27:eb:e9:67:22 
b8:27:eb:bc:32:77

使った長沙grepRaspberry Pi Foundationに属するMACアドレス(b8:27:eb:xx:xx:xx)をインポートし、「serial:」のようなものをインポートして使用します。sedMACを離れてください。
その後、イーサネットアダプタにも同じヘッダを持つMACアドレスがあることがわかりました。

私の質問は、RPiワイヤレスアダプタのMACアドレスをコマンド出力としてどのように取得できるかということです。

ベストアンサー1

最初のワイヤレスMACを印刷します。 (注:無線環境でこのアドレスを「MACアドレス」と呼ぶかどうかはわかりません。)

lshw -class network  | awk '/usb:/ {ok=0} /network:/ {ok=1} /serial:/ {serial=$2} /capabilities: .*wireless/ && ok {print serial; exit}'

おすすめ記事