转载请注明 http://www.linuxforum.net/ sailing_9806@163.com sailing 问题来源: 主机端已经设置好了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: ################################################################# ################################################################# 至此,一切问题搞定! -------------------- 以上全是转载的,他的解决方案是拔掉无线网卡,这个用不着把。关闭开机自启动无线网卡不就可以了么,下面也是转载的
--------------------
在家上网几乎不用无线网络,所以在Windows下一直选择禁用无线网卡,需要用的时候可以随时启用,但是Ubuntu下的NetworkManager没有提供这一选项,去掉“启用无线”之前的勾只能暂时禁用,重启后Wifi还是会被自动启用,不胜其烦。研究了一下,大致有2个比较简单方法,可以让ubuntu开机自动禁用无线网络。
自启动脚本将下面这条禁用无线网络的命令添加到“启动应用程序“中,这样开机时无线网络就会被自动禁用
dbus-send --system --type=method_call --dest=org.freedesktop.NetworkManager /org/freedesktop/
NetworkManager org.freedesktop.DBus.Properties.Set string:org.freedesktop.NetworkManager string:
WirelessEnabled variant:boolean:false这是最灵活也是最行之有效的方法,唯一的不足在于,电脑从待机状态下唤醒时,无线网络还是会被重新启用。
2.驱动黑名单
将无线网卡驱动加入黑名单,彻底禁用无线网络。
既然是禁用驱动,首先我们得知道无线网卡的驱动名是什么,在终端中输入lshw命令可以列出电脑硬件的详细信息,从中我们可以获取无 线网卡的驱动名。下面是信息片段:
最后一行显示我的无线网卡驱动名称是iwl3945(intel 3945abg无线网卡),将它加入到黑名单就可以了,具体操作如下: sudo gedit /etc/modprobe.d/blacklist.conf 在文本最后加入 blacklist iwl3945 重新启动
如果的确长时间不会用到无线网络,这个方法就比较干净彻底。