嵌入式Linux系统下使用DHCP,为开发板自动分配IP地址
来源:互联网 发布:sqlserver 设置主键 编辑:程序博客网 时间:2024/05/22 05:07
1、首先确认Linux内核编译生成时选择了DHCP
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,使make menuconfig,添加以下选项:
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命令。
注:使用0.9.8版本的udhcp貌似也不行,重新编译Busybox1.9.2版本。
3、使用Busybox下的simple.script,/usr/share/udhcpc/下,并重命名为default.script,修改default.script中RESOLV_CONF="/etc/resolv.conf"为RESOLV_CONF="/tmp/resolv.conf"
说明:从网上下了几个default.script貌似无法使用,提示无法找到default.script文件,使用上面的方法较好。由于使用Cramfs文件系统,etc目录不可写,运行udhcp.c时会提示无法创建resolv.conf
4、将生成的udhcpc复制到开发板/sbin下,在控制台下运行udhcpc即可,很快就可以从DHCP SERVER获得IP地址。但是有个问题,开发板可以获得IP地址,在路由器里也可以看到分配地址了,问题是一使用PING命令,不管是PC 机PING 开发板,还是开发板PING PC 机,就会造成开发板死机。试了好多方法,检查ROUTE,检查ARP,修改Default.script ,始终无法解决。
花了一整天时间,总算完全解决了。
1、先是怀疑busybox的问题,OK,开发板上原来移植的是1.9.2 版本,上网找找了发现最新有1.14.0 版本的,详细移植见另一篇文章
2、Busybox1.9.2 版本貌似是有问题,udhcpc 之后,通过ifconfig 查看IP 信息可以看到广播地址Bcast有问题,始终是255.255.255.255,正确应该是192.168.1.255(网段为192.168.1),使用Busybox1.14.0就没有这个问题了,但问题是PING 仍然无法使用。
3、偶然情况下发现udhcpc 之后需要关闭网卡,之后再重开网卡使用命令
ifconfig eth0 down
ifconfig eht0 up
之后就能正常工作了,还有问题是无法PING本机,设置回环地址就可以了
ifconfig lo 127.0.0.1
- 嵌入式Linux系统下使用DHCP,为开发板自动分配IP地址
- 使用DHCP,为开发板自动分配IP地址
- 嵌入式linux通过DHCP自动获取IP地址实现
- 嵌入式linux通过DHCP自动获取IP地址实现获取
- 嵌入式 ARM-Linux配置DHCP自动获取IP地址
- 嵌入式linux通过DHCP自动获取IP地址实现
- 嵌入式linux通过DHCP自动获取IP地址实现
- 嵌入式linux通过DHCP自动获取IP地址实现
- 嵌入式linux 开发板 dhcp ip
- linux下dhcp服务器分配出去的IP地址及剩余IP地址
- cisco3550开启dhcp服务并为其上的vlan自动分配ip地址
- Linux-2.6.31配置DHCP 开发板自动获取IP地址
- Linux 实现DHCP自动获取IP地址
- 深入剖析DHCP服务IP地址自动分配原理
- 使用三层交换配置DHCP为不同VLAN分配IP地址
- 无网络及使用DHCP分配IP地址系统的Oracle安装
- linux下DHCP重新获取ip地址
- Linux Bridge实践 -- 使用dnsmasq为虚拟机分配IP地址
- Thrift白皮书阅读笔记
- 关于c++继承的几句话(1)
- php冒泡算法,清晰给力,不看后悔!
- Win7系统的安装
- 中国减肥行业2012年或将全新洗牌,互联网大佬或将进军
- 嵌入式Linux系统下使用DHCP,为开发板自动分配IP地址
- VB实验报告
- 0 Introduction
- PRIM_poj 2349Arctic Network
- Ubuntu 11.10下安装JDK7
- android.database.CursorIndexOutOfBoundsException:Index -1 requested, with a size of 1
- _IOW的意思
- cygwin编译windows下可执行的exe
- target项目-babel