Raspberry Piで一貫したイーサネットデバイス番号を取得するには?

Raspberry Piで一貫したイーサネットデバイス番号を取得するには?

私はカスタムYocto Linuxイメージを含むRaspberry pi 3B +を持っています。オンボードイーサネットがeth0であり、USBイーサネットアダプタがeth1やusb_eth0などの他のものになりたいです。 1つのパイには常にオンボードイーサネット番号eth0がありますが、2番目のデバイスではUSBドングルは常にeth0に初期化され、オンボードイーサネットはeth1に初期化されます。 SSHとeth1にeth0を使用して異なるIPアドレスを取得し、別のネットワークに接続したいと思います。ただし、/etc/network/interfacesの構成とアプリケーションの両方がハードコードされた名前を使用します。私はさまざまな場所でこの動作を変えようとしています。たとえば、systemd/network にあります。

/etc/systemd/network/10-eth1.link:

[Match]
MACAddress=00:14:5c:9c:67:3b

[Link]
Description="White USB ethernet dongle"
NamePolicy=
Name=eth_usb

ログ制御 -b:

kernel: usb 1-1.1.2: new high-speed USB device number 7 using dwc_otg
kernel[275]: [  609.282053] usb 1-1.1.2: new high-speed USB device number 7 using dwc_otg
kernel: usb 1-1.1.2: New USB device found, idVendor=0b95, idProduct=1790, bcdDevice= 1.00
kernel: usb 1-1.1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
kernel: usb 1-1.1.2: Product: AX88179
kernel: usb 1-1.1.2: Manufacturer: ASIX Elec. Corp.
kernel: usb 1-1.1.2: SerialNumber: 00000000000:;3
kernel[275]: [  609.418133] usb 1-1.1.2: New USB device found, idVendor=0b95, idProduct=1790, bcdDevice= 1.00
kernel[275]: [  609.418148] usb 1-1.1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
kernel[275]: [  609.418157] usb 1-1.1.2: Product: AX88179
kernel[275]: [  609.418166] usb 1-1.1.2: Manufacturer: ASIX Elec. Corp.
kernel[275]: [  609.418175] usb 1-1.1.2: SerialNumber: 00000000000:;3
kernel: ax88179_178a 1-1.1.2:1.0 eth0: register 'ax88179_178a' at usb-3f980000.usb-1.1.2, ASIX AX88179 USB 3.0 Gigabit Ethernet, 00:14:5c:9c:67:3b
kernel[275]: [  609.780308] ax88179_178a 1-1.1.2:1.0 eth0: register 'ax88179_178a' at usb-3f980000.usb-1.1.2, ASIX AX88179 USB 3.0 Gigabit Ethernet, 00:14:5c:9c:67:3b
systemd-udevd[563]: Using default interface naming scheme 'v243'.
systemd-udevd[563]: ethtool: autonegotiation is unset or enabled, the speed and duplex are not writable.
systemd-udevd[563]: [[0;1;31m[[0;1;39m[[0;1;31meth0: Failed to rename network interface 5 from 'eth0' to 'eth_usb': Device or resource busy[[0m
kernel: IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
kernel[275]: [  610.139890] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
systemd-udevd[563]: [[0;1;38;5;185m[[0;1;39m[[0;1;38;5;185meth0: Failed to process device, ignoring: Device or resource busy[[0m
systemd-networkd[288]: eth0: IPv6 successfully enabled

ご覧のとおり、名前を変更できません。

また、/etc/udev/rules.d/70-pertant-net.rulesを変更してみました。

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:14:5c:9c:67:3b", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="neweth0" 

しかし、これも失敗した。

また、/usr/lib/systemd/network/99-default.linkを追加してみました。しかし、このファイルは完全に無視されているようです。

私はいくつかのチュートリアルを試しましたが、それらのどれも私のデバイスで動作しないようです。 USBイーサネットドングルがオンボードイーサネットと同じ名前を持つことを望みます(衝突がないように最大1つのドングルを接続します)。 MACアドレスはボードとドングルによって異なるため、設定ファイルにMACアドレスを使用することは好きではありません。

ベストアンサー1

おすすめ記事