轉載請註明 http://www.linuxforum.net/ [email protected] 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命令可以列出電腦硬件的詳細信息,從中我們可以獲取無 線網卡的驅動名。下面是信息片段:
- sudo gedit /etc/modprobe.d/blacklist.conf
- 在文本最後加入 blacklist iwl3945
- 重新啓動
如果的確長時間不會用到無線網絡,這個方法就比較乾淨徹底。