我正在使用华为海思 ARM Hi3536 芯片的定制板上运行旧内核 3.10 的 Linux。该板包含 2 个相同的 USB 2.0 端口。据硬件工程师介绍,PCB 板和芯片本身的这两个端口之间没有任何东西,只有简单的线路。
我正在使用带有 AX88178 芯片的 USB 转以太网适配器“USB2-E100”。该加密狗使用的 USB 驱动程序是:asix.ko、usbnet.ko 和内核中的静态 usbcore 模块。
我将笔记本电脑直接连接到“USB 转以太网”加密狗(中间没有路由器、交换机等)。我经历了非常奇怪的行为。
当我 ping 第一个 USB 端口时,往返时间 (RTT) 非常稳定,低于 1 毫秒。
lrwxrwxrwx 1 root root 0 Feb 16 17:49 1-1 -> ../../../devices/platform/hiusb-ehci.0/usb1/1-1
lrwxrwxrwx 1 root root 0 Feb 16 17:49 1-1:1.0 -> ../../../devices/platform/hiusb-ehci.0/usb1/1-1/1-1:1.0
C:\>ping -t 172.20.20.20
Pinging 172.20.20.20 with 32 bytes of data:
Reply from 172.20.20.20: bytes=32 time<1ms TTL=64
Reply from 172.20.20.20: bytes=32 time<1ms TTL=64
Reply from 172.20.20.20: bytes=32 time<1ms TTL=64
Reply from 172.20.20.20: bytes=32 time<1ms TTL=64
Reply from 172.20.20.20: bytes=32 time<1ms TTL=64
Reply from 172.20.20.20: bytes=32 time<1ms TTL=64
但是,如果我对第二个 USB 端口执行 ping 操作,则每次 ping 操作的 RTT 都会显着延长。
lrwxrwxrwx 1 root root 0 Feb 16 17:42 1-2 -> ../../../devices/platform/hiusb-ehci.0/usb1/1-2
lrwxrwxrwx 1 root root 0 Feb 16 17:42 1-2:1.0 -> ../../../devices/platform/hiusb-ehci.0/usb1/1-2/1-2:1.0
C:\>ping -t 172.20.20.20
Pinging 172.20.20.20 with 32 bytes of data:
Reply from 172.20.20.20: bytes=32 time=873ms TTL=64
Reply from 172.20.20.20: bytes=32 time<1ms TTL=64
Reply from 172.20.20.20: bytes=32 time=866ms TTL=64
Reply from 172.20.20.20: bytes=32 time<1ms TTL=64
Reply from 172.20.20.20: bytes=32 time=855ms TTL=64
Reply from 172.20.20.20: bytes=32 time<1ms TTL=64
Reply from 172.20.20.20: bytes=32 time=841ms TTL=64
Reply from 172.20.20.20: bytes=32 time<1ms TTL=64
Reply from 172.20.20.20: bytes=32 time=835ms TTL=64
Reply from 172.20.20.20: bytes=32 time<1ms TTL=64
Reply from 172.20.20.20: bytes=32 time=827ms TTL=64
Reply from 172.20.20.20: bytes=32 time<1ms TTL=64
Reply from 172.20.20.20: bytes=32 time=812ms TTL=64
Reply from 172.20.20.20: bytes=32 time<1ms TTL=64
谁能告诉我什么可能导致这种奇怪的行为?相同的驱动程序、相同的配置寄存器、都连接到同一个 USB 集线器...提前致谢