.png)
ARM64 開発ボードを、周辺機器として構成された USB ポートと、USB イーサネット ガジェットに必要なドライバーを使用して、Ubuntu 20.04.1 ホスト PC に接続しています。ボードをホスト PC に接続しているのは、USB オス - オス ケーブルです。その後、ifconfig -a を実行すると、usb0 インターフェイスが表示されます。
usb0: flags=4098<BROADCAST,MULTICAST> mtu 1500
ether ae:1f:07:23:57:06 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ケーブルを抜いて再度差し込むと、ifconfig -a インターフェースに新しい名前が付きます。
enx7ef758273481: flags=4098<BROADCAST,MULTICAST> mtu 1500
ether 7e:f7:58:27:34:81 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
インターフェイスを設定すると (ifconfig)、インターフェイス名が usb0 の場合、ボードへの接続がはるかに高速になるようです。ボード上のインターフェイス名も usb0 であり、プラグを抜いて再接続してもボード上の変更はありません。dmesg には次の出力が表示されます。
[ 89.145321] usb 1-5: new high-speed USB device number 2 using xhci_hcd
[ 89.295266] usb 1-5: New USB device found, idVendor=0525, idProduct=a4a2, bcdDevice= 5.15
[ 89.295269] usb 1-5: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 89.295270] usb 1-5: Product: RNDIS/Ethernet Gadget
[ 89.295271] usb 1-5: Manufacturer: Linux 5.15.32+gfa6c3168595c with dwc3-gadget
[ 89.310530] cdc_subset: probe of 1-5:1.0 failed with error -22
[ 89.311814] cdc_subset 1-5:1.1 usb0: register 'cdc_subset' at usb-0000:00:14.0-5, Linux Device, ae:1f:07:23:57:06
[ 89.311829] usbcore: registered new interface driver cdc_subset
[ 89.311846] cdc_ether: probe of 1-5:1.0 failed with error -16
[ 89.311868] usbcore: registered new interface driver cdc_ether
[ 213.382913] usb 1-5: USB disconnect, device number 2
[ 213.382990] cdc_subset 1-5:1.1 usb0: unregister 'cdc_subset' usb-0000:00:14.0-5, Linux Device
[ 215.220424] usb 1-5: new high-speed USB device number 3 using xhci_hcd
[ 215.370333] usb 1-5: New USB device found, idVendor=0525, idProduct=a4a2, bcdDevice= 5.15
[ 215.370337] usb 1-5: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 215.370338] usb 1-5: Product: RNDIS/Ethernet Gadget
[ 215.370338] usb 1-5: Manufacturer: Linux 5.15.32+gfa6c3168595c with dwc3-gadget
[ 215.371653] cdc_subset: probe of 1-5:1.0 failed with error -22
[ 215.372954] cdc_ether 1-5:1.0 usb0: register 'cdc_ether' at usb-0000:00:14.0-5, CDC Ethernet Device, 7e:f7:58:27:34:81
[ 215.379101] cdc_ether 1-5:1.0 enx7ef758273481: renamed from usb0
インターフェースの名前が変更されたのはなぜですか? また、その動作を回避するにはどうすればよいですか?
編集 ケーブルを再接続する前に cdc_ether ドライバーを削除する (sudo rmmod cdc_ether) と問題が解決することがわかりました。しかし、これは優れた回避策ではないと思います。名前が変更された理由と、それがパフォーマンスに影響する理由を理解したいと思います。
答え1
デバイスを削除してこのファイルを作成してみてください
/etc/systemd/network/10-usb0.link
以下の内容を含む
[Match]
Driver=cdc_ether
[Link]
Name=usb0
udevにルールを新たに読み込ませるには
sudo udevadm control -R