嵌入式linux中使用 DHCP功能描述
busybox中udhcpc的默认script脚本地址为
#define DEFAULT_SCRIPT CONFIG_UDHCPC_DEFAULT_SCRIPT
#define CONFIG_UDHCPC_DEFAULT_SCRIPT "/usr/share/udhcpc/default.script"
我想之所以以它作为默认地址,肯定有他的道理,所以在这个地址上创建它[luther.gliethttp]
luther@gliethttp:/vobs/initramfs$ mkdir usr/share/udhcpc/ -p
luther@gliethttp:/vobs/initramfs$ cp ~/busybox-1.14.3/examples/udhcp/simple.script usr/share/udhcpc/default.script
luther@gliethttp:/vobs/initramfs$ chmod +x usr/share/udhcpc/default.script
在/etc/inittab中加入下面一行语句:
::once:"/sbin/udhcpc >/dev/null 2>&1" # udhcpc会退出,所以不能使用respawn,必须为once,1次,否则将一直出现udhcpc重启log信息
就这样简单的几行ip和dns就能自动获取了[luther.gliethttp]
其实有些东西就可以放在rcS等启动脚本中,有些可以到init脚本中去完成.
# /sbin/udhcpc
由于要使用网络通讯,所以不可避免的要用到dhcp。理想的网络通讯方式是下面3种都要支持:
1,接入已有网络。这便要求可以作为dhcp客户端。
2,作为DHCP服务器,动态分配IP。
3,指定固定IP
第3种情况没有什么好说的,简单说下前2种情况。
使用步骤:
(1)在内核的网络项里面把DHCP配置上;
(2)在busybox里面把[*]udhcp server(udhcpd)
[*]udhcp client(udhcpc)都选上。
udhcpd就是终端设备作为DHCP服务器
udhcpc就是终端设备作为DHCP客户端
busybox里面对dhcp都已经给出例子了,
[zhh@localhost busybox-1.14.1]$ ls ./examples/udhcp/
sample.bound sample.deconfig sample.nak sample.renew sample.script simple.script udhcpd.conf
比如使用udhcpc时
就可以直接把simple.script拿来使用,改不改名字都可以,busybox里面默认的目录文件是/usr/share/udhcpc/default.script
可以查看下帮助
# udhcpc --help
BusyBox v1.14.1 (2010-01-22 10:35:16 CST) multi-call binary
Usage: udhcpc [-Cfbnqtvo] [-c CID] [-V VCLS] [-H HOSTNAME] [-i INTERFACE]
[-p pidfile] [-r IP] [-s script] [-O dhcp-option]... [-P N]
-V CLASSID Vendor class identifier
-i INTERFACE Interface to use (default: eth0)
-H,-h HOSTNAME Client hostname
-c CLIENTID Client identifier
-C Suppress default client identifier
-p file Create pidfile
-r IP IP address to request
-s file Run file at DHCP events (default /usr/share/udhcpc/default.script)
-t N Send up to N request packets
-T N Try to get a lease for N seconds (default 3)
-A N Wait N seconds (default 20) after failure
-O OPT Request DHCP option OPT (cumulative)
-o Do not request any options (unless -O is also given)
-f Run in foreground
-b Background if lease is not immediately obtained
-S Log to syslog too
-n Exit with failure if lease is not immediately obtained
-q Quit after obtaining lease
-R Release IP on quit
-P N Use port N instead of default 68
-a Use arping to validate offered address
#
这样就很好理解了。
下面就说说使用udhcpd,同样可以直接把busybox自带的udhcpd.conf作为参考,怎么设置该文件就不详述了,去参考相关文档即可。看看udhcpd怎么使用
# udhcpd --help
BusyBox v1.14.1 (2010-01-22 10:35:16 CST) multi-call binary
Usage: udhcpd [-fS] [-P N] [configfile]
DHCP server
-f Run in foreground
-S Log to syslog too
-P N Use port N instead of default 67
帮助一目了然。
我使用的时候直接
#udhcpd /etc/udhcpd.conf
即可。
还有一个租约文件要简要说说,使用udhcpd时会要求建立一个租约文件,按照提示创建一个就行了,它起什么作用呢?就是为了记录客户端所获得的IP,如果没有租约文件,则会重新给客户端分配一个新IP,如果有,则使用原先分配的IP。
http://blog.sina.com.cn/s/blog_6d7e4eba0100r64r.html
分享到:
相关推荐
- **U-Boot的环境变量**:解释U-Boot环境中使用的变量及其设置方法。 #### 第7章 配置编译内核 - **Linux内核特点**: - **Linux内核版本介绍**:梳理Linux内核版本的命名规则及其含义。 - **Linux内核特点**:...
- 描述在网络管理中使用SNMP的实现方法。 #### 七、WEB的支持 - 探讨嵌入式设备上Web服务的实现方式。 通过以上详细的知识点介绍,我们可以看到嵌入式Linux开发不仅涉及到硬件和软件层面的知识,还需要深入理解...
本文档汇总了嵌入式Linux VxWorks面试题,涵盖了嵌入式系统、Linux内核、VxWorks实时操作系统、进程管理、线程同步、互斥锁、消息队列、管道、信号量、共享内存、文件系统、网络管理、DHCP、RIP协议、Samba服务器、...
- **嵌入式Linux系统开发要点**:列举了在开发过程中需要注意的关键问题,如内存管理、中断处理等。 #### 第2章:ARM处理器 - **ARM处理器简介**: - **ARM公司简介**:介绍了ARM公司的成立背景及在全球嵌入式...
在压缩包的文件名称列表中,"dhcp6"可能是指IPv6相关的DHCP功能。尽管DHCP主要处理IPv4地址的分配,但随着IPv6的普及,DHCPv6成为分配IPv6地址的关键协议。DHCPv6的工作流程与DHCP类似,但有一些重要的区别,例如...
描述中提到它是一个嵌入式Linux组件,可能用于WIFI环境,这表明该DHCP服务器软件可能被集成到路由器或类似的网络设备中,以便为连接到WIFI的设备提供网络配置服务。 DHCP-4是DHCP协议的一个具体实现,这里的“dhcp-...
本文将深入探讨如何在基于三星S3C2440芯片的嵌入式Linux平台上移植并运行DHCP(Dynamic Host Configuration Protocol)服务器。这个过程涉及到的操作包括编译、配置以及调试DHCP服务,确保其在目标硬件上稳定运行。 ...
描述中提到的"在PC平台Linux可以直接编译使用",意味着这个源码是为Linux系统设计的,可以在支持GCC(GNU Compiler Collection)的环境中编译。编译过程通常包括以下步骤:解压源码包(例如`dhcp-4.3.6-P1`),配置...
以下是对标题和描述中提及的三个常用工具——SecureCRT、TFTP和FTP的详细说明: 1. SecureCRT:这是一款强大的终端模拟器软件,广泛用于嵌入式开发中,因为它支持多种协议,包括SSH(Secure Shell)、Telnet、...
此外,文档中提到了如何在Linux系统中使用命令行来配置和管理DHCP服务。例如,通过配置文件设置的命令来排除特定的IP地址范围,避免这些地址被DHCP服务动态分配出去。这些细节都是网络管理员在实际工作中需要精确...
在嵌入式系统调试过程中,开发机和目标机之间通常需要物理连接,并使用交叉编译器进行编译,通信方式除了串口和并口外,还有其他如USB、以太网等。 【Bootloader软件】 Bootloader软件如vivi、u-boot和blob,而...
- 描述如何在 Linux 下开发摄像头应用的具体步骤。 - **视频采集方式** - 讨论不同视频采集方式的特点及其适用场景。 **5.9 Qt 例程** - **Qt HelloWorld** - 使用 Qt 开发框架实现一个简单的“Hello World”...
2. **IP地址的配置**:详述如何在嵌入式系统上手动配置静态IP地址,以及如何配置和使用DHCP服务来动态获取IP地址。 3. **MAC地址的理解**:解释MAC地址的作用,以及如何查看和修改设备的MAC地址。 4. **编程接口**...
- 在shell脚本中使用缩进来表示代码块; - 有助于提高代码的可读性。 - **系统命令:** - man:查看命令的帮助手册; - uname:显示系统的名称和版本信息; - blockdev:用于管理块设备的命令。 以上是关于...
在IT领域,Linux系统移植是一项复杂且重要的任务,特别是在嵌入式系统中,例如使用s3c2410处理器的设备。本文将深入探讨如何进行Linux系统在s3c2410平台上的移植,主要包括两个关键部分:U-Boot(微内核引导加载程序...