Ubuntu下编译openwrt的过程出错及解决

目录

1、官方下载源码

2、./scripts/feeds update -a失败了提示error: RPC failed

3、./scripts/feeds update -a失败了:

4、./scripts/feeds update -a失败了提示'https://git.openwrt.org/feed/packages.git/“:服务器证书验证失败

5、make menuconfig时提示“Error opening terminal: linux.Makefile:115: recipe for target 'menuconfig' failed”的解决方法

6、提示gcc要安装6版本以上。

7、提示python要安装3.6版本以上。

8、make v=99最后一步编译固件出错(以下修改注意路径)


1、官方下载源码

 官网下载源码

https://openwrt.org/下面是当前稳定版本

或者用官网命令下载

 第一个我下载不了https://git.openwrt.org/openwrt/openwrt.git

解决

用的是第二个git clone https://github.com/openwrt/openwrt.git

2、./scripts/feeds update -a失败了提示error: RPC failed

 解决

vi feeds.conf.default

将https修改成git,如图

3、./scripts/feeds update -a失败了:

解决

git config --global url."https://github.com".insteadOf git://github.com

4、./scripts/feeds update -a失败了提示'https://git.openwrt.org/feed/packages.git/“:服务器证书验证失败

解决

export GIT_SSL_NO_VERIFY=1

或,(可能上面的没那么好,建议用下面的)

git config --global http.sslverify false

5、make menuconfig时提示“Error opening terminal: linux.
Makefile:115: recipe for target 'menuconfig' failed”的解决方法

#一般都是TERM TERMINFO这两个环境变量错误引起的
#可以用echo $TERM 和echo $TERMINFO 查看是否正确
$ export TERM=vt100
$ export TERMINFO=/usr/share/terminfo

#再执行make menuconfig 基本即可正常
#如果还有问题,查看下ncurses库是否安装
$dpkg -l | grep ncurses
ii  lib32ncurses5                          5.9-4                                               shared libraries for terminal handling (32-bit)
ii  libncurses5                            5.9-4                                               shared libraries for terminal handling
ii  libncurses5:i386                       5.9-4                                               shared libraries for terminal handling
ii  libncurses5-dev                        5.9-4                                               developer's libraries for ncurses
ii  libncursesw5                           5.9-4                                               shared libraries for terminal handling (wide character support)
ii  libncursesw5:i386                      5.9-4                                               shared libraries for terminal handling (wide character support)
ii  mtr-tiny                               0.80-1ubuntu1                                       Full screen ncurses traceroute tool
ii  ncurses-base                           5.9-4                                               basic terminal type definitions
ii  ncurses-bin                            5.9-4                                               terminal-related programs and man pages
ii  ncurses-term                           5.9-4                                               additional terminal type definitions
#如果未安装使用apt-get install 命令安装此库

原文:make menuconfig时提示“error opening terminal”的解决方法_a193314的专栏-CSDN博客

6、提示gcc要安装6版本以上。

解决

跟着网站安装,第一个是我参考第二个网站安装的过程的文章

Ubuntu16.04下安装编译gcc10.1.0_m0_60027682的博客-CSDN博客

GCC编译器下载和安装教程(针对Linux发行版)

如果已经安装了几个版本,只是需要换版本

http://t.csdn.cn/CG8LD

7、提示python要安装3.6版本以上。

网上找教程安装把

8、make v=99最后一步编译固件出错(以下修改注意路径)

/home/eruikeict/WORKDIR/openwrt/build_dir/host/cmake-3.21.3/Bootstrap.cmk/cmake: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /home/eruikeict/WORKDIR/openwrt/build_dir/host/cmake-3.21.3/Bootstrap.cmk/cmake)

解决:

1)strings /usr/lib64/libstdc++.so.6 |grep GLIBCXX 得到结果:

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_DEBUG_MESSAGE_LENGTH

2)sudo  find / -name  libstdc++.so.6* 得到结果:

/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.13-gdb.pyc
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.13-gdb.pyo
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.13-gdb.py
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.13-gdb.pyc
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.13-gdb.pyo
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.13-gdb.py
/usr/lib64/libstdc++.so.6.bak
/usr/lib64/libstdc++.so.6.0.17
/usr/lib64/libstdc++.so.6.0.13
/usr/lib64/libstdc++.so.6
/usr/local/lib64/libstdc++.so.6.0.18
/usr/local/lib64/libstdc++.so.6.0.18-gdb.py
/usr/local/lib64/libstdc++.so.6.0.20
/usr/local/lib64/libstdc++.so.6.0.20-gdb.py
/usr/local/lib64/libstdc++.so.6

可以看到,已经有libstdc++.so.6.0.20(选较高版本)

3)ls -al /usr/lib64/libstdc++.so.6 得到结果:

lrwxrwxrwx. 1 root root 30 11月 16 11:31 /usr/lib64/libstdc++.so.6 -> /usr/lib64/libstdc++.so.6.0.17

说明虽然gcc已经更新到最新版,但是连接还是旧版本,所以只需要修改连接就可以了。

解决方案步骤(注意路径):

1)sudo cp /usr/local/lib64/libstdc++.so.6.0.20 /usr/lib64  //复制文件

2)sudo rm -rf /usr/lib64/libstdc++.so.6  //删除旧文件

3)sudo ln -s /usr/lib64/libstdc++.so.6.0.20 /usr/lib64/libstdc++.so.6 //链接到新版本

原文:

Linux-GLIBCXX版本过低导致编译错误--version `GLIBCXX_3.4.20' not found - Twinhead - 博客园

最后看到编译成功了,进目录ls -l bin/targets/ath79/tiny/发现openwrt-ath79-tiny-tplink_tl-wr841-v9-squashfs-factory.bin的固件没有,往上面找一下,可以看到在编译中有错误[mktplinkfw] *** error: images are too big by 758862 bytes,原因是生成的固件大于flash的容量,所以要修改flash的大小。

解决

vi target/linux/ath79/image/tiny-tp-link.mk

找到对应的型号,把4改成16,就可以继续编译了

当编译成功后,将固件烧录进板子,如果出现文件格式错误

移步openwrt.21.05烧录固件板子提示文件格式错误_小蚂蚁t的博客-CSDN博客

  • 22
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenWrt编译过程可以分为以下几个步骤进行分析: 1. 克隆代码:首先需要克隆OpenWrt的源代码,这可以通过代码来源中提供的链接进行获取。通过克隆源代码,可以获取到OpenWrt的全部代码和文件。 2. 更新feeds文件:在编译之前,需要更新feeds文件,这些文件包含了OpenWrt软件包的信息。可以通过执行"feeds update"命令来更新这些文件。 3. 安装feeds软件包:一旦feeds文件更新完成,可以执行"feeds install"命令来安装软件包。这些软件包是OpenWrt系统所需的依赖项。 4. 配置编译选项:可以通过执行"make menuconfig"命令来配置编译选项。这个命令会打开一个交互式的菜单界面,可以在其中选择需要的功能和组件。 5. 下载依赖项:执行"make download"命令来下载OpenWrt系统所需的所有依赖项。这些依赖项包括内核、工具链等。 6. 开始编译:执行"make"命令来开始编译OpenWrt系统。这个过程可能需要一些时间,具体时间取决于编译机器的性能和所选择的功能和组件。 7. 再次编译:如果在编译过程中修改了某些配置选项,可以执行"make"命令来再次编译OpenWrt系统,以使修改生效。 8. 清理:可以执行"make clean"命令来清除编译过程中生成的临时文件和编译结果,以便重新开始编译或释放磁盘空间。 需要注意的是,以上步骤仅是OpenWrt编译过程的一般分析,具体的步骤和命令可能会因个人需求和环境而有所不同。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [OpenWrt开发入门培训视频.zip](https://download.csdn.net/download/m0_60797416/81742575)[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: 33.333333333333336%"] - *2* [【记录】openwrt - 编译过程梳理](https://blog.csdn.net/LawssssCat/article/details/107305357)[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: 33.333333333333336%"] - *3* [openwrt编译流程分析](https://blog.csdn.net/alimingh/article/details/113848679)[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: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值