http://blog.csdn.net/guoyaoyao1990/article/details/12096567

一、设备作为dhcp客户端连接:

udhcpc 由busybox配置系统时,选择网络服务中的udhcpc。

当没有网络的时候,板子一直发送dhcp请求,导致程序不往下执行,解决的办法是把它切换到后台运行,可是如何切换到后台呢,有办法,它自带参数可以实现该功能。如下:

udhcpc -b -i eth0 -p /var/run/udhcpc.pid

解释一下,-b就是切换到后台指令,-i是指定使用哪个网络接口,双网卡的时候一定要使用它来指定eth0  or  eth1

-c, --clientid=CLIENTID         Client identifier
-H, --hostname=HOSTNAME         Client hostname
-h,    Alias for -H
-f, --foreground                Do not fork after getting lease
-b, --background                Fork to background if lease cannot be  immediately negotiated.
-i, --interface=INTERFACE       Interface to use (default: eth0)
-n, --now                       Exit with failure if lease cannot be immediately negotiated.
-p, --pidfile=file              Store process ID of daemon in file
-q, --quit                      Quit after obtaining lease
-r, --request=IP                IP address to request (default: none)
-s, --script=file               Run file at dhcp events (default: /usr/share/udhcpc/default.script)
-v, --version                   Display version

调用udhcpc执行的命令:
udhcpc -i eth2 -p eth2.pid  -s udhcpc.script -b -a -T 1
-s 后面是执行脚本。执行脚本里面,通过环境变量,获取我们需要的各种网络参数。linux平台下,我们通过如下方法获取网络参数。
可执行脚本通过dhcp的源码dhcpc.c 里面的udhcp_run_script函数调用,函数的第二个参数就是可执行脚本的传入参数。 传入状态有 
"deconfig"、"renew"、"bound"等几种。                                                                     

if ($argv[1] == "renew" || $argv[1] == "bound")

{
   $netmask=getenv("subnet");             $broadcast=getenv("broadcast");        $interface=getenv("interface");        $ip=getenv("ip");                      $router=getenv("router");              $dns=getenv("dns");                    $dns_pri="";                           $dns_sec=""; 
}
然后,在脚本中,通过system命令,把ip,broadcast,device,via等信息加入系统中。这样就可以通过dhcp上网了。

关闭udhcpc相关的服务:
从eth*.pid中读出进程号,然后调用kill命令,杀死该进程。 kill *;

二、设备作为dhcp服务器:
   (1)、创建dhcpd.conf文件;
   (2)、启动dhcp服务时:
        首先:rm dhcpd.pid;
        然后,开启dhcp服务: dhcpd -4 -cf dhcpd.conf -lf dhcpd.leases -pf dhcpd.pid; 开启dhcpd还可以用service或/etc/init.d/dhcpd命令。
        (3)、关闭dhcp服务,killall dhcpd; 
   以上这种做法是针对单lan的dhcp服务。如果要改成多lan的,可以在禁用某个lan的dhcp服务时,删除全部dhcp.conf文件,并重写conf文件,然后,再重新启动dhcp服务;
   另一种做法,熟悉dhcpd的传入参数,针对某个lan口,做对应的dhcp操作(较复杂)。

udhcpc 的使用相关推荐

  1. linux udhcpc指令,dhcpclient和udhcpc区别和用法

    udhcpc: 1.开发板支持的指令,内核移植时通过make menuconfig打开或关闭,并且需要修改Busybox 2.udhcpc只作为客户端使用,服务器指令为udhcpd. 3.使用方法 - ...

  2. udhcpc 后台运行的方法【总结】

    最近在做项目的时候卡在了dhcp处,当没有网络的时候,板子一直发送dhcp请求,导致程序不往下执行,解决的办法是把它切换到后台运行,可是如何切换到后台呢,有办法,它自带参数可以实现该功能.如下: ud ...

  3. WIFI驱动移植--udhcpc获取IP

    在使用wpa工具连接WIFI的时候,一般采用DHCP方式自动获取设备ip. 在运行完udhcpc命令后,发现获取到了IP,但是ifconfig一看,还是没有IP信息. 在获取IP后需要配置脚本设置ip ...

  4. udhcpc不配置默认网关问题解决

    问题现象 设备里的http server运行了CGI,在设置eth0为DHCP之后,怎么也没有默认路由信息.CGI调用的脚本最终是使用udhcpc,在shell里手工运行udhcpc总是能够自动设置默 ...

  5. 开发板udhcpc获取不到广电网络数字电视机顶盒ip问题解决

    遇到一款广电网络数字电视机顶盒,板子无法获取到它的ip, udhcpc一直在查找却获取不到, 此机器如下图: 原因是某个数据包太大了,udhcpc无法全部装下, 解决方法是在配置busybox时,设置 ...

  6. 编译udhcpc for ARM_linux

    官网下载BusyBox 解压 make allnoconfig 最小配置 make menuconfig 打开图形配置界面 选择Networking Utilityies –>[*]dhcp c ...

  7. Linux镜像USB转网口驱动模块配置

    最近在调试USB转网口,涉及到Linux内核编译配置文件的更改,记录一下调试过程. 首先需要了解USB设备接入后系统的识别信息,打印内核日志: root@MyDevice:/# dmesg | tai ...

  8. qemu模拟Cortex-A57运行Linux4.5.1

    主机运行操作系统,deepin15.1.1 http://www.deepin.org/ 1.安装qemu sudo apt-get install qemu-system-arm 2.安装arm编译 ...

  9. 嵌入式linux dhcp移植,嵌入式linux中的dhcp服务器

    嵌入式系统下,用开发板建立dhcp服务器 1.重新编译内核,添加对dhcp的支持 2.busybox是否带有dhcp的应用,如无,则需要重新编译busybox,或者直接下一个独立的也可. 3.dhcp ...

  10. shell查看并修复网络连接

    1.  shell监控网卡状态,故障时自动重启网卡 http://blog.slogra.com/post-425.html cat fix_eth0.sh #!/bin/bashcheck_and_ ...

最新文章

  1. 利用python把成绩用雷达图表示出来
  2. 日常工作用Python能解决哪些问题?
  3. struts 模块化开发学习
  4. JavaScript --- [学习笔记]观察者模式 理解对象 工厂模式 构造函数模式
  5. 【CSS布局】已知布局元素的高度,写出三栏布局,要求左栏、右栏宽度各为300px,中间自适应。
  6. 三分钟学会.NET微服务之Polly
  7. SharePoint 站点集和子站点数据互相读取
  8. 信号与系统第四章总结
  9. K均值聚类算法(K-Means)
  10. 爆款升级当贝NEW D3X来了,画质亮度远超坚果O1S,性能小钢炮实至名归
  11. ES安装以及基本应用
  12. 前端css实现气泡框
  13. Java—sql关于不同条件下合并结果
  14. 第二届长三角高校数学建模竞赛
  15. C语言的小tips~
  16. 用电脑远程给海信智能电视安装软件的办法
  17. 四年级计算机走进传统节日教案,小学信息技术黔科版四年级上册第一单元 中国传统节日——制作简单电子作品活动3 使用资料制作作品教案...
  18. SpringMVC(8)——格式化转换器Formatter
  19. 最佳 React UI 组件库,前端开发必备!
  20. vcs oracle 双机,赛门铁克VCS(Veritas Cluster Server)双机日常管理,vcsveritas

热门文章

  1. java gui 测试工具_开发者眼中最好的22款GUI测试工具(上)
  2. Oracle dbv 坏块信息,【dbv】使用dbv工具检验数据文件是否有坏块
  3. weka软件使用问题解决(一)
  4. Python暴力破解wifi密码
  5. 在移动硬盘(SDD)上装ubuntu18.04
  6. Excel如何实现随机抽取
  7. vs2017 社区版
  8. JDK10 新特性详解
  9. 【181008】VC++九宫格拼图游戏源代码
  10. 采用WPF开发第二版OFD阅读器