b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

dhcp_dldp_Easycwmp移植与配置部分核心代码分析

电脑杂谈  发布时间:2016-06-05 15:06:43  来源:网络整理

你是否正在寻找关于cwmp的内容?让我把最宝贵的东西奉献给你:

cwmp_dhcp_dldp

[转载请注明出处]

Easycwmp实现的是一个和snmp差不多的协议。

0.主要看一下easycwmpd与脚本的交互代码,。easycwmpd是通过脚本获取系统参数,然后将参数与服务器进行数据交换。

int external_init() { log_message(NAME, L_NOTICE, ); if (pipe(pfds_out) < 0) return -1; if (pipe(pfds_in) < 0) return -1; if ((pid = fork()) == -1) { log_message(NAME, L_CRIT, ); return -1; } if (pid == 0) { close(pfds_out[0]); dup2(pfds_out[1], STDOUT_FILENO); close(pfds_out[1]); close(pfds_in[1]); dup2(pfds_in[0], STDIN_FILENO); close(pfds_in[0]); int i=0; const char *argv[4]; argv[i++] = ; argv[i++] = fc_script; argv[i++] = ; argv[i++] = NULL; execvp(argv[0], (char **) argv); exit(ESRCH); } else if (pid < 0) return -1; close(pfds_out[1]); close(pfds_in[0]); int r = external_read_pipe(NULL); return r; }

流程图为(打开两个管道,用于子进程与父进程之间进行通信):

dhcp_dldp_Easycwmp移植与配置部分核心代码分析

1.首先看下需要依赖的软件:

curl-7.29.0

easycwmp-1.2.3

json-c-0.11

libmicroxml-2012-06-11

libubox-2013-10-19

lua-5.1.4

ubus-2013-08-08

uci-2013-06-11.1

2.开始以此移植

curl-7.29.0

#!/bin/sh ./configure --target=mips-linux \ --host=mips-linux \ --prefix=$PWD/../install

json-c-0.11

#!/bin/bash PRJ_PATH=`pwd` CROSS=/opt/toolchain-mips-gc33/usr/bin/mips-linux- make distclean autoreconf -i export CC=${CROSS}gcc export CPP=${CROSS}cpp export AS=${CROSS}as export LD=${CROSS}ld export AR=${CROSS}ar export RANLIB=${CROSS}ranlib export STRIP=${CROSS}strip export ac_cv_func_malloc_0_nonnull=yes export ac_cv_func_realloc_0_nonnull=yes export ac_cv_have_decl_isinf=yes export ac_cv_have_decl_isnan=yes #export LDFLAGS += -lm ./configure --disable-dependency-tracking --with-gnu-ld --target=mips-linux --host=mips-linux --prefix=${PRJ_PATH}/../install

libmicroxml-2012-06-11

#!/bin/sh ./configure --target=mips-linux \ --host=mips-linux \ --prefix=$PWD/../install

libubox-2013-10-19

SET(CMAKE_SYSTEM_NAME Linux) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../install/include) LINK_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../install/lib) #SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) #SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) #SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) SET(CMAKE_C_COMPILER /opt/toolchain/bin/mips-linux-gcc) SET(CMAKE_CXX_COMPILER /opt/toolchain/bin/mips-linux-g++)

#!/bin/sh cmake CMakeLists.txt -DBUILD_LUA=OFF -DCMAKE_INSTALL_PREFIX=$PWD/../install

uci-2013-06-11.1

SET(CMAKE_SYSTEM_NAME Linux) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../install/include) LINK_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../install/lib) #SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) #SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) #SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) SET(CMAKE_C_COMPILER /opt/toolchain/bin/mips-linux-gcc) SET(CMAKE_CXX_COMPILER /opt/toolchain/bin/mips-linux-g++)

#!/bin/sh cmake CMakeLists.txt -DBUILD_LUA=OFF -DCMAKE_INSTALL_PREFIX=$PWD/../install

ubus-2013-08-08

SET(CMAKE_SYSTEM_NAME Linux) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../install/include) LINK_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../install/lib) #SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) #SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) #SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) SET(CMAKE_C_COMPILER /opt/toolchain/bin/mips-linux-gcc) SET(CMAKE_CXX_COMPILER /opt/toolchain/bin/mips-linux-g++)

#!/bin/sh ccmake CMakeLists.txt -DBUILD_LUA=OFF -DCMAKE_INSTALL_PREFIX=$PWD/../install

easycwmp-1.2.3

#!/bin/sh ./configure --target=mips-linux \ --host=mips-linux \ --prefix=$PWD/../install \ LIBCURL_CFLAGS= \ LIBCURL_LIBS= \ MICROXML_CFLAGS= \ MICROXML_LIBS= \ CFLAGS= \ LDFLAGS= \ LIBS=

配置文件只需要修改服务器的地址和端口即可

dhcp_dldp_Easycwmp移植与配置部分核心代码分析

最后程序运行

ubusd & easycwmpd -b -f &

以上就是关于cwmp的全部内容,相信你一定会非常满意。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-7786-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 薛嘉愉
        薛嘉愉

        如果钱比较闲放招财宝一年有500多

      • 赵桓子
        赵桓子

        战争只是牺牲部分地区的秩序

      热点图片
      拼命载入中...