嵌入式linux通过DHCP自动获取IP地址实现
http://blog.chinaunix.net/uid-17188120-id-2820863.html
前提:系统已经实现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
嵌入式linux通过DHCP自动获取IP地址实现相关推荐
- linux ip命令dhcp,嵌入式linux通过DHCP自动获取IP地址实现获取
前提:系统已经实现DNS(即使用ping www.baidu.com测试时能ping通). 1.在内核中添加以下选项: Networking ---> [*] Networking suppo ...
- centOS7 Minima无法上网解决方案(Linux设置开机自动获取ip地址)
本例中以CentOS 7举例说明如何设置Linux开机自动获取IP地址. 1.输入"ip addr"并按回车键确定,发现无法获取IP(CentOS 7默认没有ifconfig命令) ...
- Cisco:DHCP自动获取IP地址
Cisco:DHCP实现自动获取IP地址 局域网网络协议,用于管理和分配IP地址,使用UDP协议工作,常用的端口是67(server),68(client) Cisco:DHCP实现自动获取IP地址 ...
- DHCP自动获取IP地址的过程(自动获取ip地址的过程)
我们电脑(或者W5500)在自动获取IP地址的过程(通过DHCP请求获取IP的过程),电脑是客户端,路由器是DHCP客户端. 1.DHCP的请求的总过程 1.1在 DHCP请求的过程中,包括 4 个主 ...
- linux设置成自动获取ip地址吗,centos怎么设置自动获取ip地址
在适合Cable ip路由器环境下,centos可以设置成自动获取ip地址方式,下面是学习啦小编给大家整理的一些有关centos设置自动获取ip地址的方法,希望对大家有帮助! centos设置自动获取 ...
- DHCP自动获取ip地址
文章目录 前言 一:DHCP概述 1.1:DHCP产生的背景: 1.2:DHCP应用场景: 1.3:DHCP报文类型: 1.4:DHCP工作原理: 二:实验环境 2.1: 华为ensp软件 2.2: ...
- Linux虚拟机设置自动获取IP地址
前言 如下图所示: 对于刚刚创建的Linux虚拟机是没有ip地址的,下面我们可以修改配置使其自动获取IP 设置自动获取IP 1.这里看上图我的网卡是ens33,所以之后应找到对应的配置文件 #执行命令 ...
- Linux如何自动获取IP地址
第一步:激活网卡 系统装好后默认的网卡是eth0,用下面的命令将这块网卡激活. # ifconfig eth0 up 第二步:设置网卡进入系统时启动 想要每次开机就可以自动获取IP地址上网,就要设置网 ...
- Linux网络配置——从自动获取IP地址转为固定IP地址
众所周知,Linux中有两种获取ip的方式,那么自动获取IP地址和指定IP地址有什么区别和特点呢?为什么Linux程序员都需要使用固定IP地址呢? 如下所示: 两种获取方式的优缺点 1. 自动获取 ...
最新文章
- 3D 视觉 相关知识-SLAM框架-常见方案对比
- 宁波海关连续查获走私白糖1700余吨
- 精通python要多久-精通python 或者R语言大约需要多长时间?怎样算精通?
- QCustomplot怎么实现对大数据量的自适应采样显示不卡顿
- 洛谷4951 地震 bzoj1816扑克牌 洛谷3199最小圈 / 01分数规划
- 继苹果亚马逊之后 微软加入1万亿美元市值俱乐部
- NOD32和小红伞的90天免费KEY申请
- 基于JAVA的旅游企业财务管理系统源码【包调试】
- c语言设计程序计算水仙花数,C语言水仙花数算法
- luffy-16/订单表设计,立即付款接口/前端,支付成功get回调用户展示,支付成功post回调修改订单状态
- 集合多种功能的转录调控数据库:hTFtarget,介绍及使用教程
- 亚马逊跟卖还能做吗?
- 2020年技术领导者需要关注的5个关键领域
- 50天计算机考研数学,50天数学冲刺:那些hold住高分的诀窍
- 数据集分类不平衡的影响与处理
- ZZULIOJ-1095: 时间间隔(多实例测试)(Java)
- TWRP / android 四清三清双请概念
- 软件测试工程师,是学习Java还是Python比较好呢?
- 普通显示器和高清显示器
- 013、full-page-writes(全页写)
热门文章
- 用jquery + iframe實現iframe子頁面加載完前的緩沖效果
- h5的语义化部分_Html5新增的语义化标签(部分)
- mysql出现can t_php运行提示Can't connect to MySQL server on 'localhost'的解决方法
- mysql hash分区 数目_mysql8 参考手册-HASH分区
- python 爬虫 请求网页内容不一致_Python爬虫偷懒神器 — 快速构造请求头!
- [蓝桥杯][2017年第八届真题]正则问题(DFS)
- 高斯粒子滤波matlab,粒子滤波(Particle filter)matlab实现 | 学步园
- ipython安装成功却无法运营_pyspider显示安装成功但仍无法运行
- Latex与VSCode环境搭建问题解决
- string会传null吗_JVM 解剖公园(10): String.intern()