当前位置: 首页 > news >正文

A33-vstar报错记录:ERROR: build kernel Failed

解决ERROR: build kernel Failed

在编译了多次发现,每次都是在编译完了lcd.ko之后会弹出这个问题在这里插入图片描述

主要是就报了这个ERROR: build kernel Failed错误提示,但是没有报详细的错误,与我平时编译器直接报错的方式不同,但这也是一种经验的累积和成长,好消息是,我最终解决了这个问题.

解释错误

首先我发现每次都是在编译完lcd.ko这个模块后报错的,而这个是单独在Linux-3.4后出现的,也就是我们先找到这行命令,这行编译完内核代码后的命令

第一步:查找“build kernel Failed”出处

grep -rn "build kernel Failed" buildroot/

执行后显示:

qin@qin-ubuntu:~/vstar/Linux-SDK/dragonboard$ grep -rn "build kernel Failed" buildroot/
buildroot/scripts/mkcmd.sh:362:    [ $? -ne 0 ] && mk_error "build kernel Failed" && return 1
qin@qin-ubuntu:~/vstar/Linux-SDK/dragonboard$ 

我们发现报错位置在buildroot/scripts/mkcmd.sh:362,也就是在mkcmd.sh
这个文件的362行处,这行的内容:

(cd ${LICHEE_KERN_DIR} && [ -x ${build_script} ] && ./${build_script})
[ $? -ne 0 ] && mk_error "build kernel Failed" && return 1

我们发现,是执行了build_script这个脚本

第二步 我们要知道 ${build_script} 是什么脚本

现在执行这个命令,查看 build_script 的值:

grep build_script buildroot/scripts/mkcmd.sh | grep '='

输出:

qin@qin-ubuntu:~/vstar/Linux-SDK/dragonboard$ grep build_script buildroot/scripts/mkcmd.sh | grep '='local build_script="scripts/build.sh"local build_script="scripts/build.sh"local build_script="scripts/build.sh"local build_script="scripts/build.sh"
qin@qin-ubuntu:~/vstar/Linux-SDK/dragonboard$ 

现在我们可以确认:buildroot/scripts/mkcmd.sh 中执行的就是:

cd ${LICHEE_KERN_DIR} && ./scripts/build.sh

那么,我们来单独执行这条命令:

cd linux-3.4
./scripts/build.sh

输出错误:

qin@qin-ubuntu:~/vstar/Linux-SDK/dragonboard$ cd linux-3.4
./scripts/build.sh
make: arm-linux-gnueabi-gcc: 没有那个文件或目录
Building kernel
make: arm-linux-gnueabi-gcc: 没有那个文件或目录CHK     include/linux/version.hCHK     include/generated/utsrelease.hCC      scripts/mod/empty.o
/bin/sh: 1: arm-linux-gnueabi-gcc: not found
make[2]: *** [scripts/Makefile.build:308:scripts/mod/empty.o] 错误 127
make[1]: “include/generated/mach-types.h”已是最新。
make[1]: *** [scripts/Makefile.build:443:scripts/mod] 错误 2
make[1]: *** 正在等待未完成的任务....
make: *** [Makefile:506:scripts] 错误 2
make: *** 正在等待未完成的任务....CC      kernel/bounds.s
/bin/sh: 1: arm-linux-gnueabi-gcc: not found
make[1]: *** [/home/qin/vstar/Linux-SDK/dragonboard/linux-3.4/./Kbuild:36:kernel/bounds.s] 错误 127
make: *** [Makefile:985:prepare0] 错误 2
qin@qin-ubuntu:~/vstar/Linux-SDK/dragonboard/linux-3.4$ 

我们从错误就已经可以看到问题所在:当前环境下 找不到交叉编译工具链 arm-linux-gnueabi-gcc,导致内核 scripts/build.sh 脚本失败,最终 build.sh 脚本才会报 build kernel Failed。
说白了,就是交叉编译环境没有弄好。

解决问题

其实我一开始是弄了环境变量的,但是很乱,直接把交叉编译环境的绝对路径加到build.sh的前面就行:

export ARCH=arm
export CROSS_COMPILE=/home/qin/vstar/Linux-SDK/dragonboard/brandy/gcc-linaro/bin/arm-linux-gnueabi-
export PATH=/home/qin/vstar/Linux-SDK/dragonboard/brandy/gcc-linaro/bin:$PATH

或者直接加到build.sh中:

#!/bin/bash# 进入脚本所在目录,保证相对路径正确
cd "$(dirname "$0")"# 交叉编译器路径(相对路径,根据你的目录结构调整)
export CROSS_COMPILE="$(pwd)/brandy/gcc-linaro/bin/arm-linux-gnueabi-"
export PATH="$(pwd)/brandy/gcc-linaro/bin:$PATH"
export ARCH=arm# 你的后续build脚本逻辑...
buildroot/scripts/mkcommon.sh "$@"

这个用的是相对路径,会比较通用

http://www.dtcms.com/a/285933.html

相关文章:

  • 北京-4年功能测试2年空窗-报培训班学测开-第五十四天
  • (笔记+作业)第五期书生大模型实战营---L2G2000 GraphGen:训练数据合成实践
  • U盘运维笔记
  • 前端-CSS盒模型
  • 源鉴SCA4.9︱多模态SCA引擎重磅升级,开源风险深度治理能力再次进阶
  • world models and Human–Object Interaction (HOI)
  • Ubuntu locale命令介绍(查询和设置当前用户的语言、国家/地区以及字符编码等环境设置)
  • Windows 安装WSL +Docker 部署通义千问大模型(同步解决Ubuntu启动命令闪退)
  • 注册表单案例
  • Android性能优化之内存优化
  • HTML常见标签
  • 零售快销行业中线下巡店AI是如何颠覆传统计算机视觉识别的详细解决方案
  • Thymeleaf与Spring Boot深度集成与性能优化实战
  • 深度学习模型开发部署全流程:以YOLOv11目标检测任务为例
  • JavaScript解构性能解密:数组与对象解构的隐藏性能差异
  • 计算机视觉:AI 的 “眼睛” 如何看懂世界?
  • Sui 在非洲增长最快的科技市场开设 SuiHub Lagos 以推动创新
  • 质变科技亮相可信数据库发展大会,参编《数据库发展研究报告2025》
  • 《Python Web 框架深度剖析:Django、Flask 与 FastAPI 的选择之道》
  • web开发-HTML
  • Linux入门篇学习——借助 U 盘或 TF 卡拷贝程序到开发板上
  • Vue3 从 0 到 ∞:Composition API 的底层哲学、渲染管线与生态演进全景
  • *SFT深度实践指南:从数据构建到模型部署的全流程解析
  • 算法提升之字符串练习-03(KMP)
  • docker,防火墙关闭后,未重启docker,导致端口映射失败
  • 【51】MFC入门到精通——MFC串口助手(一)---初级版(串口设置、初始化、打开/关闭、状态显示),附源码
  • Java异步日志系统性能优化实践指南:基于Log4j2异步Appender与Disruptor
  • 鸿蒙实现一次上传多张图片
  • 物流3D工业相机:解锁自动化物流新纪元
  • 第三章-提示词-初级:一文带你入门提示词工程,开启AI高效交互之旅(11/36)