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
欠落は、RUNNING
NICが接続されていないか、回線の反対側のNICを正しく検出するように設定できないことを意味します。
ip link
(またはbusybox ip link
)、Linuxでは常にip address
(with)より優先的に使用する必要があり、この場合はifconfig
間違いのないフラグが表示されます。NO-CARRIER
それでは、なぜ演算子がないのかを確認する必要があります。通常、このethtool
コマンドは、自動ネゴシエーションが失敗したか、使用が許可されていないかを確認するのに役立ちます。まだ存在しない場合は、ビルドに追加する必要があります。