ARM获取动态IP

ARM 150浏览

先查看ARM的系统中有没有udhcpc这个程序,如果没有,在PC上交叉编一个 udhcpc 传到ARM板上
编译udhcpc: (我是采用 busybox 中自带的 udhcpc)
*进入busybox源码包的根目录,用make menuconfig配置一下编译选项
*将Networking Utilites ---> udhcp Server/Client ---> udhcp Client (udhcpc) 选中就行了(对于不同版本的busybox,可能不一定是这个路径)
*选中 Build Option ---> Do you want to build BusyBox with a Cross Compiler? 选项,输入自己的交叉编译器前缀,如 arm-linux-
*选中 Install Option ---> Don't use /user 选项,输入安装路径,可以用一个自建的文件夹。
*make
*make install

完成之后在安装路径下的 sbin 目录中会有一个 udhcpc ,将其传到 ARM 板上 /sbin/目录下

然后运行输入udhcpc 运行,此时会报错:
error, script /share/udhcpc/default.script failed: No such file or directory
是说在/share/udhcpc/目录下找不到default.script 这个文件,网上也有说是/usr/share/udhcpc/这个目录
要解决这个问题,只需要将busybox源码包中的 example/udhcp/simple.script 拷到报误中提示的目录下,并重命名为default.script就行了

此时再运行 udhcpc 会显示:
Using fallback suid method
info, udhcpc (v0.9.9-pre) started
debug, Sending discover...
debug, Sending select for XXX.XXX.XXX.XXX...
info, Lease of XXX.XXX.XXX.XXX obtained, lease time 14400
deleting routers
route: SIOCDELRT: No such process
adding dns XXX.XXX.XXX.XXX
adding dns XXX.XXX.XXX.XXX

就OK了(XXX.XXX.XXX.XXX为分配的IP地址)