实现DHCP自动获取IP地址
前提:系统已经实现DNS(即使用ping www.baidu.com测试时能ping通)。
1. 在内核中添加以下选项:
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
udhcpc (v0.9.9-pre) started
udhcpc[208]: udhcpc (v0.9.9-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中添加以下选项:
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下就可以了。
我从 网上 下的udhcp_0.9.8cvs20050303.orig.tar.gz文件
解压后修改Makefile文件
在19行添加CROSS_COMPILE=arm-linux-
注释12行的COMBINED_BINARY=1,否则不生成udhcpc命令。
3. 建相关配置文件
从busybox的examples/udhcp/下copy simple.script文件到开发板/usr/share/udhcpc/下,并重命名为default.script,udhcp_0.9.8cvs20050303.orig.tar.gz中也有这样的文件。
[root@localhost root]# vi usr/share/udhcpc/default.script
#!/bin/sh
# udhcpc script edited by Tim Riker <Tim@Rikers.org>
[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1
RESOLV_CONF="/etc/resolv.conf"
[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
[ -n "$subnet" ] && NETMASK="netmask $subnet"
case "$1" in
deconfig)
/sbin/ifconfig $interface 0.0.0.0
;;
renew|bound)
/sbin/ifconfig $interface $ip $BROADCAST $NETMASK
if [ -n "$router" ] ; then
echo "deleting routers"
while route del default gw 0.0.0.0 dev $interface ; do
:
done
for i in $router ; do
route add default gw $i dev $interface
done
fi
echo -n > $RESOLV_CONF
[ -n "$domain" ] && echo search $domain >> $RESOLV_CONF
for i in $dns ; do
echo adding dns $i
echo nameserver $i >> $RESOLV_CONF
done
;;
esac
exit 0
4. 重启开发板,执行udhcpc就可自动获取IP地址了,以下是执行udhcpc的输出信息:
~ # udhcpc
udhcpc (v0.9.9-pre) started
udhcpc[228]: udhcpc (v0.9.9-pre) started
Sending discover...
udhcpc[228]: Sending discover...
Sending select for 192.168.1.109...
udhcpc[228]: Sending select for 192.168.1.109...
Lease of 192.168.1.109 obtained, lease time 86400
udhcpc[228]: Lease of 192.168.1.109 obtained, lease time 86400
deleting routers
route: SIOC[ADD|DEL]RT: No such process
adding dns 192.168.0.1
~ # ping www.baidu.com
PING www.a.shifen.com (220.181.38.4): 56 data bytes
64 bytes from 220.181.38.4: icmp_seq=0 ttl=52 time=1219.0 ms
[1] + Stopped ping www.baidu.com
5. 如果是双网卡必须用参数指明
例:udhcpc -i eth1
分享到:
相关推荐
udhcp源码,直接make即可编译gcc版本,如果需要交叉编译,需要修改makefile里面的CROSS_COMPILE即可,亲测可用哟
文件系统使用udhcpc获取IP,可是ifconfig查看网卡信息时,IP地址没有改变。
它依赖于相近版本的busybox,如果需要下载busybox,请移步https://download.csdn.net/download/hannibaychty/85593276
udhcp-0.9.8 在高版本编译器下会有小bug,已经修复。
#udhcpc #config ip netmask gw #ifconfig eth0 172.20.223.123 netmask 255.255.255.0 #route add default gw 172.20.223.254 serverip=$1 serverpath=$2 localpath=$3 echo "usage:./mount_nfs serverip server...
自动获得IP地址
udhcp源码详解 udhcp源码详解 udhcp源码详解 udhcp源码详解
1.dhcp v4 server:执行程序 /bin/udhcpd -S /var/udhcpd/udhcpd.conf 2.dhcp v4 client:执行程序 /bin/udhcpc -i nas0_1 -p /var/run/udhcpc.pid.nas0_1 -s /etc/scripts/udhcpc.sh -H RTK_GW
解决无法自动获取IP导致不能上网的问题。
拷贝到开发板/usr/share/udhcpc/目录下,执行udhcpc -i eth0,实现动态获取IP地址
ubiupdatevol, udhcpc, udhcpd, udpsvd, umount, uname, uncompress, unexpand, uniq, unix2dos, unlzma, unlzop, unxz, unzip, uptime, usleep, uudecode, uuencode, vconfig, vi, volname, watch, watchdog, wc...
背景:执行shell命令,抓取shell返回信息中的所需信息,已udhcpc为例获取DNS的地址。 暂不作处理,执行udhcpc。 使用grep过滤掉无用信息,执行 udhcpc | grep “DNS” 使用sed抓取第二行,-n ‘2p’代表第二行,-n...
Quectel Linux ConnectManager SR01A01V21 用来替换传统的3G ppp拨号,拨号速度快,但只可以用于EC20系列的拨号,给需要的人吧!!
[收集于网络,仅供学习,侵权立删], dhcp实现,通过DHCP协议,从server端获取动态的不固定的IP地址。
在嵌入式Linux下修改文件进行设置开机启动时静态IP或者动态IP
嵌入式下的DHCP代码包,已经成功移植到多个平台:DHCP,动态分配IP。
路由器在修改了无线密码或者是DNS地址后,需要重启路由器才会生效。那么,TP-Link无线路由器怎么重启呢?针对此问题,本文就为大家图文介绍TP-Link路由器的重启方法
4. MentoHUST没有条件测试,如不能自动获取IP,请把Web界面的DHCP script的值由“udhcpc -i”改成“udhcpc -renew”试试。 5. 关于extroot(既用U盘引导系统),没想到现在这么简单了。 简单说下:先把U盘在电脑里...
源码在Centos 7.6下测试编译成功,自动识别配置文件,需要busybox udhcpc命令,如果是PC平台,需要下载busybox源码编译,然后export一下可执行文件busybox所在路径即可。
4. MentoHUST没有条件测试,如不能自动获取IP,请把Web界面的DHCP script的值由“udhcpc -i”改成“udhcpc -renew”试试。 5. 关于extroot(既用U盘引导系统),没想到现在这么简单了。 简单说下:先把U盘在电脑里...