修改 core-image-minimal 以仅生成 rootfs
Modifying core-image-minimal to only make rootfs
我正在 Zedboard 上做一个嵌入式项目。我想(至少现在)只使用 Bitbake 来生成适当的 rootfs。我使用食谱 core-image-minimal,因为我只需要有限数量的员工。我如何才能 "tell" 不编译内核,不制作 u-boot 等,只关注 rootfs?
这是我到目前为止所做的:
- 创建了我的构建环境
- 已下载所需图层
- 已修改 local.conf 以将需要的包添加到 rootfs
然后输入后
bitbake core-image-minimal
我得到了我的 rootfs,以及所有这些不必要的工作人员。我怎样才能避免它?
我最近有同样的需要 只 使用 yocto 构建 rootfs,跳过内核、uboot、图像创建等其他东西。这样做有很多合理的理由.无论如何,这是你必须做的:
bitbake core-image-minimal -c image_cpio
在 krogoth 中,这将填充 build/tmp/work/$MACHINE/core-image-minimal/1.0-r0/
中的 rootfs 目录并在中创建一个 rootfs.cpio 文件build/tmp/deploy/images/$MACHINE/
在莫蒂,rootfs.cpio 档案似乎在 build/tmp/work/$MACHINE/core-image-minimal/1.0-r0/deploy-core-image-minimal-image-complete/
有趣的概念。然而,据我观察,Yocto 必须在内核和 u-boot 中获取 defconfig
才能对映像本身进行配置。因此,删除该进程将使 rootfs 无法启动。
这些对我来说发生了很多时间,因为我使用不同的内核为不同的机器编译。我以为 ARM 映像是相同的并且适用于所有机器,但我错了。
对于Debian,编译出来的image需要使用kernel对应的配置来编译rootfs才能正常工作。 Yocto也是一样。
bitbake -e |grep IMAGE_FSTYPE
会给你类似的东西:
IMAGE_FSTYPES="tar.gz cpio cpio.gz.u-boot ...."
它是将生成的所有图像的列表,要删除不需要的图像,在 local.conf 文件中使用:
IMAGE_FSTYPES_remove = " cpio cpio.gz.u-boot"
第一个元素之前的 space 不是可选的。
此致
如果您不想构建内核,请将 virtual/kernel 的首选提供程序设置为 'linux-dummy'。
我正在 Zedboard 上做一个嵌入式项目。我想(至少现在)只使用 Bitbake 来生成适当的 rootfs。我使用食谱 core-image-minimal,因为我只需要有限数量的员工。我如何才能 "tell" 不编译内核,不制作 u-boot 等,只关注 rootfs?
这是我到目前为止所做的:
- 创建了我的构建环境
- 已下载所需图层
- 已修改 local.conf 以将需要的包添加到 rootfs
然后输入后
bitbake core-image-minimal
我得到了我的 rootfs,以及所有这些不必要的工作人员。我怎样才能避免它?
我最近有同样的需要 只 使用 yocto 构建 rootfs,跳过内核、uboot、图像创建等其他东西。这样做有很多合理的理由.无论如何,这是你必须做的:
bitbake core-image-minimal -c image_cpio
在 krogoth 中,这将填充 build/tmp/work/$MACHINE/core-image-minimal/1.0-r0/
中的 rootfs 目录并在中创建一个 rootfs.cpio 文件build/tmp/deploy/images/$MACHINE/
在莫蒂,rootfs.cpio 档案似乎在 build/tmp/work/$MACHINE/core-image-minimal/1.0-r0/deploy-core-image-minimal-image-complete/
有趣的概念。然而,据我观察,Yocto 必须在内核和 u-boot 中获取 defconfig
才能对映像本身进行配置。因此,删除该进程将使 rootfs 无法启动。
这些对我来说发生了很多时间,因为我使用不同的内核为不同的机器编译。我以为 ARM 映像是相同的并且适用于所有机器,但我错了。
对于Debian,编译出来的image需要使用kernel对应的配置来编译rootfs才能正常工作。 Yocto也是一样。
bitbake -e |grep IMAGE_FSTYPE
会给你类似的东西:
IMAGE_FSTYPES="tar.gz cpio cpio.gz.u-boot ...."
它是将生成的所有图像的列表,要删除不需要的图像,在 local.conf 文件中使用:
IMAGE_FSTYPES_remove = " cpio cpio.gz.u-boot"
第一个元素之前的 space 不是可选的。 此致
如果您不想构建内核,请将 virtual/kernel 的首选提供程序设置为 'linux-dummy'。