【摘要】:搞无线开发的朋友注意了,本文详解为什么开发板的
TFTP
、
NFS
等网络功能神奇消失。在安装完毕无线网卡驱动后,出现开发板的网络系统不能用,也无法
ping
通的情况,本质上是由网络接口的问题引发的路由表问题,数据包无法通过无线接口发送出去。现转贴我在
linuxforum.net
上的精华帖。
【关键词】:
ping
,
Tftp
,无线局域网,
wn321g
,
wl167g
,
arm
原帖链接
问题来源:
主机端已经设置好了
TFTP
,以前能用,最近突然不能用
TFTP from server 192.168.0.12; our IP address is 192.168.0.15
Filename 'ulmage'.
Load address: 0x21000000
Loading:T T T T T T T T T T T T
。。。。。
Retry count exceeses ;starting again
我通过
flash
启动,进入系统可以更改
MAC
,也可以配置
IP
,提示成功
[root@AT91RM9200DK /root]$ifconfig
eth0 Link encap:Ethernet HWaddr 00:E0:4C:4D:8D:5E
inet addr:192.168.0.14 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
但是
ping
不通主机,这个时候板子上网络的一个灯在闪烁,应该是正在发送数据
相关情况可见
http://www.linuxforum.net/forum/showflat.php?Cat=&Board=embedded&Number=646034&fpart=1&PHPSESSID=
也就是说不管是
U-boot
通过
TFTP
与主机通信下载内核印象还是进入系统后
ping
主机或者通过
NFS
加载主机上的文件,此时,以前可用的网络功能现在都不能用了
为什么呢?更神奇的是板子拿到别人机子上就可以用了,证明硬件没问题
网线拿到别的开发板上用别人的机子也没问题
主机
ping
局域网内的机器也没问题
开发板网络硬件、主机网络接口、网线都没问题,可为什么
TFTP
无法下载呢,为什么无法加载
NFS
?就怪了!?
折腾好几天,又有坛子里朋友们的支持,终于搞定了这个问题,在此感谢
nxin
和
vxworks
帮我排除了板子本身的硬件问题,才让我想到了无线接口的问题
小弟正从事无线网卡在
ARM
平台上的移植工作,希望与大家多交流共同提高
其实问题的本质就是最近我刚安装好了无线网卡的驱动,现在主机有两个网络接口,无线网络接口优先,因此板子的
TFTP
及
NFS
功能都被限制了,根本办法
windows
下杀死无线网卡驱动的进程,
Linux
下关闭无线网卡的驱动,保证只有
eth0
接口
详细过程如下:
一、配置以太网
eth0
及
Lo
,确定板子硬件无误
[root@AT91RM9200DK /root]$ifconfig eth0 192.168.0.14
eth0: Link now 100-FullDuplex
[root@AT91RM9200DK /root]$ifconfig
eth0 Link encap:Ethernet HWaddr 00:18:F3:E5:9D:66
inet addr:192.168.0.14 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
.............
[root@AT91RM9200DK /root]$ping 192.168.0.12
此时主机有无线接口
,
不能
ping
通
PING
192.168.0.12 (192.168.0.12): 56 data bytes
--- 192.168.0.12 ping statistics ---
4 packets transmitted, 0 packets received, 100% packet loss
[root@AT91RM9200DK /root]$ifconfig lo 127.0.0.1
[root@AT91RM9200DK /root]$ifconfig ##
当前以太网和回环接口
UP
eth0 Link encap:Ethernet HWaddr 00:18:F3:E5:9D:66
inet addr:192.168.0.14 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
[root@AT91RM9200DK /root]$ping 127.0.0.1 ##
网络硬件应该没有问题了吧
PING
127.0.0.1 (127.0.0.1): 56 data bytes
Warning: unknown ICMP packet received (not echo-reply)
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=1.6 ms
--- 127.0.0.1 ping statistics ---
6 packets transmitted, 6 packets received, 0% packet loss
二、未拔无线网卡,关闭无线接口确不行
[root@dding root]# ifconfig rausb0 down
[root@dding root]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:F0:4C:81:64:43
inet addr:192.168.0.12 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
##
关闭了无线接口此时只剩下有线接口
,
看是否能否
ping
通
[root@dding root]# ping 192.168.0.14
怎么会这样呢
,
我连上了阿
?
网线肯定没问题阿
connect: Network is unreachable
[root@AT91RM9200DK /root]$ping 192.168.0.12
PING
192.168.0.12 (192.168.0.12): 56 data bytes
--- 192.168.0.12 ping statistics ---
11 packets transmitted, 0 packets received, 100% packet loss
##
绝望阿
三、拔下无线网卡、彻底关闭无线接口
[root@dding root]# service network restart
正在关闭接口
eth0
:
[
确定
]
关闭环回接口:
[
确定
]
设置网络参数:
[
确定
]
弹出环回接口:
[
确定
]
弹出界面
eth0
:
[
确定
]
弹出界面
rausb0
:
rt73
设备
rausb0
似乎不在。将要推迟它的初始化。
[
失败
]
[root@dding root]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:F0:4C:81:64:43
inet addr:192.168.0.12 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
##
彻底清除无线接口
四、板子和主机互
ping
[root@dding root]# ping 192.168.0.14 ##ping
板子
,
可以了
,
哈哈
,
原来如此阿
PING
192.168.0.14 (192.168.0.14) 56(84) bytes of data.
64 bytes from 192.168.0.14: icmp_seq=1 ttl=64 time=0.836 ms
--- 192.168.0.14 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2008ms
rtt min/avg/max/mdev = 0.135/0.382/0.836/0.321 ms
[root@AT91RM9200DK /root]$ping 192.168.0.12 ##ping
主机
,
可以阿
,
太爽了
,
心病没了
PING
192.168.0.12 (192.168.0.12): 56 data bytes
64 bytes from 192.168.0.12: icmp_seq=0 ttl=64 time=0.5 ms
64 bytes from 192.168.0.12: icmp_seq=2 ttl=64 time=0.3 ms
五、板子重新确定,
TFTP
功能正常了(注意,此时主机的无线接口必须是关闭的)
##
板子重新启动
U-Boot 1.1.1 (Nov 16 2004 - 18:01:43)
U-Boot code: 21F00000 -> 21F16F2C BSS: -> 21F1B368
RAM Configuration:
Bank #0: 20000000 32 MB
Flash: 16 MB
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0
TFTP from server 192.168.0.12; our IP address is 192.168.0.15
Filename 'ulmage'.
Load address: 0x21000000
Loading: #################################################################
#################################################################
至此,一切问题搞定!