ubuntu linux安装easycwmp姜先生的博客之路

在Ubuntu 16.04.1 LTS 上使用源码安装easycwmp的步骤以及安装问题解决如下:


easycwmp是一个开源的tr069解决方案,需要依赖各种库,本文记录时间为2017/3/6日以后可能会因版本变更
导致部分过程不一致。


1.首先创建文件夹并添加用户和组为当前用户组


USER=your_user
GROUP=your_group

sudo mkdir -p /opt/{dev,git}

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




猜你喜欢

转载自blog.csdn.net/superjaingchao/article/details/60576611
今日推荐