网站规划建设案例,网站数据库是什么意思,莱芜新闻民生广角,电商网站系统建设参考链接
Tutorial – EasyCwmphttps://easycwmp.org/tutorial/
EasyCwmp 介绍
EasyCwmp 设计包括 2 个部分#xff1a;
EasyCwmp 核心#xff1a;它包括 TR069 CWMP 引擎#xff0c;负责与 ACS 服务器的通信。它是用 C 语言开发的。EasyCwmp DataModel#xff1a;它包…参考链接
Tutorial – EasyCwmphttps://easycwmp.org/tutorial/
EasyCwmp 介绍
EasyCwmp 设计包括 2 个部分
EasyCwmp 核心它包括 TR069 CWMP 引擎负责与 ACS 服务器的通信。它是用 C 语言开发的。EasyCwmp DataModel它包括 TR-06 的 DATAModel并且符合一些 DataModel 标准例如 TR-098、TR-181、TR-104 等。
关键设计目标是将 CWMP 方法执行与 CWMP 引擎分开。这使得添加和测试新功能变得容易。
DataModel 是使用 shell 作为免费解决方案和 C 作为商业解决方案开发的 EasyCwmp 依赖包
libucilibcurljson-clibubox: minimum version [git version: 0608d1299546d4af1facc271a090cb2abb8c6105, date: 2012-05-30]libubus: minimum version [git version: a62e2f8c15a65efb1a82404d8f31e3bfc1cbe7d9, date: 2012-06-01]microxml: microxml is a fork of Mini-XML, it’s being used to parse XML blocks passed between ACS and the client and it’s published by freecwmp guys: microxml source: git clone https://github.com/pivasoftware/microxml.gitmicroxml OpenWRT package: wget https://easycwmp.org/download/libmicroxml.tar.gz
安装工具包
apt install git
apt install wget
apt install curl 配置用户和组
新建AcsNet组
groupadd AcsNet
配置用户和组
USERw1804
GROUPAcsNet
说明 w1804是用户名 AcsNet是组
创建安装目录git和dev
sudo mkdir -p /opt/{dev,git}
sudo chown -R $USER:$GROUP /opt/{dev,git}
安装json-c clone代码到/opt/git/json-c目录
git clone git://github.com/json-c/json-c.git /opt/git/json-c
cd /opt/git/json-c/
mkdir build
cd build
配置
cmake ../CMakeLists.txt
../cmake-configure --prefix/usr
编译
cd ..
make
安装
sudo make install
sudo ln -sf /usr/include/json-c /usr/include/json
安装libubox
clone源码
git clone git://nbd.name/luci2/libubox.git /opt/git/libubox
cd /opt/git/libubox/
配置
cmake CMakeLists.txt -DBUILD_LUAOFF
编译
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
安装uci
clone源码
git clone git://nbd.name/uci.git /opt/git/uci
cd /opt/git/uci/
配置
cmake CMakeLists.txt -DBUILD_LUAOFF
编译
make
安装
classwestern
sudo make install
sudo ln -sf /usr/local/bin/uci /sbin/uci
sudo ln -sf /usr/local/lib/libuci.so /usr/lib/libuci.so 安装libubox
clone源码
git clone git://nbd.name/luci2/libubox.git /opt/git/libubox
cd /opt/git/libubox/
配置
cmake CMakeLists.txt -DBUILD_LUAOFF
编译
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
安装ubus
clone源码
git clone git://nbd.name/luci2/ubus.git /opt/git/ubus
cd /opt/git/ubus/
配置
cmake CMakeLists.txt -DBUILD_LUAOFF
编译
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 安装microxml
clone源码
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
sudo ln -sf /usr/lib/libmicroxml.so.1.0 /lib/libmicroxml.so.1
安装easycwmp
下载EasyCwmp
Download – EasyCwmphttps://easycwmp.org/get/ 解压easycwmp
cd /opt/dev/
tar -xzvf easycwmp-1.8.6.tar.gz
mv easycwmp-easycwmp-1.8.6.tar.gz easycwmp
cd /opt/dev/easycwmp/
配置
autoreconf -i
./configure --enable-debug --enable-devel --enable-acsmulti --enable-jsonc1
编译
make
easycwmp配置
我们不会安装 easycwmp我们将从 /opt/dev/easycwmp/ 目录使用它。确保我们位于如下位置
cd /opt/dev/easycwmp/ 因为我们使用这个设置进行开发所以我们希望我们所有的更改在我们的 git clone 中都是可见的。最好的方法是使用符号链接。首先创建脚本在实际设备上所在的目录
sudo mkdir -p /usr/share/easycwmp/functions
sudo mkdir -p /etc/easycwmp
create symlinks for easycwmp scripts
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
创建软连接easycwmpd
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
安装sh脚本
sudo mkdir -p /lib/{config,functions}
sudo wget https://github.com/openwrt/openwrt/blob/main/package/base-files/files/lib/functions.sh -O /lib/functions.sh
sudo wget https://github.com/openwrt/openwrt/blob/main/package/system/uci/files/lib/config/uci.sh -O /lib/config/uci.sh
sudo wget https://github.com/openwrt/openwrt/blob/main/package/base-files/files/lib/functions/network.sh -O /lib/functions/network.sh
运行easycwmpd
export PATH$PATH:/usr/sbin:/sbin
sudo ln -sf bash /bin/sh
/usr/sbin/ubusd -s /var/run/ubus.sock
/usr/sbin/easycwmpd -f -brootw1804-virtual-machine:/opt/jboss-4.2.2.GA/bin# /usr/sbin/easycwmpd -f -b
2024-12-12 09:20:49 [easycwmp] NOTICE - add event 0 BOOTSTRAP
2024-12-12 09:20:49 [easycwmp] NOTICE - add event 1 BOOT
2024-12-12 09:20:49 [easycwmp] NOTICE - add event 2 PERIODIC
2024-12-12 09:20:49 [easycwmp] NOTICE - external script init
2024-12-12 09:20:49 [easycwmp] NOTICE - init periodic inform: reference time -62135615268, interval 100
2024-12-12 09:20:49 [easycwmp] NOTICE - external: execute update_value_change
2024-12-12 09:20:49 [easycwmp] NOTICE - daemon started
2024-12-12 09:20:49 [easycwmp] NOTICE - external: execute inform device_id
2024-12-12 09:20:49 [easycwmp] NOTICE - external script exit
2024-12-12 09:20:49 [easycwmp] NOTICE - add event 1 BOOT
2024-12-12 09:20:49 [easycwmp] NOTICE - http server initialized
2024-12-12 09:20:49 [easycwmp] NOTICE - entering main loop
2024-12-12 09:20:49 [easycwmp] NOTICE - start session
2024-12-12 09:20:49 [easycwmp] NOTICE - configured acs url http://192.168.1.110:8080/openacs/acs
2024-12-12 09:20:49 [easycwmp] NOTICE - external script init
2024-12-12 09:20:49 [easycwmp] NOTICE - external: execute inform parameter
2024-12-12 09:20:49 [easycwmp] NOTICE - send Inform
* Trying 192.168.1.110...
* TCP_NODELAY setubus call tr069 notify
测试
easycwmp get value
rootw1804-virtual-machine:/opt/jboss-4.2.2.GA/bin# easycwmp get value
{ parameter: Device.DeviceInfo.SpecVersion, value: 1.0 }
{ parameter: Device.DeviceInfo.ProvisioningCode, value: }
{ parameter: Device.DeviceInfo.Manufacturer, value: easycwmp }
{ parameter: Device.DeviceInfo.ManufacturerOUI, value: FFFFFF }
{ parameter: Device.DeviceInfo.ProductClass, value: easycwmp }
{ parameter: Device.DeviceInfo.SerialNumber, value: FFFFFF123456 }
{ parameter: Device.DeviceInfo.HardwareVersion, value: example_hw_version }
{ parameter: Device.DeviceInfo.SoftwareVersion, value: example_sw_version }
{ parameter: Device.DeviceInfo.UpTime, value: 6502, type: xsd:unsignedInt }
{ parameter: Device.DeviceInfo.DeviceLog, value: }
{ parameter: Device.DeviceInfo.MemoryStatus.Total, value: 4015420 }
{ parameter: Device.DeviceInfo.MemoryStatus.Free, value: 212392 }
{ parameter: Device.IP.Diagnostics.IPPing.DiagnosticsState, value: None }
{ parameter: Device.IP.Diagnostics.IPPing.Host, value: }
{ parameter: Device.IP.Diagnostics.IPPing.NumberOfRepetitions, value: 3, type: xsd:unsignedInt }
{ parameter: Device.IP.Diagnostics.IPPing.Timeout, value: 1000, type: xsd:unsignedInt }
{ parameter: Device.IP.Diagnostics.IPPing.DataBlockSize, value: 64, type: xsd:unsignedInt }
{ parameter: Device.IP.Diagnostics.IPPing.SuccessCount, value: 0, type: xsd:unsignedInt }
{ parameter: Device.IP.Diagnostics.IPPing.FailureCount, value: 0, type: xsd:unsignedInt }
{ parameter: Device.IP.Diagnostics.IPPing.AverageResponseTime, value: 0, type: xsd:unsignedInt }
{ parameter: Device.IP.Diagnostics.IPPing.MinimumResponseTime, value: 0, type: xsd:unsignedInt }
{ parameter: Device.IP.Diagnostics.IPPing.MaximumResponseTime, value: 0, type: xsd:unsignedInt }
{ parameter: Device.ManagementServer.URL, value: http:\/\/192.168.1.110:8080\/openacs\/acs }
{ parameter: Device.ManagementServer.Username, value: easycwmp }
{ parameter: Device.ManagementServer.Password, value: }
{ parameter: Device.ManagementServer.PeriodicInformEnable, value: 1, type: xsd:boolean }
{ parameter: Device.ManagementServer.PeriodicInformInterval, value: 100, type: xsd:unsignedInt }
{ parameter: Device.ManagementServer.PeriodicInformTime, value: 0001-01-01T00:00:00Z, type: xsd:dateTime }
{ parameter: Device.ManagementServer.ConnectionRequestURL, value: }
{ parameter: Device.ManagementServer.ConnectionRequestUsername, value: easycwmp }
{ parameter: Device.ManagementServer.ConnectionRequestPassword, value: }
{ parameter: Device.ManagementServer.ParameterKey, value: }