USB转以太网:无法传输任何包

USB转以太网:无法传输任何包

我有一个定制的嵌入式 Linux 板,带有通过 USB 连接的 lan7500i-ABZJ。

因此,我编译了带有内置 smsc75xx 模块的 linux 内核(使用 buildroot)。启动内核消息确实显示:

    [    5.315124] usb 1-1: New USB device found, idVendor=0424, idProduct=7500, bcdDevice= 2.00
    [    5.324072] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
    [    5.340746] smsc75xx v1.0.0
    [    5.539195] smsc75xx 1-1:1.0 eth1: register 'smsc75xx' at usb-ci_hdrc.0-1, smsc75xx USB 2.0 Gigabit Ethernet, 8e:64:f6:eb:5e:65

现在我添加一个IP地址:

    ifconfig eth1 192.168.1.44 netmask 255.255.255.0 up

但是一旦我尝试 ping 本地网络上的地址,所有数据包都会丢失:

    # ping 192.168.1.40
    PING 192.168.1.40 (192.168.1.40): 56 data bytes
    ^C
    --- 192.168.1.40 ping statistics ---
    3 packets transmitted, 0 packets received, 100% packet loss
    # arp
    ? (192.168.1.40) at <incomplete>  on eth1

并且没有包通过接口传输:

    eth1      Link encap:Ethernet  HWaddr 8E:64:F6:EB:5E:65  
              inet addr:192.168.1.44  Bcast:192.168.1.255  Mask:255.255.255.0
              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)

没有其他网络接口处于活动状态。可以 ping 到 localhost,因此我认为 TCP/IP 级别上一切正常。为什么我无法使用以太网接口?

答案1

ifconfig(或者这里可能busybox ifconfig)除了管理上处于 UP 状态并且已检测到运营商(即:远程 NIC、交换机等)的 NICRUNNING之外还会显示 。UP缺少RUNNING意味着 NIC 未连接或无法设置为正确检测线路另一侧的 NIC。

ip link(或busybox ip link),在 Linux 上应始终优先(与ip address)一起使用,在这种情况下ifconfig会显示明确无误的标志。NO-CARRIER

所以你必须检查为什么没有运营商。通常该ethtool命令在这里会派上用场,以查看自动协商是否失败,或者不得使用等。如果尚不存在,则应将其添加到构建中。

相关内容