ARM Linux平台UDHCP配置笔记

2019-07-13 09:12发布

在ARM-Linux系统上装个DHCP服务器,这样就可以通过一条网线与PC连接了。 当然,应该也是可以在PC上装一个DHCP服务器,关于这一点,以后再研究...... 安装步骤: 1.下载UDHCP程序包(Google一下就可以了) 2.编译代码。首先修改Makefile,将 CROSS_COMPILE 值改成你将使用的编译器的特征名。注意:编译器名= CROSS_COMPILE+“gcc” 3.将编译好的udhcpd文件拷贝到ARM-Linux系统的/opt/udhcp/目录下面 4.拷贝UDHCP程序包中的/samples/udhcpd.conf文件拷贝到ARM-Linux系统的/etc/目录下面 5.配额制ARM-Linux系统的IP设置。打开/etc/init.d/rcS文件,找到以  /sbin/ifconfig eth0 开头的行,修改为 /sbin/ifconfig eth0 192.168.0.50 netmask 255.255.255.0 注意:这里的IP地址设置必须在192.168.0.20 至 192.168.0.254之间,这是由配置文件udhcpd.conf中的设定所决定的。当然也可以改变udhcpd.conf设置,如:改成173.1.1.10 到 173.1.1.222 注意:ARM系统中可能有多块网卡,这里可以根据实际需要去选择网卡来进行设置。但是设置的时候一定要注意保持rcS 和 udhcpd.conf 之间的统一,udhcpd.conf中的interface指的是使用那个网口来着DHCP服务器,默认是eth0。



http://udhcp.busybox.net/

下载Download the latest version (includes client): 
udhcp-0.9.8.tar.gz
(43k) 31 Oct, 2002
在KERNEL中需要将 Packet socket和IP: DHCP support编译进内核或编译成模块.
DHCP服务器端:(编译器2.95.3)
1. 修改Makefile: 添加:      CROSS_COMPILE=arm-linux-
2. #make , 把生成的dhcpd文件下载到板子上.
make LDFLAGS="-static"

使用/usr/local/arm/2.95.3/bin/arm-linux-strip处理一下,
3. #cp samples/udhcpd.conf    /etc/                #copy udhcp/samples下的文件到目标板子的 /etc目录
4. # vi /etc/udhcpd.conf: 修改如下:
3 # The start and end of the IP lease block

5 start       192.168.1.20    #default: 192.168.0.20   为 winXP的ip地址范围
6 end        192.168.1.25    #default: 192.168.0.254
9 # The interface that udhcpd will use
10 
11 interface   wlan0       #default: eth 0#目标板子上的无线网卡wlan0
85 #Examles
86 opt dns 222.201.130.30 222.201.130.33   #dns服务器
87 option subnet 255.255.255.0
88 opt router 192.168.1.10                       #wlan的 ip地址,做为网关地址
89 #opt    wins    192.168.10.10              #注释掉
90 option dns 192.168.1.10 # appened to above DNS servers for a total of 3
91 option domain local
92 option lease   864000      # 10 days of seconds
5 # ./dhcpd //运行dhcpd服务器
6 .设置内网winXP主机的无线上网方式为自动获取ip地址
下面是dhcp客户端的,
在编译Busybox时把 Networking Utilities下udhcp Server/Client中的 udhcp Client (udhcpc)选上。
关键点要把examples/udhcp/simple.script 脚本文件做为default.script拷贝到/usr/share/udhcpc/default.script
运行udhcpc
~ # udhcpc                                                                      
udhcpc (v1.5.1) started                                                         
Sending discover...                                                             
Sending select for 59.64.134.99...                                              
Sending select for 59.64.134.99...                                              
Sending select for 59.64.134.99...                                              
Lease of 59.64.134.99 obtained, lease time 10800                                
deleting routers                                                                
route: SIOC[ADD|DEL]RT: No such process                                         
adding dns 211.68.71.4                                                          
adding dns 211.68.71.5                                                          
adding dns 202.106.196.115                                                      
adding dns 202.106.0.20


DHCP:解析开发板上动态获取ip的2种实现方法详解 DHCP
动态主机设置协议(Dynamic Host Configuration Protocol, DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:
1.给内部网络或网络服务供应商自动分配IP地址
2.给用户给内部网络管理员作为对所有计算机作中央管理的手段。


方法一:dhclient    
1.下载
    https://www.isc.org/software/dhcp/
2.解压
    tar-zxvf dhcp-3.1.3.tar.gz
3.配置
    cddhcp-3.1.3
    ./configure
    成功之后生成work.linux-2.2文件夹.
4.编译
    make "CC=/opt/hisi-linux/x86-arm/gcc-3.4.3-uClibc-0.9.28/usr/bin/arm-hismall-linux-gcc-static"
    可以在work.linux-2.2/client目录,也可以在dhcp-3.1.3目录下make,
5.拷贝
    在work.linux-2.2client编译生成dhclient。
    拷贝配置文件dhcp-3.1.3/client/dhclient.conf和/dhcp-3.1.3/client/scripts/linux 到开发板的/sbin/目录下,并linux文件重命名为dhclient-script,并修改该文件的第一行#! /bin/bash 为#! /bin/sh,保存后,修改权限 chmod +x /sbin/dhclient-script
6.创建目录
    mkdir-p /var/state/dhcp
    在/var目录下创建state目录,再在state目录下创建dhcp目录。
7.运行
    dhclient ra0
结果:




复制代码 代码如下:
InternetSystems Consortium DHCP Client V3.1.3
Copyright2004-2009 Internet Systems Consortium.
Allrights reserved.
Forinfo, please visit https://www.isc.org/software/dhcp/
Listeningon LPF/ra0/7c:dd:90:25:9f:a9
Sendingon   LPF/ra0/7c:dd:90:25:9f:a9
Sendingon   Socket/fallback
DHCPDISCOVERon ra0 to 255.255.255.255 port 67 interval 6
DHCPDISCOVERon ra0 to 255.255.255.255 port 67 interval 12
DHCPDISCOVERon ra0 to 255.255.255.255 port 67 interval 14
DHCPOFFERfrom 192.168.1.1
DHCPREQUESTon ra0 to 255.255.255.255 port 67
DHCPACKfrom 192.168.1.1
bound to 192.168.1.31 -- renewal in 282261 seconds.




方法二、udhcpc
udhcpc是一个面向嵌入式系统的非常小的DHCP客户端,字母的缩写微- DHCP -客户端(μDHCPc)。
1.udhcpc -i eth0
udhcpc只是获取一个IP,我们需要把usybox-1.1.2examplesudhcp下的脚本simple.script改名为default.script,放在开发板上的/usr/share/dhcpc/目录下,才能将获取的IP写到指定的网卡中。
2.ifconfig






详细出处参考:http://www.jb51.net/article/37379.htm



3.2.      DHCP服务
DHCP服务在开发环境中的主要作用是支持Linux内核通过网络根文件系统启动。开发主机通过DHCP服务为目标机提供各网络配置。按下列步骤安装、配置并启动DHCP服务。
3.2.1.      获得下列软件包
从网络上下载DHCP服务主要依赖的下列软件包:
dhcp-3.0.5-1.fc6.i386.rpm
dhcp-devel-3.0.5-1.fc6.i386.rpm
dhcpv6-0.10-32.fc6.i386.rpm
dhcpv6_client-0.10-32.fc6.i386.rpm
3.2.2.      删除已安装的冲突软件包
[root@lxf dhcp]# rpm -e --nodeps dhclient-3.0.6-10.fc8
[root@lxf dhcp]# rpm -e --nodeps dhcpv6-client-0.10-51.fc8
3.2.3.      安装软件包
[root@lxf dhcp]# rpm -ivh *.rpm
warning: dhcp-3.0.5-1.fc6.i386.rpm: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2
Preparing...          ########################################### [100%]
   1:dhcp             ########################################### [ 25%]
   2:dhcp-devel       ########################################### [ 50%]
   3:dhcpv6           ########################################### [ 75%]
   4:dhcpv6_client    ########################################### [100%]
3.2.4.      修改配置文件
修改配置文件/etc/dhcpd.conf,具体内容参见清单5。
清单5 文件/etc/dhcpd.conf -------------------------------------------------------------------------------- #
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample
#
ddns-update-style none;
allow bootp;
subnet 135.1.2.0 netmask 255.255.255.0{
        default-lease-time 1209600;
        max-lease-time 31557600;
        group{
                host 135.1.2.150{
                #hardware ethernet 00:00:C0:FF:EE:01;
                hardware ethernet 08:00:3e:26:0a:5b;
                fixed-address 135.1.2.150;
 
                option root-path "/arm-linux/rootfs/nfs-rootfs"
                }
        }
} --------------------------------------------------------------------------------  
3.2.5.      启动DHCP服务
[root@lxf dhcp]# service dhcpd restart
关闭 dhcpd:                                               [失败]
启动 dhcpd:                                               [确定]