初次编译rk3568(rk3576)Linux 6.1内核踩坑记录:从报错终止到成功解决的完整流程

电子说

1.4w人已加入

描述

 

 

很多刚接触瑞芯微 rk 系列芯片开发的小伙伴,在初次编译基于 Linux 6.1 内核的系统时,很容易因为环境依赖问题卡壳。最近我在编译 rk3576rk3568 流程类似)Linux 6.1 内核时就遇到了典型报错,从定位问题到最终解决踩了不少小坑,今天把完整过程整理出来,帮大家少走弯路。

Linux

一、问题突发:编译中途突然报错终止

 

按照官方文档配置好编译环境后,我执行了内核编译命令,一开始流程正常,直到终端突然弹出一连串错误信息,编译直接终止。

 

 

仔细看报错日志,核心提示有两个:

 

 

1.明确指出“Your gmp header is missing”—— 也就是 gmp 相关的头文件缺失();

 

 

2.后续跟着一系列执行失败的日志,比如“Running /home/sc/rk3576_linux/device/rockchip/common/scripts/mk-kernel.sh - do_build failed!”,且 exit code 为 1(、),这说明是依赖缺失导致编译脚本执行失败。

 

 

其实到这里,报错信息已经很贴心” 了 —— 不仅告诉我们缺什么,还直接给了解决方案。

Linux

二、定位关键:跟着报错提示找解决方案

 

“gmp header is missing” 这句话下面,终端直接给出了安装命令:“Please install it: sudo apt-get install libgmp-dev”(、)。

 

 

这里要划个重点:Linux 下编译报错时,先仔细看报错日志的 建议操作,很多时候官方或编译器已经把解决方案直接写在日志里了,不用盲目去搜教程。

 

 

我当时没多想,直接复制了这个命令开始执行,没想到后续还有个小插曲。

 

 

三、解决步骤:执行安装 + 验证,遇到小问题再调整

 

第一步:执行依赖安装命令

 

在终端输入报错提示里的命令:

 

 

sudo apt-get install libgmp-dev()

 

 

输入 sudo 密码后,系统会自动开始处理:

 

 

先读取软件包列表,分析依赖关系(、);

 

 

然后提示会同时安装 libgmpxx4ldbl”,这是 libgmp-dev 的依赖包,属于正常情况();

 

 

最终确认新安装 个软件包。

 

 

输入“y” 确认后,系统开始下载并自动安装,最后提示 正在处理用于 libc-bin 的触发器,看起来安装成功了。

 

 

第二步:重新编译仍报错?试试环境重置

 

本以为安装完就能正常编译,结果重新执行编译命令后,报错依然存在。这时候我才意识到,可能是之前的编译缓存或环境变量没刷新,于是做了两个操作:

 

 

1.卸载无效依赖并重新安装

 

 

先尝试卸载可能冲突的 libmpc-dev(虽然终端提示 “libmpc-dev 未安装,不会被卸载)(到),再重新执行sudo apt-get install libmpc-dev,确保相关依赖完整()。

 

 

2.补充安装环境变量相关工具

Linux

因为报这个错误,后来看了一下源码目录就有这个依赖,基本上是环境配置没配好

Linux

参考瑞芯微编译环境的常见配置,又执行了两个命令:

Linux

 

 

 

sudo apt-get install binfmt-support qemu-user-static(用于处理不同架构的二进制文件,);

 

 

sudo dpkg -i ubuntu-build-service/packages/* sudo apt-get install -f(修复 deb 包依赖,确保环境变量配置正确,、)。

 

 

做完这些后,我关闭了当前终端重新打开(刷新环境变量),再次执行编译命令—— 这次终于顺利跑通,没有再出现报错!

 

 

四、总结:初次编译 rk 内核的 个避坑要点

 

1.优先看报错日志的直接提示

 

 

像这次的 gmp 头文件缺失,报错里直接给了安装命令,跟着做就能解决 80% 的问题,不用一开始就去搜复杂的教程。

 

 

2.依赖安装后记得刷新环境

 

 

有时候依赖安装成功了,但编译脚本读不到新安装的文件,关闭终端重新打开、或执行source /etc/profile刷新环境变量,往往能解决安装了还报错” 的问题。

 

 

如果大家在编译 rk3568/3576 等芯片的 Linux 内核时,遇到类似的依赖报错,不妨按照这个流程试试。如果还有其他踩坑经历,欢迎在评论区交流,一起帮更多开发者避坑~

 


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分