首先在 http://www.pubyun.com/products/dyndns/download/ 页面找到 Source版:下载, 点击下载
在linux下面用命令: tar zxvf ez-ipupdate-3.0.10.tgz解压
cd ez-ipupdate-3.0.10/
编译过程:
1.
CC=arm-linux-gcc ../ez-ipupdate-3.0.10/configure --host=$TARGET --target=$TARGET --prefix=/home/embedded/ez-ipupdate
--includedir=/home/embedded/tools/include。运行configure文件,进行相关的配置。
2.
make
出现错误:
conf_file.o(.text+0x344): In function `parse_conf_file':
/work/ddns/ez-ipupdate-3.0.10/conf_file.c:161: undefined reference to `errno'
collect2: ld returned 1 exit status
make: *** [ez-ipupdate] Error 1
解决方法,在conf_file.c中添加 #include
然后重新make
3.
sudo make install
看到有这么一句信息打印:/usr/bin/install -c ez-ipupdate /home/embedded/ez-ipupdate/bin/ez-ipupdate
用file ez-ipupdate命令查看编译产生文件的信息:
ELF 32-bit LSB executable, ARM, version 1, dynamically linked (uses shared libs), for GNU/Linux 2.4.3, not stripped
现在就可以将这个文件拷贝到开发板中
操作:
假如拷贝到了开发板文件系统中的/usr/local/bin目录中。
读ez-ipupdate-3.0.10/README.3322可知,有两种运行方式。这儿选择的是参数文件的方式
直接复制qdns.conf到开发板的/usr/local/bin目录中进行修改。
在修改这个文件之前还有一件很重要的事,在http://www.pubyun.com申请一个账号,并创建一个自己的动态域名,免费的。
好了,现在有了自己的用户名和密码
那qdns.conf中的user=myuserid:mypassword就是刚才的用户名和密码
host=mydomain.whatever.com(就是你自己的域名,这是我的: ngt-work.f3322.org)
还有一个网络端口:interface=ppp0(这是文件中默认的),我的改成了eth0
现在配置完成,然后就能做测试了:
执行的方式:
/usr/local/bin/ez-ipupdate -c /usr/local/bin/qdns.conf
出错:
ez-ipupdate Version 3.0.10
Copyright (C) 1999-2000 Angus Mackay.
ioctl(SIOCGIFADDR): Cannot assign requested address
用ifconfig命令查看,发现没有进行eth0网卡的设置,那现在就能用命令 ifconfig eth0 192.168.1.15进行设置
这上面这个问题可能不会出现在你们的开发板上,因为我在当初制作文件系统的时候没有在/etc/init.d/rcS下加上“ ifconfig eth0 192.168.1.15”,所以没有重启系统都要手动设置。
用ping命令ping一下外网和内网,看是否都能ping通
一般的ping内网都没有问题,但是"ping www.google.cn",提示ping: bad address 'www.google.cn'错误。
用 route 命令查看
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
网关是空的,需要设置:route add default gw 192.168.1.1
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
重新ping一下外网:ping www.google.cn,OK!!!!
重新尝试这条命令:/usr/local/bin/ez-ipupdate -c /usr/local/bin/qdns.conf
ez-ipupdate Version 3.0.10
Copyright (C) 1999-2000 Angus Mackay.
connected to members.3322.org (61.160.239.25) on port 80.
request successful
我也才做到这儿,还需要测试,有兴趣的可以一起,然后分享经验。