bitbake 不生成 zImage 文件
bitbake not producing a zImage file
我已经 运行 在 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
。因此,当我 运行 为其他机器构建时,我的内核构建可能只是 运行。
所以我的完整映像构建并没有重建内核,因为我引用了不同的内核。一旦我解决了这个问题,内核构建将再次开始 运行ning。我不确定我最初是如何获得 zImage 的,或者为什么 bitbake 在被告知构建一个不存在的内核后从未抛出错误。
我已经 运行 在 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
。因此,当我 运行 为其他机器构建时,我的内核构建可能只是 运行。
所以我的完整映像构建并没有重建内核,因为我引用了不同的内核。一旦我解决了这个问题,内核构建将再次开始 运行ning。我不确定我最初是如何获得 zImage 的,或者为什么 bitbake 在被告知构建一个不存在的内核后从未抛出错误。