为什么 Ubuntu 一次只能检测一个 USB LAN 适配器?

为什么 Ubuntu 一次只能检测一个 USB LAN 适配器?

为了准备考试,我尝试将真正的交换机与我的计算机连接起来,为此我需要多个 LAN 卡,而我的计算机中只有一个内置 LAN 卡。因此,为了获得更多 LAN 卡,我购买了 4 个 USB 以太网适配器(因为我的笔记本电脑中有 4 个 USB 端口,其中 2 个 USB 2.0 端口,2 个 USB 3.0 端口)。

当我将这些适配器插入计算机时,Ubuntu 仅检测到 2.0 USB 端口上的一张 LAN 卡和 3.0 USB 端口上的一张 LAN 卡。有时,它仅检测到所有 USB 端口上的一个 USB LAN。

实际上真正的问题是 Ubuntu 在“lsusb”中显示了这些 USB LAN 适配器,但没有在“ifconfig”中列出它们。

Kontron(工业计算机源/ICS Advent)是我的 LAN USB 以太网。

abc@ubuntu:~$ lsusb

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hu
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hu
Bus 002 Device 012: ID 0fe6:9700 Kontron (Industrial Computer Source / ICS Advent)
Bus 001 Device 003: ID 138a:0018 Validity Sensors, Inc.
Bus 001 Device 004: ID 064e:e258 Suyin Corp.
Bus 003 Device 011: ID 0fe6:9700 Kontron (Industrial Computer Source / ICS Advent)
Bus 002 Device 013: ID 0fe6:9700 Kontron (Industrial Computer Source / ICS Advent)
Bus 003 Device 012: ID 0fe6:9700 Kontron (Industrial Computer Source / ICS Advent)
Bus 002 Device 005: ID 0a5c:21b4 Broadcom Corp. BCM2070 Bluetooth 2.1 + EDR

--

etho 是我的内置 LAN 卡,而 eth1 是 ubuntu 检测到的唯一 USB LAN 卡。

abc@ubuntu:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr 2c:27:d7:a5:d2:39
          inet6 addr: fe80::2e27:d7ff:fea5:d239/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:21056 errors:0 dropped:1 overruns:0 frame:0
          TX packets:5669 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1407289 (1.4 MB)  TX bytes:372566 (372.5 KB)
          Interrupt:49 Base address:0xa000 

eth1      Link encap:Ethernet  HWaddr 00:e0:4c:53:44:58
          inet6 addr: fe80::2e0:4cff:fe53:4458/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:9230 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9230 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:557648 (557.6 KB)  TX bytes:557648 (557.6 KB)

wlan0     Link encap:Ethernet  HWaddr cc:52:af:5e:78:05 
          inet addr:192.168.1.65  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::ce52:afff:fe5e:7805/64 Scope:LinkU
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:17389 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12231 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:22452248 (22.4 MB)  TX bytes:1502750 (1.5 MB)

如果我拔掉 Ubuntu 已检测到的 USB LAN 卡,那么 Ubuntu 将从剩余插入的适配器中检测到 USB LAN 卡,并继续该过程,直到我插入所有 USB LAN 适配器。

寻求紧急帮助。谢谢

答案1

这听起来像是设备 USB ID 生成中的一个错误。我在多个平台(Windows 也是如此)的外部硬盘上都看到过这种情况。我从未解决过这个问题。希望你能得到答案。

一种解决方法是在接口上使用多个 VLAN,并在配置中添加一个交换机以分离 VLAN……虽然这很难看,但它可以让您到达您需要的地方。

带有其他芯片组的 USB Lan 适配器可能可以工作。
如果您尝试过,并且确实可以工作,那么这是 a) 驱动程序不足或 b) usb 生成问题。
如果您尝试过,并且不工作,那么这是 usbnet 子系统错误(可能)。

答案2

USB 转以太网适配器很垃圾。它们都具有相同的 MAC 地址 00:e0:4c:53:44:58

当您只有其中一个时,在 LAN 上还可以,但如果超过 1 个,则完全没用。

这可能是您问题的根源。

答案3

我设法将 7 个 Kontron DM9601 USB 以太网适配器连接到同一台计算机(Ubuntu 18.04)。

将规则添加到 /etc/udev/rules.d/70-persistent-net.rules

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:e0:4c:53:44:58", DEVPATH=="*1-1.2*", NAME="enx00e04c534413", RUN+="/sbin/ifconfig enx00e04c534413 hw ether 00:e0:4c:53:44:13"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:e0:4c:53:44:58", DEVPATH=="*1-1.3*", NAME="enx00e04c534424", RUN+="/sbin/ifconfig enx00e04c534424 hw ether 00:e0:4c:53:44:24"

其中 DEVPATH 来自udevadm info /sys/class/net/eth1输出,NAME 是接口名称。

我在博客上发表了一篇关于它的文章https://karser.dev/same-mac-kontron-dm9601/

相关内容