搭建easycwmp
linux版本:ubuntu18.04server
1. 安装编译环境
sudo apt install -y curl libcurl4-openssl-dev pkg-config libssl-dev libtool cmake autoconf
2. 创建相关目录
USER=your_user #your_user是你的用户名 GROUP=your_group #your_group是你的组名 sudo mkdir -p /opt/{dev,git} sudo chown -R $USER:$GROUP /opt/{dev,git}
3. 安装json-c
3.1下载json-c
git clone https://gitee.com/mirrors/json-c.git /opt/git/json-c
3.2 配置编译并安装json--c
cd /opt/git/json-c/
mkdir build
cd build
cmake ../../json-c
make
make test
sudo make install
sudo ln -sf /usr/local/include/json-c /usr/include/json
4. 安装libubox
4.1 下载libubox
git clone git://nbd.name/luci2/libubox.git /opt/git/libubox
4.2 修改文件/opt/git/libubox/blobmsg_json.c ,在#include "blobmsg_json.h"下加入一行#define is_error(ptr) (ptr == NULL)
4.3 修改文件/opt/git/libubox/jshn.c,在#include "list.h"下加入一行#define is_error(ptr) (ptr == NULL)
4.4 配置,编译并安装
cd /opt/git/libubox/ cmake CMakeLists.txt -DBUILD_LUA=OFF make
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
5.1 下载uci
git clone git://nbd.name/uci.git /opt/git/uci
5.2 配置,编译并安装
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
6.1 下载ubus
git clone git://nbd.name/luci2/ubus.git /opt/git/ubus
6.2 配置, 编译并安装
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
7.1 下载microxml
git clone https://github.com/pivasoftware/microxml.git /opt/git/microxml
7.2 配置,编译并安装
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 sudo ln -sf /usr/lib/libmicroxml.so.1.0 /lib/libmicroxml.so.1
8. 安装easycwmp
8.1 下载easycwmp,并移动到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
8.2 配置,编译
cd /opt/dev/easycwmp/ autoreconf -i ./configure --enable-debug --enable-devel --enable-acs=multi --enable-jsonc=1 make
8.2 创建相关目录
sudo mkdir -p /usr/share/easycwmp/functions sudo mkdir -p /etc/easycwmp
sudo mkdir /etc/config
8.3 创建符号链接
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 sudo ln -sf /opt/dev/easycwmp/ext/openwrt/config/easycwmp /etc/config/easycwmp sudo ln -sf /opt/dev/easycwmp/bin/easycwmpd /usr/sbin/easycwmpd
8.4 修改脚本权限
chmod +x /opt/dev/easycwmp/ext/openwrt/scripts/functions/*
8.5 添加环境变量,
8.5.1编辑/etc/bash.bashrc文件
sudo vim /etc/bash.bashrc
8.5.2 在最后添加如下内容
export UCI_CONFIG_DIR="/opt/dev/easycwmp/ext/openwrt/config/" export UBUS_SOCKET="/var/run/ubus.sock"
8.5.3 加载环境变量
source /etc/bash.bashrc
8.6 安装openwrt脚本
sudo mkdir -p /lib/{config,functions} # 访问下面网址,下载functions.txt
https://roverq.lanzouw.com/i25Oo28jc3sd
# 访问下面网址,下载uci.txt
https://roverq.lanzouw.com/irDOm28jc3te
# 访问下面网址,下载network.txt
https://roverq.lanzouw.com/iA1vg28jc3uf
# 将下载的文件拷贝到指定位置,并修改权限 sudo cp functions.txt /lib/functions.sh && sudo chmod +x /lib/functions.sh sudo cp uci.txt /lib/config/uci.sh && sudo chmod +x /lib/config/uci.sh sudo cp network.txt /lib/functions/network.sh && sudo chmod +x /lib/functions/network.sh
8.7 验证,输入以下命令
bash /usr/sbin/easycwmp get value Device.
结果如下
9 easycwmp连接tr069平台
9.1 修改url为tr069平台地址,修改文件内容如下
9.2 启动ubusd
ubusd -s /var/run/ubus.sock
9.3 启动easycwmp
/usr/sbin/easycwmpd -f -b
报错解决:
1. 找不到json-c库:在/etc/ld.so.conf中加入/usr/local/lib这一行,保存之后,再运行:/sbin/ldconfig –v更新一下配置即可。
参考链接:csdn
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了