DHCP程序运行与调试
实现的目标:
开机时自动获取IP地址,若没有可用的IP地址,选用autoip;或者选用静态配置的ip
地址。
DHCP客户端程序有多种,本系统选用的busybox下的dhcpc。 [1]修改内核配置;在内核中添加以下选项:
Networking --->
[*] Networking support
Networking options--->
<* > Packet socket //添加.配置CONFIG_PACKET
[ * ] IP: DHCP support //添加
[ * ] Network packet filtering (replaces ipchains)---> //添加,后面子选项可不选,配
置CONFIG_NETFILTER
?--- Network packet filtering framework (Netfilter)
说明:若没选<* > Packet socket, [ * ] Network packet filtering (replaces ipchains)--->选项,在
执行udhcpc命令时出现如下错误:
~ # udhcpc
udhcpc (v-pre) started
udhcpc[208]: udhcpc (v-pre) started
FATAL: couldn't listen on socket, Address family not supported by protocol
udhcpc[208]: FATAL: couldn't listen on socket, Address family not supported by protocol [2]修改busybox配置,Busybox中添加以下选项:
Networking Utilities --->
udhcp Server/Client --->
[] udhcp Server (udhcpd) //在此不作服务端,故不选。生成udhcpd命令
[*] udhcp Client (udhcpc)//生成udhcpc命令
[ ] Lease display utility (dumpleases)
[ ] Log udhcp messages to syslog (instead of stdout)
[ ] Compile udhcp with noisy debugging messages
若busybox没编译相应选项,也可从网上下载相应文件,用arm-linux交叉编译得到
udhcpd,udhcpc命令copy到usr/sbin下就可以了。
…… 此处隐藏0字 ……
我从网上下的udhcp_cvs20050303.orig.tar.gz文件
解压后修改Makefile文件
在19行添加CROSS_COMPILE=arm-linux-
注释12行的COMBINED_BINARY=1,否则不生成udhcpc命令 [3]运行程序:
up-tech:/sbin #./udhcpc
udhcpc (v1.15.3) started
Sending discover...
Sending select for 192.168.1.102...