【发布时间】:2019-12-26 14:21:23
【问题描述】:
即使在获取了所有依赖项并从头开始构建目录之后,我仍然收到 Yocto 构建的几个 .bb 文件的 do_compile 错误。
ERROR: oe_runmake failed
ERROR: Function failed: do_compile (log file is located at
/home/fsl-community-bsp-jethro1/build/tmp/work/imx6q-poky-
linux-gnueabi/linux-fslc-imx/3.14-1.1.x+gitAUTOINC+327d5c9063-
r0/temp/log.do_compile.14224)
ERROR: Logfile of failure stored in: /home/fsl-community-bsp-
jethro1/build/tmp/work/imx6q-poky-linux-gnueabi/linux-fslc-
imx/3.14-1.1.x+gitAUTOINC+327d5c9063-r0/temp/log.do_compile.14224
整个日志消息如下:
Log data follows:
| DEBUG: Executing shell function do_compile
| NOTE: make -j 4 uImage CC=arm-poky-linux-gnueabi-gcc -mno-thumb-
interwork -marm -fuse-ld=bfd LD=arm-poky-linux-gnueabi-ld.bfd
LOADADDR=0x10008000
| CHK include/config/kernel.release
| GEN /home/fsl-community-bsp-
jethro1/build/tmp/work/imx6q-poky-linux-gnueabi/linux-fslc-imx/3.14-
1.1.x+gitAUTOINC+327d5c9063-r0/build/Makefile
| CHK include/generated/uapi/linux/version.h
| Using /home/fsl-community-bsp-jethro1/build/tmp/work-
shared/imx6qmyproject/kernel-source as source for kernel
| CHK include/generated/utsrelease.h
| make[3]: `include/generated/mach-types.h' is up to date.
| CC scripts/mod/empty.o
| CC scripts/mod/devicetable-offsets.s
| MKELF scripts/mod/elfconfig.h
| HOSTCC scripts/mod/modpost.o
| HOSTCC scripts/mod/sumversion.o
| CALL /home/fsl-community-bsp-jethro1/build/tmp/work-
shared/imx6qmyproject/kernel-source/scripts/checksyscalls.sh
| GEN scripts/mod/devicetable-offsets.h
| HOSTCC scripts/mod/file2alias.o
| HOSTLD scripts/mod/modpost
| CHK include/generated/compile.h
| CHK kernel/config_data.h
| Kernel: arch/arm/boot/Image is ready
| Kernel: arch/arm/boot/zImage is ready
| Image arch/arm/boot/uImage is ready
| NOTE: make -j 4 imx6q-myproject-ldo.dtb
| CC scripts/mod/empty.o
| CC scripts/mod/devicetable-offsets.s
| MKELF scripts/mod/elfconfig.h
| GEN scripts/mod/devicetable-offsets.h
| HOSTCC scripts/mod/modpost.o
| HOSTCC scripts/mod/sumversion.o
| HOSTCC scripts/mod/file2alias.o
| HOSTLD scripts/mod/modpost
解析一些路径后的最终make错误是:
| make[3]: *** No rule to make target `arch/arm/boot/dts/imx6q-
myproject-ldo.dtb'. Stop.
| make[2]: *** [imx6q-myproject-ldo.dtb] Error 2
| make[1]: *** [sub-make] Error 2
| make: *** [all] Error 2
| ERROR: oe_runmake failed
poky 中的 do_compile 函数如下:
| ERROR: Function failed: do_compile (log file is located at
/home/fsl-community-bsp-jethro1/build/tmp/work/imx6q-poky-linux-
gnueabi/linux-fslc-imx/3.14-1.1.x+gitAUTOINC+327d5c9063-
r0/temp/log.do_compile.14224)
最终的 Bitbake 任务错误读作:
ERROR: Task 47 (/home/fsl-community-bsp-jethro1/sources/meta-fsl-
arm/recipes-kernel/linux/linux-fslc-imx_3.14-1.1.x.bb, do_compile)
failed with exit code '1'
现在我的猜测是,交叉编译器没有被正确提及,或者它的路径没有被识别。或者可能是设备树文件的问题,其中 .bfd 文件和 .dtb 文件无法编译以在为 iMX6 ARM 处理器构建的 Linux 操作系统中提供最终的 dts 文件夹?
【问题讨论】:
-
您是否仔细检查过是否已将 dtb 规则正确添加到正确的内核 Makefile 中?
-
当我为 dtb 文件提供正确的路径并正确使用 make 命令时,问题得到了解决。
标签: gcc cross-compiling yocto bitbake