openwrt移植openthread

导语

使用openwrt作为thread协议布网中的边界路由。

移植openthread

假设OPENWRT_TOP_SRCDIR为openwrt根目录
移植步骤如下:

git clone https://github.com/openthread/ot-br-posix.git		 #不要放到openwrt目录下,请另找一个工作目录
cd ot-br-posix
git submodule update --init --recursive 			#拉取子库
echo src-link openthread "$(pwd)/etc/openwrt" >> ${OPENWRT_TOP_SRCDIR}/feeds.conf 		#更新feeds源
cd "${OPENWRT_TOP_SRCDIR}"
./scripts/feeds update -f openthread 			#更新openthread
./scripts/feeds install -f openthread-br 		#下载openthread
make menuconfig #选择openthread
make package/feeds/openthread/opthread-br/{clean,compile} V=s

报错问题解决

问题一

报错:too many initializers for 'ubus_method'

解决方法:uci ubox ubus等更新到1806版本或以上,可从openwrt的github上找

问题二

报错:-Werror=implicit-function-declaration

解决方法:修改ot-br-posix/CMakeLists.txt文件

--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -48,7 +48,7 @@ if (OTBR_COVERAGE AND CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
     add_link_options(--coverage)
 endif()
 
-add_compile_options(-Wall -Wextra -Werror -Wfatal-errors -Wno-missing-braces)
+add_compile_options(-Wall -Wextra -Wfatal-errors -Wno-missing-braces)

问题三

报错:缺少libncurses.so.5 libreadline.so.6依赖库

解决方法:ot-br-posix/etc/openwrt/openthread-br/Makefile

--- a/etc/openwrt/openthread-br/Makefile
+++ b/etc/openwrt/openthread-br/Makefile
@@ -50,7 +50,7 @@ define Package/openthread-br
        SECTION := base
        CATEGORY := Network
        TITLE := OpenThread Border Router
-       DEPENDS := +libstdcpp +libjson-c +libubus +libblobmsg-json
+       DEPENDS := +libstdcpp +libjson-c +libubus +libblobmsg-json +libncurses +libreadline
 endef

问题四

运行报错:Enable multithreading to use std::thread: Operation not permitted

解决方法:修改ot-br-posix/src/agent/CMakeLists.txt

--- a/src/agent/CMakeLists.txt
+++ b/src/agent/CMakeLists.txt
@@ -26,6 +26,8 @@
 #  POSSIBILITY OF SUCH DAMAGE.
 #
 
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -std=c++11")
+
 add_executable(otbr-agent
     agent_instance.cpp
     agent_instance.hpp

问题五

编译报错:error: 'fd_set' was not declared in this scope

修改方法:在报错文添加

+#include <sys/types.h>

如果遇到其他报错,可尝试回退到博主所移植的ot-br-posix commit版本经行验证
移植commit 版本

commit 0a18ff04240020f2cfc9cb776bd3162ddb40c8d8
Author: Yakun Xu <xyk@google.com>
Date:   Fri May 29 22:59:15 2020 +0800

    [openthread] update OpenThread to fix ot-ctl reset (#442)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要在OpenWrt移植Qt,您可以按照以下步骤进行操作: 1. 首先,您需要下载Qt的源代码。您可以从Qt的官方网站上获取源代码,例如在https://download.qt.io/archive/qt/4.8/4.8.3/ 下载版本为4.8.3的源代码。选择适用于Ubuntu的tar.gz格式的程序包,例如qt-everywhere-opensource-src-4.8.3.tar.gz。 2. 下载并安装必要的编译环境。在Ubuntu上,您可以使用以下命令安装所需的软件包: ``` sudo apt-get install build-essential libgl1-mesa-dev libfontconfig1-dev libdbus-1-dev libfreetype6-dev libudev-dev libssl-dev libxcb1-dev libx11-xcb-dev libxext-dev libx11-dev ``` 3. 然后,编辑/cust/qsdk/feeds.conf文件,在文件中添加链接指向Qt库的路径。例如,您可以添加以下内容: ``` src-link libqt ../qsdk/package/libs/libqt ``` 这将使系统能够找到Qt库的路径。 4. 接下来,使用以下命令解压Qt源代码文件并进入源代码目录: ``` tar -xzvf qt-everywhere-opensource-src-4.8.3.tar.gz cd qt-everywhere-opensource-src-4.8.3 ``` 5. 运行以下命令配置Qt的构建选项: ``` ./configure -embedded <your_platform> -prefix /home/wooya/qt-everywhere-opensource-src-4.8.3/install-qt ``` `<your_platform>`是您正在使用的平台,例如linux-x86_64-g++。此命令将配置Qt的构建环境以适应OpenWrt。 6. 然后,运行以下命令进行编译和安装: ``` make make install ``` 这将编译并安装Qt到指定的安装目录。 请注意,这只是一个大致的步骤指南,具体的步骤可能因您的环境和需求而有所不同。在开始移植之前,建议仔细阅读Qt的官方文档,以确保您具备必要的知识和理解移植过程。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [移植Qt到openwrt开发板中](https://blog.csdn.net/Pintitus/article/details/122573400)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [OpenWRT 移植QT](https://blog.csdn.net/qq_41133610/article/details/118731183)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值