mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2026-02-02 12:03:32 +01:00
136 lines
4.8 KiB
Text
136 lines
4.8 KiB
Text
1)Build
|
||
Requirements<74>:
|
||
librairies:
|
||
- libuci.so
|
||
- libexpat.so
|
||
- libcurl.so
|
||
- libpthread.so
|
||
- libopenssl.so
|
||
- libz.so
|
||
- libcrypto.so
|
||
the librairies should be present in the "staging_dir/target-i386_uClibc-0.9.30.1/usr/lib/" or "staging_dir/toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/lib"
|
||
|
||
header files and folders:
|
||
- expat.h
|
||
- expat_external.h
|
||
- uci.h
|
||
- uci_config.h
|
||
- zlib.h
|
||
- curl folder
|
||
- openssl folder
|
||
the header files and folders should be present in the staging_dir/target-i386_uClibc-0.9.30.1/usr/include/ or staging_dir/toolchain-i386_gcc-4.1.2_uClibc-0.9.30.1/usr/include/
|
||
|
||
|
||
if a librairie doesn't exist:
|
||
a- run make menuconfig and select the librarie
|
||
b- build the librarie package
|
||
|
||
2) Build
|
||
|
||
this software is composed of 3 packages:
|
||
- icwmp package: contains icwmpd daemon
|
||
- cwmp lib package: contains cwmplib and contains cwmp_value_change binary. They could be used by other user space applications in order to notify the icwmp daemon when paramter changes
|
||
- cwmp kernel package: contains cwmp kernel module. This module could be used by other kernel modules to notify the icwmpd daemon when kernel parameter changes
|
||
|
||
The three packages should be selected in the make menu config in order to get the three packages compiled.
|
||
To compile the three packages: $ make package/cwmpd/compile
|
||
|
||
3) OpenWRT settings
|
||
in the OpenWRT, Add the following lines in the /usr/share/udhcpc/default.script file:
|
||
uci_set_state provisioning iup tr069url "$url"
|
||
uci_set_state provisioning iup provisioningcode "$provisioningcode"
|
||
|
||
4) Run
|
||
Requirements:
|
||
- libuci package should be installed
|
||
- libexpat package should be installed
|
||
- libcurl package should be installed
|
||
- libpthread package should be installed
|
||
- libopenssl package should be installed
|
||
- libz package should be installed
|
||
- libcrypto package should be installed
|
||
|
||
Configure the acs url in the /etc/config/icwmp
|
||
and then start the cwmpd service: /etc/init.d/icwmpd start
|
||
for the help: /etc/init.d/icwmpd
|
||
|
||
5) Value Change
|
||
|
||
5.1) value change for user space applications (using the libcwmp)
|
||
|
||
Before using the libcwmp, we should check that the libcwmp package is selected in "make menu config". and we should check that the package is compiled.
|
||
The libcwmp should be installed uin the OpenWRT firmware
|
||
|
||
example of using libcwmp
|
||
in myapplication.c
|
||
|
||
#...
|
||
#include <cwmp_lib.h>
|
||
#...
|
||
|
||
int anyfunction ()
|
||
{
|
||
.....
|
||
/* parameter change here */
|
||
/* so we inform the icwmp: */
|
||
lib_api_cwmp_value_change_call (3, "InternetGatewayDevice.LANDevice.{i}.LANHostConfigManagement.IPInterface.{i}.IPInterfaceIPAddress","lan2","3");
|
||
.....
|
||
/*
|
||
Description of lib_api_cwmp_value_change_call input parameters
|
||
parameter 1 : is the number of input string in the function lib_api_cwmp_value_change_call
|
||
parameter 2 : is the parameter path
|
||
parameter 3 : is the first correspondence related to the first indice
|
||
parameter 4 : is the second correspondence related to the second indice
|
||
.
|
||
.
|
||
.
|
||
parameter n : is the (n-2) correspondence related to the (n-2) indice
|
||
*/
|
||
|
||
}
|
||
|
||
5.2) value change for user space applications (using the cwmp_value_change CLI)
|
||
|
||
Before using the libcwmp, we should check that the libcwmp package is selected in "make menu config". and we should check that the package is compiled.
|
||
The libcwmp should be installed uin the OpenWRT firmware
|
||
|
||
in OpenWRT:
|
||
|
||
root@OpenWrt:~# cwmp_value_change InternetGatewayDevice.LANDevice.{i}.LANHostConfigManagement.IPInterface.{i}.IPInterfaceIPAddress "lan2" "3"
|
||
|
||
in this case the command will force cwmp client to send a notification to the ACS (if and only if the parameter path as configured as active or as passive parameter using the setAttributeParameter method)
|
||
|
||
5.3) value change for kernel space modules
|
||
Before using the cwmp kernel module for value change, we should check that the kernel module package is selected in "make menu config". and we should check that the package is compiled.
|
||
The kernel module should be installed uin the OpenWRT firmware and should be insert before all other kernel modules
|
||
|
||
example of using cwmp kernel module
|
||
in mykernelmodule.c
|
||
|
||
#...
|
||
#include <linux/cwmp_kernel.h>
|
||
#...
|
||
|
||
int anykernelfunction ()
|
||
{
|
||
.....
|
||
/* parameter change here */
|
||
/* so we inform the cwmp: */
|
||
kernel_api_cwmp_value_change_call (3, "InternetGatewayDevice.LANDevice.{i}.LANHostConfigManagement.IPInterface.{i}.IPInterfaceIPAddress","lan2","3");
|
||
.....
|
||
/*
|
||
Description of lib_api_cwmp_value_change_call input parameters
|
||
parameter 1 : is the number of input string in the function lib_api_cwmp_value_change_call
|
||
parameter 2 : is the parameter path
|
||
parameter 3 : is the first correspondence related to the first indice
|
||
parameter 4 : is the second correspondence related to the second indice
|
||
.
|
||
.
|
||
.
|
||
parameter n : is the (n-2) correspondence related to the (n-2) indice
|
||
*/
|
||
|
||
}
|
||
|
||
|
||
|