一、編譯內核
1.執行make ARCH=arm CROSS_COMPLIE=arm-linux- menuconfig,修改內核配置選項
Networking --->
[*] Networking support
Networking options --->
<* > Packet socket //添加.配置CONFIG_PACKET
[ * ] IP: DHCP support //添加
[ * ] Network packet filtering---> //添加,後面子選項可不選,配置CONFIG_NETFILTER
2. 若沒選<* > Packet socket, [ * ] Network packet filtering (replaces ipchains) --->選項,在執行udhcpc命令時出現如下錯誤:
~ # udhcpc
udhcpc (v1.20.2) started
udhcpc: udhcpc (v1.20.2) started
FATAL: couldn't listen on socket, Address family not supported by protocol
udhcpc: FATAL: couldn't listen on socket, Address family not supported by protocol
二、編譯busybox
配置busybox,添加以下選項
Networking Utilities --->
udhcp Server/Client --->
[] udhcp Server (udhcpd)
[*] udhcp Client (udhcpc) //生成udhcpc命令
[ ] Lease display utility (dumpleases)
[ ] Log udhcp messages to syslog (instead of stdout)
[ ] Compile udhcp with noisy debugging messages
三、使用方法
udhcpc只是獲取一個IP,並沒有把ip寫到指定的網卡中,需要把\busybox\examples\udhcp下的腳本simple.script改名爲default.script,放在開發板上的/usr/share/dhcpc/目錄下,修改權限爲777。
重啓開發板,執行udhcpc就可自動獲取IP地址了。
udhcpc (v1.20.2) started
Setting IP address 0.0.0.0 on wlan0
Sending discover...
Sending select for 192.168.6.80...
Lease of 192.168.6.80 obtained, lease time 604800
Setting IP address 192.168.6.80 on wlan0
Deleting routers
route: SIOCDELRT: No such process
Adding router 192.168.6.1
Recreating /etc/resolv.conf
Adding DNS server 219.150.32.132
Adding DNS server 202.96.209.5
Adding DNS server 223.5.5.5