我有一个带有自定义 Yocto Linux 映像的 Raspberry pi 3B+。我希望板载以太网为 eth0,USB 以太网适配器为 eth1 或其他名称,例如 usb_eth0。一个 pi 始终将板载以太网编号为 eth0,但在第二个设备上,USB 加密狗始终初始化为 eth0,板载以太网初始化为 eth1。我想使用 eth0 进行 ssh 和 eth1 以获得不同的 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-persistent-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 地址不同。