在Ubuntu 16.04.1 LTS 上使用源码安装easycwmp的步骤以及安装问题解决如下:
easycwmp是一个开源的tr069解决方案,需要依赖各种库,本文记录时间为2017/3/6日以后可能会因版本变更
导致部分过程不一致。
1.首先创建文件夹并添加用户和组为当前用户组
sudo chown -R $USER:$GROUP /opt/{dev,git}
2、安装curl
如果安装使用ssl包尽量使用OpenSSL而不是SSL包。
3、安装json-c
git clone git://github.com/json-c/json-c.git /opt/git/json-c
cd /opt/git/json-c/
autoreconf -i
./configure --prefix=/usr
make
sudo make install
sudo ln -sf /usr/include/json-c /usr/include/json
4、安装libubox
git clone git://nbd.name/luci2/libubox.git /opt/git/libubox
cd /opt/git/libubox/
cmake CMakeLists.txt -DBUILD_LUA=OFF
make
此处会报错如下:
/opt/git/libubox/jshn.c:162:6: error: implicit declaration of function ‘is_error
同时
//opt/git/libubox/blobmsg_json.c:78:6: error: implicit declaration of function ‘is_error’ [-Werror=implicit-function-declaration]
此处由于未声明is_error导致需要在jshn.c与blobmsg_json.c中包含头文件
#include<json/bits.h>
具体添加代码方式不赘述
解决完报错后执行下面命令:
sudo make install
sudo ln -sf /usr/local/lib/libubox.so /usr/lib/libubox.so
sudo mkdir -p /usr/share/libubox
sudo ln -sf /usr/local/share/libubox/jshn.sh /usr/share/libubox/jshn.sh
5、安装uci
git clone git://nbd.name/uci.git /opt/git/uci
cd /opt/git/uci/
cmake CMakeLists.txt -DBUILD_LUA=OFF
make
class="western"
sudo make install
sudo ln -sf /usr/local/bin/uci /sbin/uci
sudo ln -sf /usr/local/lib/libuci.so /usr/lib/libuci.so
6、安装ubus
git clone git://nbd.name/luci2/ubus.git /opt/git/ubus
cd /opt/git/ubus/
cmake CMakeLists.txt -DBUILD_LUA=OFF
make
sudo make install
sudo ln -sf /usr/local/sbin/ubusd /usr/sbin/ubusd
sudo ln -sf /usr/local/lib/libubus.so /usr/lib/libubus.so
7、安装microxml
git clone https://github.com/pivasoftware/microxml.git /opt/git/microxml
cd /opt/git/microxml/
autoconf -i
./configure --prefix=/usr --enable-threads --enable-shared --enable-static
make
sudo make install
sudo ln -sf /usr/lib/libmicroxml.so.1.0 /lib/libmicroxml.so
8、安装easycwmp
首先下载源码http://www.easycwmp.org/download.html
然后执行下面命令
cd /opt/dev/
tar -xzvf easycwmp-{x}.{y}.{z}.tar.gz
mv easycwmp-{x}.{y}.{z} easycwmp
cd /opt/dev/easycwmp/
autoreconf -i
./configure --enable-debug --enable-devel --enable-acs=multi --enable-jsonc=1
make
cd /opt/dev/easycwmp/
sudo mkdir -p /usr/share/easycwmp/functions
sudo mkdir -p /etc/easycwmp
下面的链接需要注意common目录,在安装自己的源码的时候以具体源码为标准,此处为参考
sudo ln -sf /opt/dev/easycwmp/ext/openwrt/scripts/easycwmp.sh /usr/sbin/easycwmp
sudo ln -sf /opt/dev/easycwmp/ext/openwrt/scripts/defaults /usr/share/easycwmp/defaults
sudo ln -sf /opt/dev/easycwmp/ext/openwrt/scripts/functions/common/common /usr/share/easycwmp/functions/common
sudo ln -sf /opt/dev/easycwmp/ext/openwrt/scripts/functions/common/device_info /usr/share/easycwmp/functions/device_info
sudo ln -sf /opt/dev/easycwmp/ext/openwrt/scripts/functions/common/management_server /usr/share/easycwmp/functions/management_server
此处我的版本无此文件sudo ln -sf /opt/dev/easycwmp/ext/openwrt/scripts/functions/common/ipping_launch /usr/share/easycwmp/functions/ipping_launch
sudo ln -sf /opt/dev/easycwmp/ext/openwrt/scripts/functions/tr181/root /usr/share/easycwmp/functions/root
此处我的版本无此文件sudo ln -sf /opt/dev/easycwmp/ext/openwrt/scripts/functions/tr181/ip /usr/share/easycwmp/functions/ip
此处我的版本无此文件sudo ln -sf /opt/dev/easycwmp/ext/openwrt/scripts/functions/tr181/ipping_diagnostic /usr/share/easycwmp/functions/ipping_diagnostic
chmod +x /opt/dev/easycwmp/ext/openwrt/scripts/functions/*
sudo mkdir /etc/config
sudo ln -sf /opt/dev/easycwmp/ext/openwrt/config/easycwmp /etc/config/easycwmp
sudo ln -sf /opt/dev/easycwmp/bin/easycwmpd /usr/sbin/easycwmpd
export UCI_CONFIG_DIR="/opt/dev/easycwmp/ext/openwrt/config/"
export UBUS_SOCKET="/var/run/ubus.sock"
sudo mkdir -p /lib/{config,functions}
sudo wget http://pastebin.lukaperkov.net/openwrt/20121219_lib_functions.sh -O /lib/functions.sh
sudo wget http://pastebin.lukaperkov.net/openwrt/20121219_lib_config_uci.sh -O /lib/config/uci.sh
sudo wget http://pastebin.lukaperkov.net/openwrt/20121219_lib_functions_network.sh -O /lib/functions/network.sh
export PATH=$PATH:/usr/sbin:/sbin
sudo ln -sf bash /bin/sh
/usr/sbin/ubusd -s /var/run/ubus.sock
最后可以启动easycwmp以root权限
/usr/sbin/easycwmpd -f -b
至此完成未报错即可。
本次使用源码可去下面链接下载:
http://download.csdn.net/detail/superjaingchao/9780744