OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 61|回复: 2

rv1126b v1.0.1_20260206.tar.gz编译出错

[复制链接]

1

主题

2

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2025-6-21
在线时间
0 小时
发表于 昨天 10:28 | 显示全部楼层 |阅读模式
老师, 我下载的atk_dlrv1126b_linux6.1_sdk_release_v1.0.1_20260206.tar.gz解压后,编译出错,网上查找说是编译工具链损坏,请问如何解决。出错信息如下:
==========================================
          Start building U-Boot
==========================================
+ cd u-boot
+ ./make.sh CROSS_COMPILE=/home/yjh/rv1126b/atk_rv1126b_260206/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- alientek_rv1126b --spl-new
## make alientek_rv1126b_defconfig -j8
#
# configuration written to .config
#
scripts/kconfig/conf  --silentoldconfig Kconfig
  CHK     include/config.h
  CFG     u-boot.cfg
  GEN     include/autoconf.mk.dep
aarch64-none-linux-gnu-gcc: internal compiler error: Segmentation fault signal terminated program cc1
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://bugs.linaro.org/> for instructions.
  CFG     spl/u-boot.cfg
aarch64-none-linux-gnu-gcc: internal compiler error: Segmentation fault signal terminated program cc1
Please submit a full bug report,
with preprocessed source if appropriate.




回复

使用道具 举报

0

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2026-1-29
在线时间
11 小时
发表于 昨天 18:06 | 显示全部楼层
一、确认编译器完整性
检查编译器路径
确认路径 /home/yjh/rv1126b/atk_rv1126b_260206/prebuilts/gcc/... 下的编译器文件是否完整且可执行:

      

        
bash
复制
ls -l /home/yjh/rv1126b/atk_rv1126b_260206/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-

      
确保文件存在且具有可执行权限(x)。若缺失权限,添加执行权限:
      

        
bash
复制
chmod +x /path/to/aarch64-none-linux-gnu-gcc

      
验证编译器功能
运行以下命令测试编译器是否正常工作:

      

        
bash
复制
/path/to/aarch64-none-linux-gnu-gcc --version

      
如果输出版本信息(如 gcc version 10.3.0),说明编译器基本可用;否则需重新解压或安装。
二、修复损坏的工具链
重新解压SDK包
原始压缩包可能在下载或传输过程中损坏,导致预编译工具链文件异常。删除现有解压目录后重新解压:

      

        
bash
复制
rm -rf /home/yjh/rv1126b/atk_rv1126b_260206  # 谨慎操作,确认路径正确!
tar -xzf atk_dlrv1126b_linux6.1_sdk_release_v1.0.1_20260206.tar.gz

      
替换为官方工具链
若SDK自带工具链仍失败,可尝试使用ARM官方发布的 GNU Toolchain 替代:

下载适用于AArch64的 gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.xz。
解压后将路径指向新工具链的 bin 目录。
三、调整编译环境
降低并行线程数
段错误可能由内存不足引发,尤其是高并发编译时。修改编译命令减少线程数(例如从 -j8 改为 -j2):

      

        
bash
复制
./make.sh CROSS_COMPILE=... --spl-new -j2

      
检查系统资源

内存不足:运行 free -h 查看可用内存,确保至少有几GB空闲内存。
磁盘空间:确认临时目录(如 /tmp)剩余空间足够(至少10GB以上)。
四、兼容性与依赖检查
内核头文件匹配
某些嵌入式SDK要求主机系统的内核头文件版本与目标平台一致。尝试更新Ubuntu系统的内核开发包:

      

        
bash
复制
sudo apt update && sudo apt install build-essential linux-headers-$(uname -r)

      
禁用可能导致冲突的软件
部分安全软件(如AppArmor)可能限制编译器行为。临时关闭测试:

      

        
bash
复制
sudo systemctl stop apparmor
sudo systemctl disable apparmor

      
五、替代方案:Docker容器编译
如果本地环境复杂,可在干净的Docker镜像中编译:

      

        
bash
复制
docker run -it --rm -v $(pwd):/workspace arm64v8/ubuntu:20.04 \
    /bin/bash -c "cd /workspace && ./make.sh CROSS_COMPILE=..."

      
此方法隔离了宿主机环境干扰,避免因系统配置问题导致失败。

六、日志分析与进一步调试
收集详细日志
启用编译器诊断模式,生成更详细的错误报告:

      

        
bash
复制
export GCC_EXEC_PREFIX=/path/to/compiler/prefix
make ... V=1 2>&1 | tee build.log

      
将 build.log 提交给SDK供应商技术支持。

联系SDK维护方
若上述步骤均无效,可能是SDK本身的Bug。向阿尔派(Alientek)或芯片原厂(瑞芯微RV1126)反馈问题,附上错误日志和环境描述。

总结优先级排序
优先尝试:重新解压SDK → 切换官方工具链 → 降低编译并行度。
次选方案:检查系统资源 → 更新内核头文件 → 禁用安全软件。
终极手段:Docker容器编译 or 寻求厂商支持。
回复 支持 反对

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2025-6-21
在线时间
0 小时
 楼主| 发表于 昨天 18:14 | 显示全部楼层
问题解决了,重新下载atk_dlrv1126b_linux6.1_sdk_release_v1.2.0_20260320.tar.gz,解压后运行./build.sh, u-boot已经编译ok, 正在编译kernel.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /1 下一条

正点原子公众号

如发现本坛存在违规或侵权内容, 请点击这里发送邮件举报 (或致电020-38271790)。请提供侵权说明和联系方式。我们将及时审核依法处理,感谢配合。

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2026-3-27 16:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表