移植ez-ipupdate到arm,支持3322

来源:互联网 发布:数值统计c语言 编辑:程序博客网 时间:2024/06/09 17:29

首先在 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 <errno.h>

然后重新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


我也才做到这儿,还需要测试,有兴趣的可以一起,然后分享经验。


原创粉丝点击