USBからイーサネットへ:パケットを送信できません。

USBからイーサネットへ:パケットを送信できません。

USB経由で接続されたlan7500i-ABZJを備えたカスタム組み込みLinuxボードがあります。

したがって、組み込みの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)

他のネットワークインターフェイスはアクティブではありません。 localhostにpingを実行できるため、TCP / IPレベルではすべてが正常であると仮定します。イーサネットインターフェイスが利用できないのはなぜですか?

答え1

ifconfig(またはここにある場合もあります)busybox ifconfigは、管理上のUP状態で、キャリア(たとえば、リモートNIC、スイッチなど)を検出したNICに加えてRUNNING表示されます。UP欠落は、RUNNINGNICが接続されていないか、回線の反対側のNICを正しく検出するように設定できないことを意味します。

ip link(またはbusybox ip link)、Linuxでは常にip address(with)より優先的に使用する必要があり、この場合はifconfig間違いのないフラグが表示されます。NO-CARRIER

それでは、なぜ演算子がないのかを確認する必要があります。通常、このethtoolコマンドは、自動ネゴシエーションが失敗したか、使用が許可されていないかを確認するのに役立ちます。まだ存在しない場合は、ビルドに追加する必要があります。

関連情報