embedded-linux - bitbake 不生成 zImage 文件
问题描述
几天来,我一直在 bitbake 中运行 Yocto 构建,但我注意到它有时会停止生成内核的 zImage 文件。我所做的大部分更改都是针对内核配置和 machine.conf 文件。发生这种情况时,我仍然会在每次构建时获得更新的 tar.gz 文件,但 zImage 会停止更新。运行 do_clean、do_cleanall 和 do_cleansstate 任务没有帮助,从 build/tmp/deploy 中删除旧的 zImage 文件也没有帮助。唯一有用的是删除整个 pocky/build/tmp 目录并从头开始重建整个项目。这是我当前的 machine.conf 文件:
#@TYPE: Machine
#@Name: EMAC, Inc. SoM-9G45M Module
#@DESCRIPTION: Machine.inc configuration for the SoM-9G45M board with a at91sam9g45 processor
TARGET_ARCH = "arm"
PREFERRED_PROVIDER_virtual/kernel = "linux-2.6.30-at91-emac"
PREFERRED_PROVIDER_xserver = "xserver-kdrive"
KERNEL_IMAGETYPE = "zImage"
KERNEL_EXTRA_ARGS = "LOADADDR=0x74000000"
#don't try to access tty1
USE_VT = "0"
MACHINE_FEATURES = "kernel26 apm alsa ext2 usbhost usbgadget"
KERNEL_DEVICETREE = "at91som9g45.dtb"
# used by sysvinit_2
#SERIAL_CONSOLE = "115200 ttyS1"
SERIAL_CONSOLE = "115200 ttyS0"
#SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1"
#SYSLINUX_DEFAULT_CONSOLE = "console=ttyS0"
#SYSLINUX_SERIAL = "0 115200"
#SYSLINUX_SERIAL_TTY = "console=ttyS0,115200"
#EXTRA_IMAGECMD_jffs2 = "--pad=0xA00000 --little-endian --eraseblock=0x20000"
# NAND
MKUBIFS_ARGS = " -e 129024 -c 2047 -m 2048 -x lzo"
UBINIZE_ARGS = " -m 2048 -p 128KiB -s 512"
UBI_VOLNAME = "rootfs"
UBOOT_MACHINE = "${MACHINE}_nandflash_config"
UBOOT_ENTRYPOINT = "0x74000000"
UBOOT_LOADADDRESS = "0x74000000"
require include/at91sam9.inc
什么会导致 bitbake 构建停止生成指定的内核映像,我该如何解决?
解决方案
答案最终分为两部分。
首先运行bitbake -c do_cleansstate linux-at91
然后bitbake core-image-sato
成功重新生成zImage文件。
其次,linux-2.6.30-at91-emac
不正确,因为我的 kerenl 刚刚被调用linux-at91
。因此,我的内核构建可能仅在我为其他机器运行构建时才运行。
所以我的完整映像构建并没有重建内核,因为我引用了不同的内核。一旦我解决了这个问题,内核构建将再次开始运行。我不确定我是如何获得 zImage 的,或者为什么 bitbake 在被告知构建一个不存在的内核后从未抛出错误。
推荐阅读
- python-2.7 - 是否可以在 GUI 之外使用数据?
- python - 使用 unique_together 并保存经过身份验证的用户时出现问题
- ember.js - Ember init 无法识别 _super
- entity-framework - 如何从使用 EF 核心的父级获取所有子元素
- reactjs - 反应路由器路由特定创建存储,而不是在单页应用程序中加载页面加载时的所有状态
- python - 如何在本地运行我的 Cloud Run 服务?
- asp.net-core - 无法解析类型“Data.ApplicationDbContext”的服务
- c - 为什么会发生这种情况?(C 编程错误)
- javascript - IE 抛出预期的冒号错误,在 Chrome 中有效吗?具有对象字面量和函数的对象数组
- python-3.x - 错误:在执行 pip3 install python-geohash 时,命令“x86_64-linux-gnu-gcc”失败,退出状态为 1