实现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
分享到:
相关推荐
它的源码简洁高效,便于理解和定制,是学习DHCP协议和网络编程的理想材料。在本文中,我们将深入探讨udhcp的源码结构、编译过程以及如何进行交叉编译。 首先,udhcp源码的核心功能在于实现DHCP协议,该协议用于自动...
文件系统使用udhcpc获取IP,可是ifconfig查看网卡信息时,IP地址没有改变。
它依赖于相近版本的busybox,如果需要下载busybox,请移步https://download.csdn.net/download/hannibaychty/85593276
udhcp-0.9.8 是一个轻量级的动态主机配置协议(DHCP)服务器软件,它为网络管理员提供了一种简单、高效的方式来自动分配IP地址和其他网络配置信息给网络上的设备。udhcp项目由William P. Johnson开发,其设计目标是...
了解这些知识后,你可以解压“udhcp_0.9.8cvs20050303.orig.tar.gz”,查看源代码,学习UDHCPC的实现细节,甚至根据自己的需求对其进行修改和移植。对于嵌入式开发人员来说,理解DHCP协议和UDHCPC的工作原理是非常有...
通过本文档的学习,我们可以看到,在TQ335x平台上移植Nand和网卡驱动是一个较为顺畅的过程。德州仪器提供的内核和工具集为开发者提供了极大的便利,使得硬件设备的驱动开发变得更加简单高效。无论是Nand驱动还是网卡...
拷贝到开发板/usr/share/udhcpc/目录下,执行udhcpc -i eth0,实现动态获取IP地址
"Linux WIFI驱动移植教程" Linux WIFI驱动移植教程是一篇详细的教程,旨在指导读者如何将 WIFI驱动移植到 Linux 系统上。该教程涵盖了从配置红框内设置到创建 WIFI 连接脚本的整个过程。 知识点1:配置红框内设置...
#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...
DHCP (Dynamic Host Configuration Protocol) 是一种网络协议,用于自动分配IP地址和其他网络配置信息给网络上的设备。udhcp是一个轻量级的DHCP服务器实现,通常用于嵌入式系统和小型网络环境中。本篇文章将深入探讨...
自动获得IP地址
移植过程涉及到初始化代码的修改和VLAN配置的调整。 7. MAC和ARP地址条目:MAC(媒体访问控制)地址是网络设备的硬件地址,而ARP(地址解析协议)用于将网络层的IP地址映射到数据链路层的MAC地址。文档提到了在NAT_...
软件系统设计主要包括TD-LTE模块驱动的调试和移植、ME3760拨号脚本配置以及UDHCPC的移植。 在TD-LTE模块驱动的实现中,需要对内核源码进行修改。在文件`/linux-2.6.24/drivers/usb/serial/usb-serial.c`的`usb_...
1. 打开网络和共享中心,然后左键单击本地连接,选择属性。 2. 双击 IPv4 协议,选择“使用下面的 IP 地址”,然后输入 192.168.0.X(X 可以随便输入 0-255 之间的任何数字)。 3. 如果提示 IP 冲突,就把 X 改成...
编译成功后,udhcpd和udhcpc二进制文件会被安装到系统路径中,如`/usr/local/bin`,接着可以按照上述介绍配置和使用udhcp服务。 总结,Linux下的精简版DHCP——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
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...
在现代物联网(IoT)和移动通信领域,高速、稳定的网络连接至关重要。`Quectel Linux ConnectManager SR01A01V21`是一款专为提升EC20系列模块拨号速度而设计的软件工具,它为Linux系统提供了一种更加高效且便捷的3G/...
- **配置文件**: 确保正确配置 `/etc/udhcpd.conf` 文件,尤其是 IP 地址范围、子网掩码、DNS 服务器等信息。 - **内核支持**: 内核必须支持所需的网络选项,特别是 DHCP 支持。 - **BusyBox 版本**: 确保使用的 ...