플랫폼
- CPU: RK3288 ARMv7 임베디드 프로세서
- 메모리: 2GB
- 네트워크 카드: 온보드 RTL8211E 칩
- 운영 체제: 우분투 14.04.1 LTS
root@9tripod:~# uname -a
Linux 9tripod 3.10.0 #26 SMP PREEMPT Sat Mar 4 17:06:44 CST 2017 armv7l armv7l armv7l GNU/Linux
root@9tripod:~# cat /etc/issue
Ubuntu 14.04.1 LTS \n \l
징후
시스템 이미지가 새로 고쳐지고 시작된 후 PC와 개발 보드 사이에 네트워크 케이블을 연결합니다. 그런 다음 다음 명령을 사용하여 PC 및 개발 보드에 고정 IP 주소를 설정합니다 ifconfig
.
ifconfig eth0 192.168.1.XXX netmask 255.255.255.0
ping
그런 다음 컴퓨터를 사용해 보았 으나 액세스할 수 없었습니다.
root@9tripod:~# ping 192.168.1.107
PING 192.168.1.107 (192.168.1.107) 56(84) bytes of data.
From 192.168.1.233 icmp_seq=1 Destination Host Unreachable
From 192.168.1.233 icmp_seq=2 Destination Host Unreachable
From 192.168.1.233 icmp_seq=3 Destination Host Unreachable
From 192.168.1.233 icmp_seq=4 Destination Host Unreachable
From 192.168.1.233 icmp_seq=5 Destination Host Unreachable
From 192.168.1.233 icmp_seq=6 Destination Host Unreachable
^C
--- 192.168.1.107 ping statistics ---
7 packets transmitted, 0 received, +6 errors, 100% packet loss, time 6005ms
pipe 3
몇 번 시도한 끝에 보드의 RJ45 커넥터에 있는 녹색 LED가 깜박이고 노란색 LED는 꺼져 있는 것을 발견했습니다. 그러나 네트워크 케이블이 분리되면 두 LED 모두 계속 켜집니다. 그런 다음 ifconfig
명령을 입력하여 RX 패킷이 전송되지 않았음을 확인했습니다.
root@9tripod:~# ifconfig
eth0 Link encap:Ethernet HWaddr ee:e3:d4:01:f6:6f
inet6 addr: fe80::ece3:d4ff:fe01:f66f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:2133 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:524034 (524.0 KB)
Interrupt:59
...
PC를 사용하여 역핑(Ping)하면 "Target Host unreachable"이라고 표시되고 보드는 패킷을 수신하지 않습니다. 시스템을 다시 시작하고 다른 케이블을 변경하고 스위치를 사용하고 심지어 RJ45 커넥터를 새 커넥터로 변경해 보았지만 아무 소용이 없었습니다. 그런데 ping 테스트를 해보니 wlan0이 다운되어 있어서 라우팅 테이블에는 문제가 없을 것 같습니다.
진단 정보
- 사용
ifconfig
: 증상 섹션을 참조하세요. - 사용
ip link show
:
root@9tripod:~# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether ee:e3:d4:01:f6:6f brd ff:ff:ff:ff:ff:ff
3: sit0: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default
link/sit 0.0.0.0 brd 0.0.0.0
4: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN mode DORMANT group default qlen 1000
link/ether 00:90:4c:11:22:33 brd ff:ff:ff:ff:ff:ff
- 내용은 다음과 같습니다
/etc/network/interfaces
.
root@9tripod:~# cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopback
auto eth0
#iface eth0 inet dhcp
- 네트워크 관리자 사용:
root@9tripod:~# nmcli device status
DEVICE TYPE STATE
eth0 802-3-ethernet disconnected
wlan0 802-11-wireless connected
root@9tripod:~# nm-tool
NetworkManager Tool
State: connected (global)
- Device: eth0 -----------------------------------------------------------------
Type: Wired
Driver: stmmaceth
State: disconnected
Default: no
HW Address: EE:E3:D4:01:F6:6F
Capabilities:
Carrier Detect: yes
Speed: 1000 Mb/s
Wired Properties
Carrier: on
...
- 사용
mii-tool
:
root@9tripod:~# mii-tool
eth0: negotiated 1000baseT-FD flow-control, link ok
- 사용
ethtool
:
root@9tripod:~# ethtool eth0
Settings for eth0:
Supported ports: [ TP AUI BNC MII FIBRE ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: MII
PHYAD: 1
Transceiver: external
Auto-negotiation: on
Supports Wake-on: ug
Wake-on: d
Current message level: 0x0000003f (63)
drv probe link timer ifdown ifup
Link detected: yes
- 사용
dmesg
:
root@9tripod:~# dmesg |grep -i eth0
[ 17.685231] eth0: device MAC address ee:e3:d4:01:f6:6f
[ 17.693782] eth0: PHY ID 001cc915 at 0 IRQ 0 (stmmac-0:00) active
[ 17.693788] eth0: PHY ID 001cc915 at 1 IRQ 0 (stmmac-0:01) active
질문
이제 시스템이 eth0을 감지하여 오류 없이 위의 작업을 수행할 수 있고, IP 주소가 정적으로 올바르게 설정되었는데, 보드가 eth0을 통해 다른 장치에 액세스할 수 없는 이유는 무엇일까요?
내 생각엔 네트워크 카드 칩에 문제가 있는 것 같은데, 리눅스에서는 오류 없이 동작하는 게 이상하다. 칩이 전반적으로 잘 작동하는데 일부 기능(예: 데이터 수신)이 손상될 가능성이 있나요?
추가 진단 정보가 필요한 경우 댓글을 남겨주세요. 어떤 조언이라도 감사하겠습니다.