openwrt编译环境搭建

2023-10-29

openwrt编译环境搭建

 

1、虚拟机安装

         请参考网络上的资料进行安装。

 

2、ubuntu安装

         请参考网络上的资料进行安装。

 

3、ubuntu下安装相关的编译环境(若是编译环境没有准备好,在后来的操作中会出现一些问题)

         sudoapt-get install g++

         sudoapt-get install libncurses5-dev

         sudoapt-get install zlib1g-dev

         sudoapt-get install bison

         sudoapt-get install flex

         sudoapt-get install unzip

         sudoapt-get install autoconf

         sudoapt-get install gawk

         sudoapt-get install make

         sudoapt-get install gettext

         sudoapt-get install gcc

         sudoapt-get install binutils

         sudoapt-get install patch

         sudoapt-get install bzip2

         sudoapt-get install libz-dev

         sudoapt-get install asciidoc

         sudoapt-get install subversion

         sudoapt-get install sphinxsearch

         sudoapt-get install libtool

         sudoapt-get install sphinx-common

         sudoapt-get install libssl-dev

         sudoapt-get install libssl0.9.8

(https://yq.aliyun.com/articles/33263)/

      sudo apt-get installgcc 
      sudoapt-get install g++ 
      sudo apt-getinstall binutils 
      sudoapt-get install patch 
      sudoapt-get install bzip2 
      sudoapt-get install flex 
      sudoapt-get install bison 
      sudoapt-get install make 
      sudoapt-get install autoconf 
      sudoapt-get install gettext 
      sudoapt-get install texinfo 
      sudoapt-get install unzip 
      sudoapt-get install sharutils 
      sudoapt-get install subversion 
      sudoapt-get install libncurses5-dev 
      sudoapt-get install ncurses-term 
      sudoapt-get install zlib1g-dev 
      sudoapt-get install gawk
      sudoapt-get install asciidoc
      sudoapt-get install libz-dev

 

4、安装git绑定ssh密钥(https://www.linuxidc.com/Linux/2016-09/135527.htm)

         sudoapt-get install git

         参考网上资料安装git并在github上注册账号,并将

5、openwrt源码下载

         git clonehttps://www.github.com/openwrt/openwrt

问题:

 

6、安装feeds安装包,(经常会出现问题3中的问题,所以在执行该指令之前先将feeds.conf.default中进行内容修改(将https:\\改为git:\\)。)

         ./scripts/feedsupdate -a

         ./scripts/feedsinstall -a

 

7、配置openwrt

         7.1、执行makemenuconfig指令

         配置openwrt编译目标板,

                   target选择AtherosAR7xxx/AR9xxx

                   subtarget         选择Subtarget(Generic)

                   targetprofile选择Atheros DB120...

                   LuCI暂不配置

 

8、指令加载LuCI到内核

       8.1、把LuCI编译进内核指令:
       ./scripts/feeds update packagesluci
       ./scripts/feeds install -a -p luci

 

9、编译openwrt

         make-j1 V=s

         生成的镜像文件在t/bin/targets/ar71xx/generic目录下的.bin文件,我的目标板生成的是:

openwrt-ar71xx-generic-db120-squashfs-sysupgrade.bin

 

 

遇到的问题:

问题1:

内容:安装git过程中遇到的问题:在执行git clone https://www.github.com/openwrt/openwrt时提示提示Permission denied(publickey)问题;

原因:在生成ssh密钥之后,复制到github的SSH中之后,并没有在ubuntu下将私钥添加;

解决方法:ssh密钥id_rs文件的目录下执行指令:ssh-add   ~/.ssh/id_rs,这个具体操作可参考链接(https://www.cnblogs.com/chuyanfenfei/p/8035067.html)

 

问题2:

内容:使用指令git clone git://git.openwrt.org/14.07/openwrt.git出现错误如下:

         Cloninginto 'openwrt'...

         fatal:unable to connect to git.openwrt.org:

         git.openwrt.org[0:46.101.214.210]: errno=No error

原因:应该是git链接不正确,使用指令可成功下载:

(参考链接:https://dev.openwrt.org/wiki/GetSource)

BB版本:git clone -bbarrier_breaker git://github.com/openwrt/openwrt.git

CC版本:

最终我是采用openwrt官网上提供的链接下载主干代码进行编译的:

git指令:git clonehttps://www.github.com/openwrt/openwrt

(参考链接:https://wiki.openwrt.org/zh-cn/doc/howto/build)

 

问题3:

内容:在使用./scripts/feeds update -a指令执行安装软件包的时候遇到:fatal:HTTP request failed;

原因:feeds.conf.default文件中的将里面所有https替换成git便可。

解决方法:将openwrt目录下的feeds.conf.default文件中的将里面所有https替换成git便可。

保存修改后在执行./scripts/feeds update -a指令便可。

 

问题4:awk: include/scan.awk: line 21: function asort never defined

原因:/bin/sh的链接到/bin/dash,而不是/bin/bash(可以用命令ls /bin/sh -lh查看链接的时bash还是dash)

解决方法:(可参考链接:http://blog.csdn.net/smilettxp/article/details/19118057?reload)

         修改sh默认指向到/bin/bash,如下:

   sudo dpkg-reconfigure dash 选择no,即可。

         awk:line的解决办法是安装gnuawk,如下:

         sudoapt-get install gawk 即可。

 

问题5:

内容:Build dependency: Please install a static zlib. (Missing libz.a orzlib.h)

原因:没有安装需要的库;

解决方法:(参考:http://blog.csdn.net/mrwangwang/article/details/38977485)

安装需要的包sudo apt-get install libncurses5-dev  zlib1g-dev  gawk flex  patch   git-core g++   subversion (注意zlib1g-dev中的1是1不是l);

 

问题6:

内容:

                     Error when bootstrapping CMake:

                     Cannot find a C++ compiler supporting C++11on this system.

                            Pleasespecify one using environment variable CXX.

                            Seecmake_bootstrap.log for compilers attempted.

原因:需要知道c++11标准在gcc版本在4.7以及之上才支持

解决方法:在ubuntu中更新4.7版本以上的gcc和g++(参考链接:https://blog.csdn.net/ture_dream/article/details/52651746);安装了4.7版本的gcc、g++编译器之后,解决了上一个问题,但是又出现了新的问题,因此查了一下gcc/g++的最新版本的编译器为4.8,重新安装了4.8版本的编译器(参考链接:https://blog.csdn.net/haluoluo211/article/details/71141093);

 

问题7:

内容:在执行make的过程中遇到以下问题:

         make[5]:*** [s-automata] Error 137

         make[5]:Leaving directory`/home/sky/openwrt/build_dir/toolchain-mips_24kc_gcc-7.3.0_musl/gcc-7.3.0-initial/gcc'

         make[4]:*** [all-gcc] Error 2

         make[4]:Leaving directory`/home/sky/openwrt/build_dir/toolchain-mips_24kc_gcc-7.3.0_musl/gcc-7.3.0-initial'

         make[3]:***[/home/sky/openwrt/build_dir/toolchain-mips_24kc_gcc-7.3.0_musl/gcc-7.3.0-initial/.built]Error 2

         make[3]:Leaving directory `/home/sky/openwrt/toolchain/gcc/initial'

         make[2]:*** [toolchain/gcc/initial/compile] Error 2

         make[2]:Leaving directory `/home/sky/openwrt'

         make[1]:***[/home/sky/openwrt/staging_dir/toolchain-mips_24kc_gcc-7.3.0_musl/stamp/.toolchain_compile]Error 2

         make[1]:Leaving directory `/home/sky/openwrt'

         make:*** [world] Error 2

原因:内存不足(参考链接:https://blog.csdn.net/qianguozheng/article/details/52266267);

解决方法:

         1、增加虚拟内存,swap分区;

         2、把/etc/sysctl.conf里的swappiness设成60了,swappiness是虚拟内存使用率;

         3、还有一个就是更新gcc工具。

         我的解决方法是将虚拟机的设置中将硬盘和内存容量都扩倍了。

 

问题8:

内容:在执行make的过程中遇到以下问题报错:

         WARNING:Makefile 'package/feeds/luci/luci-proto-vpnc/Makefile' has a dependency on'vpnc', which does not exist

         WARNING:Makefile 'package/feeds/routing/nodogsplash2/Makefile' has a dependency on 'libmicrohttpd-no-ssl',which does not exist

         WARNING:Makefile 'package/feeds/routing/ohybridproxy/Makefile' has a dependency on'mdnsd', which does not exist

         WARNING:Makefile 'package/feeds/routing/olsrd/Makefile' has a dependency on 'libgps',which does not exist

         WARNING:Makefile 'package/feeds/telephony/restund/Makefile' has a dependency on'libmysqlclient', which does not exist

         WARNING:Makefile 'package/feeds/telephony/sipgrep/Makefile' has a dependency on'libpcre', which does not exist

         WARNING:Makefile 'package/feeds/telephony/sngrep/Makefile' has a dependency on'libpcre', which does not exist

         WARNING:Makefile 'package/feeds/telephony/spandsp/Makefile' has a dependency on'libtiff', which does not exist

         WARNING:Makefile 'package/feeds/telephony/yate/Makefile' has a dependency on'perlbase-data', which does not exist

         WARNING:Makefile 'package/feeds/telephony/yate/Makefile' has a dependency on'alsa-lib', which does not exist

         WARNING:Makefile 'package/feeds/telephony/yate/Makefile' has a dependency on'libmysqlclient-r', which does not exist

         WARNING:Makefile 'package/feeds/telephony/yate/Makefile' has a dependency on 'libpq',which does not exist

         WARNING:Makefile 'package/feeds/telephony/yate/Makefile' has a dependency on'libsqlite3', which does not exist

原因:可能由于网络问题,在下载./scripts/feeds update -a 和安装       ./scripts/feeds install -a软件包的过程中出现下载失败的问题。

解决方法:保存网络良好,再次执行该语句./scripts/feeds uninstall freeswitch或者多次执行./scripts/feedsupdate -a和./scripts/feeds install -a语句。

 

问题9:

内容:在编译openwrt的过程中,出现以下问题:

check_data_file_clashes:Package libustream-opensslwants to install file

/home/sky/openwrt2/openwrt/build_dir/target-mips_24kc_musl/root-ar71xx/lib/libustream-ssl.so,       But that file is already providedby package  * libustream-mbedtls

* opkg_install_cmd: Cannot install packageluci-ssl-openssl.

原因:在make menuconfig进行配置编译选项中,LuCI->Collection下的ibustream-mbedtls和luci-ssl-openssl两个选项都进行了选择,其实只要进行其中一个选择便可。

解决方法:make disclean,重新make menuconfig进行配置LuCI,然后重新编译make;其实最保险的做法是在不进行LuCI的配置选项选择,通过以下指令将LuCI编译进内核中:

         ./scripts/feedsupdate packages luci

         ./scripts/feedsinstall -a -p luci

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

openwrt编译环境搭建 的相关文章

  • Redis 学习笔记2:redis.conf配置文件详解

    Redis 的配置文件位于 Redis 安装目录下 文件名为 redis conf 参数说明 参数说明 redis conf 配置项说明如下 1 Redis默认不是以守护进程的方式运行 可以通过该配置项修改 使用yes启用守护进程 daem
  • 阻抗匹配之反射波形测量

    稍微接触过高速信号的朋友 一定对阻抗匹配和信号反射都有所了解 甚至可以按照公式 把反射波形一路推导出来 但是 纸上得来终绝浅 绝知此事要躬行 今天 我们就来实测一下信号反射波形 测试环境如下 信号发生器产生一个1 25MHz VPP 2V的
  • 数据库连接池(C++11实现)

    目的 因为对数据库的操作实质上是对磁盘的IO操作 所以如果对数据库访问次数过多 就会到导致大量的磁盘IO 为了提高MySQL数据库 基于C S设计 的访问瓶颈 除了在服务器端增加缓存服务器缓存常用的数据 之外 例如Redis 还可以增加连接
  • [POJ1088] 滑雪(递归dp)

    Description Michael喜欢滑雪百这并不奇怪 因为滑雪的确很刺激 可是为了获得速度 滑的区域必须向下倾斜 而且当你滑到坡底 你不得不再次走上坡或者等待升降机来载你 Michael想知道载一个区域中最长底滑坡 区域由一个二维数组
  • yolov5 6.0运行

    1 github下载yolov5 6 0代码 下载链接 2 利用Anaconda安装所需环境参考 如何配置pytorch 3 在pycharm打开文件并选择配置好的环境编译器 4 安装所需模块 利用作者提供的requirements txt
  • linux系统编程(七)进程

    文章目录 1 进程 1 1 进程相关概念 1 1 1 程序和进程 1 1 2 并发 1 1 3 单道程序设计 1 1 4 多道程序设计 1 1 5 CPU和MMU 1 1 6 进程控制块PCB 1 1 7 进程状态 1 2 环境变量 1 2
  • opencv条码(4)图像的flip之图形化界面

    flip函数可以实现图像反转 这里贴出mainwindow cpp的内容吧 书上的代码对应opencv2 2现在有些不能用了请注意 include mainwindow h include ui mainwindow h using nam
  • 华为OD机试 - 最小循环子数组(Java)

    题目描述 给定一个由若干整数组成的数组nums 请检查数组是否是由某个子数组重复循环拼接而成 请输出这个最小的子数组 输入描述 第一行输入数组中元素个数n 1 n 100000 第二行输入数组的数字序列nums 以空格分割 0 nums i
  • Java架构直通车——理解Tomcat架构设计

    文章目录 引入 Socket与SeverSocket 一个简单Web容器设计与实现 理解Tomcat架构设计 什么是Servlet Tomcat Servlet容器 引入 Socket与SeverSocket Socket Socket是网
  • SpringBoot整合Logback日志框架配置全解析

    一 Logback日志框架介绍 SpringBoot使用 Commons Logging 进行所有内部日志的记录 但默认配置也提供了对常用日志的支持 如 Java Util Logging Log4J2 和Logback 每种logger都
  • npm install node-sass的时候报错ERR gyp ERR C++

    今天在项目里执行npm i命令的是后报错一大片 搜了很多文章 都没有到点上 突然灵感一闪 可能是电脑上没有c 编译环境的问题 但是是我在电脑上运行c文件是正常的 搜到一篇文章里写的情况是这样的 npm分发的都是源码 npm install的
  • oracle如何得到32位的世界唯一随机数

    author skate time 2008 2 18 oracle如何得到32位的世界唯一随机数 我们在创建表的时候一般都用序列生成的数字来保证数据的唯一 但这只能保证在单个实例中 无法适合并行或远程的环境的主关键字 因为在各自环境理里可
  • 数据库基本概念、ubuntu安装MySQL

    安装MySQL参考了这篇博客 Ubuntu18 04 安装MySQL SQL创建表格 添加元组 MySQL创建数据库 需要创建的student和course表 进入sql前要先进入root用户 创建数据库 加分号代表结束语句 在数据库中建表
  • 阿里云通过全球加速实现IPv6地址转换

    购买全球加速实例和基础带宽包 打开 全球加速 先配置基础带宽包 点击实例 点击 加速区域 选择 添加接入地域 去配置监听 在 加速区域 复制 加速IP 到指定的DNS云解析处 添加AAAA记录 测试 开启手机热点 笔记本连上热点 取消属性里
  • 文件操作总结

    文章目录 一 文件三大核心内容 1 1打开文件 1 2读写操作 1 3关闭文件 二 文件基本知识点 2 1操作系统是以文件为单位对数据进行管理 2 2数据流 2 3文件路径 2 4文件打开方式 2 5文件缓存 2 6在 cpp文件中的读写模
  • C++数据结构——链栈的实现

    链栈的实现 其实是针对栈的元素的个数变化量很大的一种情况 使用数组的话有可能造成很大的数组浪费空间 这时使用链栈来动态伸长链栈就变得很优秀了 节点结构 pragma once template
  • Anaconda进入base环境

    bash source activate base python3 handler py
  • Android SERVICE后台服务进程的自启动和保持

    Android SERVICE后台服务进程的自启动和保持 2012 12 27 10 30 佚名 eoeAndroid 我要评论 0 字号 T T Service组件在android开发中经常遇到 其经常作为后台服务 需要始终保持运行 负责
  • 已知p值自由度 求t值 matlab,统计学中的F值、P值和r分别表示什么意思,怎么求-如何查看f值-数学-敖篮友同学...

    概述 本道作业题是敖篮友同学的课后练习 分享的知识点是如何查看f值 指导老师为束老师 涉及到的知识点涵盖 统计学中的F值 P值和r分别表示什么意思 怎么求 如何查看f值 数学 下面是敖篮友作业题的详细 题目 统计学中的F值 P值和r分别表示

随机推荐

  • Go 语言运算符文档与举例

    在Go语言中 有各种运算符可用于执行不同类型的操作 以下是一些常见的Go语言运算符及其说明和示例 下面是一个表格 归纳了常见的运算符类型和它们的说明 运算符类型 运算符 说明 算术运算符 相加两个操作数 相减两个操作数 相乘两个操作数 相除
  • 英语语言标准C1,【CEFR】国际通用的学生英语能力水平评测标准

    原标题 CEFR 国际通用的学生英语能力水平评测标准 教育家陶行知 育人和种花一样 需要先认识花木特点 再区别不同情况 给予施肥浇水和培养教育 英语学习的过程中 有的英语学习者会很迷惑 究竟自己在什么水平 什么样的水平需要什么样的语言能力
  • 二、XenServer 服务器配置

    重启完成XenServer 之后 进入菜单驱动文本控制台 Menu Driven Text Console 界面 1 切换到Network and Management Interface 配置管理网络 2 选择Configure Mana
  • 必须了解的8种神经网络架构

    机器学习已经在各个行业得到了大规模的广泛应用 并为提升业务流程的效率 提高生产率做出了极大的贡献 目前机器学习主要在以下方面应用 模式识别 实际场景中的目标 包括人脸 表情 语音识别等等 异常检测 例如信用卡交易的异常检测 传感器异常数据模
  • 两种快速排序的实现(C语言)

    两种搜索方式不一样 第 0种单向搜索 第1 种双向搜 代码如下 include
  • VS2019+QT5.12.10+PCL1.11.1+VTK8.2.0(cmake3.20.4)环境搭配

    一 编译VTK8 2 0 网上教程一大堆 自己看着瞎编吧 提示 关于QT的部分需要全部勾上 不然在vs中qvtkWidget没法使用 关于QT的部分需要全部勾上 不然在vs中qvtkWidget没法使用 关于QT的部分需要全部勾上 不然在v
  • phpstrom插件安装

    sublime 中的 代码小地图 codeglance https plugins jetbrains com plugin 7275 codeglance Paste Image png 像sublime那样配置主题 只需要改一改配置文件
  • build gradle dependencies闭包的详解

    dependencies闭包的整体功能是指定当前项目所有依赖关系 本地依赖 库依赖及远程依赖 本地依赖 可以对本地Jar包或者目录添加依赖关系 库依赖 可以对项目中的库模块添加依赖关系 远程依赖 可以对jcenter库上的开源项目添加依赖
  • 迪士尼自研算法突破百万高清像素用AI换脸来拍电影

    AI换脸又一次刷爆了朋友圈 最近云毕业正当时 各家科技公司顺势推出了自己的AI换脸技术 结果又被同学们玩坏了 换脸这件事绝不能少了业界大佬们 不得不说 好看是不分性别的 彦宏兄气质满分 仔细来看 AI换脸技术近些年还是成熟不少 整体的面部贴
  • 为应对输出风险文本的情况,提出一种针对LLMs简单有效的思维链解毒方法

    作者 汤泽成 周柯言单位 苏州大学人工智能研究院 论文标题 2308 08295 Detoxify Language Model Step by Step arxiv org 论文代码 https github com codinnlg d
  • R资源大全

    0 前言 虽然很早就知道R被微软收购 也很早知道R在统计分析处理方面很强大 开始一直没有行动过 直到 直到12月初在微软技术大会 看到我软的工程师演示R的使用 我就震惊了 然后最近在网上到处了解和爬一些R的资料 看着看着就入迷了 这就是个大
  • ORL数据集百度网盘

    最近做人脸识别找了好久才在一个代码的角落里找到ORL的数据集 贫穷使我不愿意花钱下载 上传到百度网盘了 分享给和我一样贫穷的朋友 祝大家早日有钱 链接 https pan baidu com s 178K357kYHhaJnYGyGI76R
  • 1、两数之和

    题目 法1 暴力解法 用两个for循环 缺点 时间复杂度高 法1 推荐 nums list map int input split target int input for i in range len nums 1 for j in ra
  • VBA宏之自动抓取关键文字并填充到指定单元格

    需求如下 最后一列字段名称为 IPTV 判断最后的数据是在哪一行 某两列中筛选含有 IPTV 或 TV 最后一列对应就为 IPTV 否则为空 最后生成的结果另存为指定日期名称的Excel文件 Sub 判断平台是否为IPTV 定义变量 Dim
  • VirtualBox压缩VDI文件 VDI文件瘦身方法

    VirtualBox压缩VDI文件 VDI文件瘦身方法 一 WINDOWS 下压缩 VDI 文件 1 在虚拟机中 右键计算机 gt 管理 gt 磁盘管理 2 右键所有磁盘 压缩卷 把所有磁盘压缩到最小 3 在未分配空间上右键新建卷 4 低级
  • c# Lambda

    分配给委托类型 Func
  • 三种公钥密码体系(传统公开密钥体系 / 基于身份的公开密钥体系 / 基于无证书的公开密钥体系 )

    公开密钥体系 分类 基于证书的公开密钥体系 基于身份的公开密钥体系 基于无证书的公开密钥体系 基于证书的公开密钥体系 第一种方案是采用证书机制实现用户的身份和用户的钥匙之间的安全对应 证书机制一般都采用公钥基础设施 Public Key I
  • 开心档之Bootstrap4 自定义表单

    Bootstrap4 自定义表单 Bootstrap4 可以自定义一些表单的样式来替换浏览器默认的样式 自定义复选框 如果要自定义一个复选框 可以设置 div 为父元素 类为 custom control 和 custom checkbox
  • 如何让FasterTransformer支持动态batch和动态sequence length

    FasterTransformer 算子 nvidia在开源的FasterTransformer的代码中 提供tensorrt和tensorflow的自定义算子编译和py调用示例 详见FasterTransformer py 但是如果使用t
  • openwrt编译环境搭建

    openwrt编译环境搭建 1 虚拟机安装 请参考网络上的资料进行安装 2 ubuntu安装 请参考网络上的资料进行安装 3 ubuntu下安装相关的编译环境 若是编译环境没有准备好 在后来的操作中会出现一些问题 sudoapt get i