声明:原创作品,严禁用于商业目的。 如有任何技术问题,欢迎和我交流:19826269205(微信同号)。
准备工作:准备好Ubuntu18.04系统下的交叉编译工具环境。
Ubuntu18.04开发环境:192.168.200.3
CPE设备网络地址:192.168.0.13
进入expat目录后,执行如下三条命令:
mkdir tmp
./configure --prefix=$PWD/tmp --host=arm-linux CC=arm-linux-gcc CXX=arm-linux-g++ --with-random
make && make install
进入curl目录后,执行如下三条命令:
mkdir tmp
./configure --prefix=$PWD/tmp --host=arm-linux CC=arm-linux-gcc CXX=arm-linux-g++ --with-random
make && make install
由于Device.so依赖于uci进行测试,所以需要优先编译uci库并移植到交叉工具链中和开发板,然后再进行make编译出device.so(因为个人实际项目对uci进行修改过,新手可以用uci源码编译)
(1) 编译uci
需要修改Makefile的脚本,把编译生产的so文件和头文件拷贝到交叉编译工具链中 或者单独编译uci。
把uci的头文件拷贝到交叉编译工具链中
scp uci-0.1/uci_config.h uci-0.1/uci.h uci_internal.h /home/yy/tr069_arm/host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/include
把uci的动态库so拷贝到交叉编译工具链和开发板,并创建相应的软连接
scp uci-0.1/libuci.so.0.1 /home/yy/tr069_arm/host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/lib
scp uci-0.1/libuci.so.0.1 192.168.0.13:/usr/lib
ln -sf libuci.so.0.1 libuci.so
(2) 编译device.so
最后,在DataModel目录执行make, 生成device.so。
需要把编译好的依赖移植到交叉编译环境中:
scp expat 和 curl
/home/yy/tr069_arm/host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/lib
在cwmp目录执行make, 生成cwmp执行程序。
1.拷贝依赖库到开发板中
交叉编译里面自带libcurl和libexpat,直接拷贝so到开发板中/usr/lib。 同时创建相应的软链接。
也可以用提供好的源码文件进行交叉编译
2. 拷贝编译后的tr069动态库到开发板
scp device.so 192.168.0.13:/usr/lib
3 拷贝编译后的cwmp执行程序到开发板
scp cwmp 192.168.0.13:/usr/bin
4. 拷贝配置文件到开发板,便于测试:
scp etc_config/* 192.168.0.13:/etc/config
修改配置文件中对应的ip地址和ACS URL进行模拟测试。
修改文件:/etc/config/swanif 对应CPE的ip地址
option ipaddr ‘192.168.0.13’
修改/etc/config/cpeagent文件:对应ip地址和ACS URL进行模拟测试。
option acsurl ‘http://81.68.141.224:9090/acs’
option cpe_ipaddr ‘192.168.0.13’