ubuntu22.04下rv1109 rootfs编译问题处理

这篇具有很好参考价值的文章主要介绍了ubuntu22.04下rv1109 rootfs编译问题处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

buildroot编译出错记录

出于对Ubuntu新版本系统的体验,将系统更新到了ubuntu22.04了。然后在编译rv1109 sdk时出现了一些异常的错误。但是已经不回去了,只能硬着头皮一路走下去了。并将错误记录以下,以便下次有类似错误,做个参考。

问题一:c-stack.c的SIGSTKSZ错误

buildroot 报错:c-stack.c:55:26:error:missing binary operator before token “(“55

解决办法

在buildroot目录中找到c-stack.c文件,并更改c-stack.c文件中,SIGSTKSZ的宏定义。

find -name c-stack.c

gedit c-stack.c

将以下内容:

#ifndef SIGSTKSZ
# define SIGSTKSZ 16384
#elif HAVE_LIBSIGSEGV && SIGSTKSZ < 16384
/* libsigsegv 2.6 through 2.8 have a bug where some architectures use
   more than the Linux default of an 8k alternate stack when deciding
   if a fault was caused by stack overflow.  */
# undef SIGSTKSZ
# define SIGSTKSZ 16384
#endif

更改为:

#ifndef SIGSTKSZ
# define SIGSTKSZ 16384
//#elif HAVE_LIBSIGSEGV && SIGSTKSZ < 16384
/* libsigsegv 2.6 through 2.8 have a bug where some architectures use
   more than the Linux default of an 8k alternate stack when deciding
   if a fault was caused by stack overflow.  */
//# undef SIGSTKSZ
//# define SIGSTKSZ 16384
#endif

问题二:libfakeroot.c的_STAT_VER报错

libfakeroot.c:99:40: error: ‘_STAT_VER’ undeclared

解决办法

更改libfakeroot.c文件,添加宏定义

find -name libfakeroot.c

gedit libfakeroot.c

添加内容:

#ifndef _STAT_VER
 #if defined (__aarch64__)
  #define _STAT_VER 0
 #elif defined (__x86_64__)
  #define _STAT_VER 1
 #else
  #define _STAT_VER 3
 #endif
#endif

问题三:fwriter_buffer重复定义

read_fs.o:(.bss+0x0): multiple definition of `fwriter_buffer’; mksquashfs.o:(.bss+0x400be8):

解决办法

更改mksquashfs相关文件,去掉bwriter_buffer,与fwriter_buffer的定义,改为‘extern’。

find -name “mksquashfs*”

gedit mksquashfs.h

将:struct cache *bwriter_buffer, *fwriter_buffer;

改为: extern struct cache *bwriter_buffer, *fwriter_buffer;

gedit mksquashfs.c

将: struct cache *bwriter_buffer, *fwriter_buffer;

改为: //struct cache *bwriter_buffer, *fwriter_buffer;

问题四: qfloat16.h报错

qfloat16.h: numeric_limits’ is not a class template

解决办法

修改 Src/qtbase/src/corelib/global/qglobal.h

将:

#ifdef __cplusplus
#  include <type_traits>
#  include <cstddef>
#  include <utility>
#endif
#ifndef __ASSEMBLER__
#  include <assert.h>
#  include <stddef.h>
#endif

改为:

#ifdef __cplusplus
#  include <type_traits>
#  include <cstddef>
#  include <utility>
#  include <limits>
#endif
#ifndef __ASSEMBLER__
#  include <assert.h>
#  include <stddef.h>
#endif

问题五: makedevs无法创建设备节点

makedevs: line 27: can’t create node /dev/console: Operation not permitted

解决办法

经查找错误信息,是fakeroot执行fakeroot.fs时报的错。因为是升级了ubuntu系统,可能存在fakeroot版本过低导致。于是将fakeroot版本从1.20.2更新到了1.32.1.操作如下:

  1. 在git.buildroot.org中下载了最新的buildroot文件,在里面找到fakeroot目录下:fakeroot.hash与fakeroot.mk文件。
  2. 备份buildroot/package/fakeroot目录下原有文件。
  3. 将新的fakeroot.hash与fakeroot.mk文件拷贝到buildroot/package/fakeroot目录下。
  4. 重新编译,问题解决。

注意事项

在编译recovery时,也需要注意以上更新,否则也会报错。文章来源地址https://www.toymoban.com/news/detail-670849.html

到了这里,关于ubuntu22.04下rv1109 rootfs编译问题处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从头搭建Android源码编译环境(Ubuntu 18.04 / 20.04 / 22.04)

    在新安装的Ubuntu上(版本20.04LTS),完成搭建Android源码编译环境步骤如下。 顺带说一句,当前用的比较多的Ubuntu是18.04和20.04,在实际项目中一直在用,可用性和稳定性都没问题。 最新的Ubuntu22.04版本,系统默认的二进制库变化比较大,编译Android源码有问题(实测过,没细研

    2024年02月06日
    浏览(149)
  • Ubuntu22.04编译安装Mysql5.7.35

    新升级的ubuntu22.04版本,该版本默认openssl已经升级到3.0,所以编译过程遇到一些问题记录一下。 安装依赖 gcc g++已经安装过就不需要再安装了。 还有缺少其它依赖的相继安装就可以了。 编译openssl1.1.1 因为默认的openssl3.0,mysql执行cmake过程一直报错,所以手动下载openssl1.1.1编

    2024年02月11日
    浏览(32)
  • Openharmony3.2 源码编译(ubuntu 22.04) 过程记录

    OS: ubuntu 22.04 x64 1.1 安装码云repo工具 1.2 将repo添加到环境变量 1.3 获取源码 需有gitee.com 账号,同时设置好ssh 公钥登录(https://gitee.com/help/articles/4191#article-header0) 2.1 安装编译工具 2.2 将hb添加到环境变量 2.3 通过hb 选取板卡配置 解决方法: 2.4 编译 解决方法: 安装ninja 和 gn

    2024年02月08日
    浏览(42)
  • OpenWRT LEDE在Ubuntu22.04 编译全过程记录

    注, feeds用法 查看更新的订阅源信息,index file feeds/packages.index 【问题1】m4 编译错误 解决,参考博文 【问题2】 freadahead 异常 解决,参考博文 注意 : 参考博文中的 _IO_IN_BAXKUP 应该为 _IO_IN_BACKUP ,否则会导致下述报错,此文为正确写法 【问题3】 bison-3.0.4 相关错误 解决,参考

    2024年02月12日
    浏览(101)
  • linux平台下qt程序的编译以及使用linuxdeployqt打包可执行程序和在高版本22.04ubuntu下使用linuxdeployqt打包文件的问题

    写于2023.10.20 最近遇到了一个问题,需要把在windows下面写好的qt程序打包成linux可以运行的文件进行发布,而且最终目标和windows一样,要在一个近乎于纯净环境的机器上进行运行,故而有了这个博客,记录了我们小组攻克的一系列问题 由于是已经攻克过后才有的这一篇博客,

    2024年02月04日
    浏览(39)
  • 【Matter】基于Ubuntu 22.04 编译chip-tool工具

    编译过程有点曲折,做下记录,过程中,有参考别人写的博客,也看github 官方介绍,终于跑通了~ 环境说明: 首先需要稳定的梯子,可以访问“外网” ubuntu 环境,最终成功实验在Ubuntu 22.04,应该主要体现在python 库的版本要求 基础: 关于梯子,我使用的是虚拟机NAT方式上网

    2024年02月15日
    浏览(39)
  • Ubuntu22.04 交叉编译gcc9.5 for arm

    环境:ubuntu22.04为刚刚安装,未安装gcc等包 vi ~/.bashrc输入 保存,reboot 安装: 将/opt/gmp-6.1.0/install/lib目录下所有库文件拷贝到gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/lib/, 然后执行 删除cc 然后安装一些库,要不然编译不过 然后执行 问题:Oops, mp_limb_t is 64 bits,

    2024年02月08日
    浏览(36)
  • Ubuntu 22.04 搭建arm-linux-gcc交叉编译环境

    如果使用的是64位的Ubuntu系统,建议直接安装64位的arm-linux-gcc交叉编译器 下载地址: https://pan.baidu.com/s/14-lQpsXuEyCcHNHcTXcOyA 提取码: 55at 0. 注意在终端进行粘贴的操作为【Ctrl+shift+v】!! 把下载好的安装包移动到根目录下的tmp目录中(/tmp):在【其他位置】中的【计算机】中找

    2024年02月05日
    浏览(66)
  • Ubuntu22.04LTS编译Frida历史版本,环境配制及细节调整

    经常使用Frida的朋友们可能会遇到Frida的各种问题需要自定义的,而这时候Frida的本地编译就显得很重要了。 最近一位朋友发现使用Frida14/15/16版的server只能连拉一定数量的设备,超过了frida-device-manager便不能连接设备。 实现没有办法,我只好去修改源码,然后自己搭建编译环

    2024年02月19日
    浏览(44)
  • Ubuntu18.04/20.04/22.04的Apollo8.0软件包安装(免编译)

    本文主要介绍在如何使用软件包(即 deb 包)的方式来安装 Apollo,相对于源码方式安装,软件包安装方式不需要编译,更加快捷。但是对环境的支持比较单一,如果在自定义环境内安装,请移步源码安装方式 1. 安装 Ubuntu Linux 安装 Ubuntu 18.04+ 的步骤,参见 官方安装指南。 完

    2024年02月05日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包