1. 部署环境
(1)安装libcurl4-openssl-dev git make cmake curl pkg-config libssl-dev软件包
sudo apt-get update
sudo apt-get install libcurl4-openssl-dev git make cmake curl pkg-config libssl-dev
(2)配置我们将要使用的USER和GROUP变量:
USER=用户名
GROUP=当前用户组名
(3)创建目录:
sudo mkdir -p /opt/{dev,git}
sudo chown -R $USER:$GROUP /opt/{dev,git}
(4)编译json-c:
[1] 克隆源码:
git clone http://192.168.100.58:3000/json-c/json-c.git /opt/git/json-c
[2] 生成配置文件:
cd /opt/git/json-c/
mkdir json-c-build
cd json-c-build
cmake ../../json-c # 有关自定义参数,请参阅下面的CMake部分
[3] 编译:
make
make test
make USE_VALGRIND=0 test # optionally skip using valgrind
[4] 安装:
sudo make install
sudo ln -sf /usr/local/include/json-c /usr/include/json
(5)编译libubox:
[1] 克隆源码:
git clone http://192.168.100.58:3000/luci2/libubox.git /opt/git/libubox
[2] 配置cmake:
cd /opt/git/libubox/
cmake CMakeLists.txt -DBUILD_LUA=OFF
[3] 编译:
make
[4] 安装:
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
(6)编译uci
[1] 克隆源码:
git clone http://192.168.100.58:3000/uci/uci.git /opt/git/uci
[2] 配置cmake:
cd /opt/git/uci/
cmake CMakeLists.txt -DBUILD_LUA=OFF
[3] 编译:
make
[4] 安装:
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
(7)编译ubus
[1] 克隆源码:
git clone http://192.168.100.58:3000/luci2/ubus.git /opt/git/ubus
[2] 配置cmake:
cd /opt/git/ubus/
cmake CMakeLists.txt -DBUILD_LUA=OFF
[3] 编译:
make
[4] 安装:
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
(8)编译microxml
[1] 克隆源码:
git clone http://192.168.100.58:3000/CWMP/pivasoftware_microxml.git /opt/git/microxml
[2] 生产配置文件:
cd /opt/git/microxml/
autoconf -i
[3] 配置:
./configure --prefix=/usr --enable-threads --enable-shared --enable-static
[4] 编译:
make
[5] 安装:
sudo make install
sudo ln -sf /usr/lib/libmicroxml.so.1.0 /lib/libmicroxml.so
sudo ln -sf /usr/lib/libmicroxml.so.1.0 /lib/libmicroxml.so.1
2. 安装easycwmp
(1) 下载 easycwmp-{x}.{y}.{z}.tar.gz 解压到 /opt/dev/
~/wget https://easycwmp.org/download/easycwmp-1.8.6.tar.gz
tar -xzvf easycwmp-1.8.6.tar.gz
mv easycwmp-1.8.6 /opt/dev/easycwmp
cd /opt/dev/easycwmp/
(2) 生成配置文件:
autoreconf -i
(3) 配置编译:
./configure --enable-debug --enable-devel --enable-acs=multi --enable-jsonc=1
(4) 编译:
make
(5) 符号链接:
[1] 际设备上创建脚本所在的目录:
sudo mkdir -p /usr/share/easycwmp/functions sudo mkdir -p /etc/easycwmp
[2] easycwmp脚本创建符号链接:
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
[3] 修改脚本为可执行:
chmod +x /opt/dev/easycwmp/ext/openwrt/scripts/functions/*
[4] 为easycwmp配置文件创建符号链接:
sudo mkdir /etc/config
sudo ln -sf /opt/dev/easycwmp/ext/openwrt/config/easycwmp /etc/config/easycwmp
[5] 为easycwmpd二进制文件创建符号链接:
sudo ln -sf /opt/dev/easycwmp/bin/easycwmpd /usr/sbin/easycwmpd
[6] 在easycwmp脚本中使用的一些变量:
Export UCI_CONFIG_DIR="/opt/dev/easycwmp/ext/openwrt/config/" export UBUS_SOCKET="/var/run/ubus.sock"
[7] 从OpenWrt安装一些shell脚本:
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
[8] 如果在运行时一切配置正确,执行以下操作:
bash /usr/sbin/easycwmp get value Device.
[9] 根据您的系统,您可能需要:
export PATH=$PATH:/usr/sbin:/sbin sudo ln -sf bash /bin/sh
[10] 确保已在另一个运行ubusd的终端中:
ubusd -s /var/run/ubus.sock
[11] 以根用户身份运行easycwmpd:
/usr/sbin/easycwmpd -f -b