`
fp_moon
  • 浏览: 980365 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

udhcpc和udhcpd移植

    博客分类:
  • DHCP
阅读更多

 

实现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命令copyusr/sbin下就可以了。

我从 网上  下的udhcp_0.9.8cvs20050303.orig.tar.gz文件

解压后修改Makefile文件

19行添加CROSS_COMPILE=arm-linux-  

注释12行的COMBINED_BINARY=1,否则不生成udhcpc命令。

3  建相关配置文件

busyboxexamples/udhcp/copy  simple.script文件到开发板/usr/share/udhcpc/下,并重命名为default.scriptudhcp_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 

 

分享到:
评论

相关推荐

    udhcpc源码

    它的源码简洁高效,便于理解和定制,是学习DHCP协议和网络编程的理想材料。在本文中,我们将深入探讨udhcp的源码结构、编译过程以及如何进行交叉编译。 首先,udhcp源码的核心功能在于实现DHCP协议,该协议用于自动...

    udhcpc配置文件default.script

    文件系统使用udhcpc获取IP,可是ifconfig查看网卡信息时,IP地址没有改变。

    udhcpc_1.27.2-2ubuntu3_armhf软件包

    它依赖于相近版本的busybox,如果需要下载busybox,请移步https://download.csdn.net/download/hannibaychty/85593276

    udhcp-0.9.8

    udhcp-0.9.8 是一个轻量级的动态主机配置协议(DHCP)服务器软件,它为网络管理员提供了一种简单、高效的方式来自动分配IP地址和其他网络配置信息给网络上的设备。udhcp项目由William P. Johnson开发,其设计目标是...

    udhcp_0.9.8cvs20050303.orig.tar.gz

    了解这些知识后,你可以解压“udhcp_0.9.8cvs20050303.orig.tar.gz”,查看源代码,学习UDHCPC的实现细节,甚至根据自己的需求对其进行修改和移植。对于嵌入式开发人员来说,理解DHCP协议和UDHCPC的工作原理是非常有...

    TQ335x学习笔记——Nand&&网卡驱动移植

    通过本文档的学习,我们可以看到,在TQ335x平台上移植Nand和网卡驱动是一个较为顺畅的过程。德州仪器提供的内核和工具集为开发者提供了极大的便利,使得硬件设备的驱动开发变得更加简单高效。无论是Nand驱动还是网卡...

    default.script

    拷贝到开发板/usr/share/udhcpc/目录下,执行udhcpc -i eth0,实现动态获取IP地址

    Linux WIFI驱动移植教程

    "Linux WIFI驱动移植教程" Linux WIFI驱动移植教程是一篇详细的教程,旨在指导读者如何将 WIFI驱动移植到 Linux 系统上。该教程涵盖了从配置红框内设置到创建 WIFI 连接脚本的整个过程。 知识点1:配置红框内设置...

    mount_nfs.sh

    #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...

    udhcp源码详解 udhcp源码详解

    DHCP (Dynamic Host Configuration Protocol) 是一种网络协议,用于自动分配IP地址和其他网络配置信息给网络上的设备。udhcp是一个轻量级的DHCP服务器实现,通常用于嵌入式系统和小型网络环境中。本篇文章将深入探讨...

    自动获得IP

    自动获得IP地址

    Atheros _AR8328 NAT_HELP单VLAN移植测试报告.pdf

    移植过程涉及到初始化代码的修改和VLAN配置的调整。 7. MAC和ARP地址条目:MAC(媒体访问控制)地址是网络设备的硬件地址,而ARP(地址解析协议)用于将网络层的IP地址映射到数据链路层的MAC地址。文档提到了在NAT_...

    基于Linux系统的4G-WSN无线网关的设计.pdf

    软件系统设计主要包括TD-LTE模块驱动的调试和移植、ME3760拨号脚本配置以及UDHCPC的移植。 在TD-LTE模块驱动的实现中,需要对内核源码进行修改。在文件`/linux-2.6.24/drivers/usb/serial/usb-serial.c`的`usb_...

    解决无法自动获取IP的问题

    1. 打开网络和共享中心,然后左键单击本地连接,选择属性。 2. 双击 IPv4 协议,选择“使用下面的 IP 地址”,然后输入 192.168.0.X(X 可以随便输入 0-255 之间的任何数字)。 3. 如果提示 IP 冲突,就把 X 改成...

    linux下精简版dhcp

    编译成功后,udhcpd和udhcpc二进制文件会被安装到系统路径中,如`/usr/local/bin`,接着可以按照上述介绍配置和使用udhcp服务。 总结,Linux下的精简版DHCP——udhcp,是一个轻量级且实用的解决方案,尤其适用于...

    网关 dhcp v4 服务器与客户端

    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

    Busybox for Android v1.20.2

    ubiupdatevol, udhcpc, udhcpd, udpsvd, umount, uname, uncompress, unexpand, uniq, unix2dos, unlzma, unlzop, unxz, unzip, uptime, usleep, uudecode, uuencode, vconfig, vi, volname, watch, watchdog, wc...

    Linux中Shell截取某行某列信息

    背景:执行shell命令,抓取shell返回信息中的所需信息,已udhcpc为例获取DNS的地址。 暂不作处理,执行udhcpc。 使用grep过滤掉无用信息,执行 udhcpc | grep “DNS” 使用sed抓取第二行,-n ‘2p’代表第二行,-n...

    Quectel_Linux_ConnectManager_SR01A01V21.

    在现代物联网(IoT)和移动通信领域,高速、稳定的网络连接至关重要。`Quectel Linux ConnectManager SR01A01V21`是一款专为提升EC20系列模块拨号速度而设计的软件工具,它为Linux系统提供了一种更加高效且便捷的3G/...

    TQ2440DHCPMn linux下自动获取ip分配

    - **配置文件**: 确保正确配置 `/etc/udhcpd.conf` 文件,尤其是 IP 地址范围、子网掩码、DNS 服务器等信息。 - **内核支持**: 内核必须支持所需的网络选项,特别是 DHCP 支持。 - **BusyBox 版本**: 确保使用的 ...

Global site tag (gtag.js) - Google Analytics