續一 基於fl2440使用rt3070工作在sta模式之動態獲取ip地址

=============================================================

作者:guanlei <[email protected]>

linux內核版本:linux-3.0

開發板:fl2440

busybox版本:busybox-1.20.2

交叉編譯器版本:arm-linux 

============================================================


     上一篇說到fl2440使用rt3070連接自己wifi,但並非動態獲取ip,本篇講述如何動態獲取ip地址

     要支持動態獲取ip的話,你需要在linux內核中和製作文件系統的busyboxmenuconfig選中必要的選項

一: 內核部分

Networking --->
    Networking support   
    Networking options ---> 
           Packet socket                 //添加.配置CONFIG_PACKET
          [ * ]     IP: DHCP support         //添加
          [ * ] Network packet filtering (replaces ipchains) --->  //添加,後面子選項可不選,配置CONFIG_NETFILTER

說明若沒選 Packet socket, [ * ] Network packet filtering (replaces ipchains) --->選項,在執行udhcpc命令時出現如下錯誤:

   # udhcpc -f 
   udhcpc (v1.13.2) started
   eth0: link up, 100Mbps, full-duplex, lpa 0x41E1
   udhcpc: socket: Address family not supported by protocol 

二:busybox部分

[*]udhcp server(udhcpd)

[*]udhcp client(udhcpc)都選上

udhcpd就是終端設備作爲DHCP服務器 ;udhcpc就是終端設備作爲DHCP客戶端

Networking Utilities --->
 [*] udhcp client for DHCPv6 (udhcpc6)                                            

 [*] udhcp server (udhcpd)  //生成udhcpc命令 


make

sudo make install  (過程神略)

     從Busybox的examples/udhcp/下copy  simple.script文件到開發板/usr/share/udhcpc/下,並重命名爲default.script,然後更改文件default.script的權限,

chmod a+x default.script。(如果你沒有在開發板上修改權限的話,是不能獲取ip的,錯誤可能是這樣的)

>: udhcpc -i wlan0
udhcpc (v1.20.2) started
Sending discover...
Sending select for 192.168.1.110...
Lease of 192.168.1.110 obtained, lease time 7200

後邊啥都沒了。。。。。。然而這並不是正確的!



三 連接WiFi,嘗試dhcp

>: wpa_supplicant -Dwext -iwlan0 -c/apps/etc/wireless/wpa_supplicant.conf &

上面這命令是在你配置好了wpa_supplicant.conf ,啓用了wlan0基礎上運行的

>:  udhcpc  -i wlan0   //雙網卡的時候指定wlan0
udhcpc (v1.20.2) started
Setting IP address 0.0.0.0 on wlan0
Sending discover...
Sending select for 192.168.1.110...    //這就是分配給你的ip  
Lease of 192.168.1.110 obtained, lease time 7200
Setting IP address 192.168.1.110 on wlan0
Deleting routers
route: SIOCDELRT: No such process
Adding router 192.168.1.1
Recreating /etc/resolv.conf
 Adding DNS server 218.104.111.114   //配置我們的dns,在etc下的resolv.conf文件中可以看到
 Adding DNS server 218.104.111.122   

(這次自動獲取纔是對的!!)


查看一下現在的信息

>: route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         localhost       0.0.0.0         UG    0      0        0 wlan0
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
192.168.1.0     *               255.255.255.0   U     0      0        0 wlan

>: ifconfig eth0 down //把你的eth0 關了先  要不一會兒你ping的時候wlan0和eth0回不和諧的!

>: ping www.baidu.com
PING www.baidu.com (61.135.169.125): 56 data bytes
64 bytes from 61.135.169.125: seq=0 ttl=55 time=75.904 ms
64 bytes from 61.135.169.125: seq=1 ttl=55 time=73.490 ms
64 bytes from 61.135.169.125: seq=2 ttl=55 time=76.492 ms
64 bytes from 61.135.169.125: seq=3 ttl=55 time=75.445 ms


--- www.baidu.com ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 73.490/75.332/76.492 ms


以上就是rt3070自動獲取ip的過程,若沒有成功再參考前一篇文章!







發佈了30 篇原創文章 · 獲贊 25 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章