=============================================================
作者:guanlei <[email protected]>
linux內核版本:linux-3.0
開發板:fl2440
busybox版本:busybox-1.20.2
交叉編譯器版本:arm-linux
============================================================
上一篇說到fl2440使用rt3070連接自己wifi,但並非動態獲取ip,本篇講述如何動態獲取ip地址
要支持動態獲取ip的話,你需要在linux內核中和製作文件系統的busybox的menuconfig選中必要的選項
一: 內核部分
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的過程,若沒有成功再參考前一篇文章!