将core-image-minimal修改为仅生成rootfs

时间:2016-09-16 12:11:10

标签: yocto bitbake recipe

我正在研究Zedboard上的嵌入式项目。我想(至少现在)只使用Bitbake来生成正确的rootfs。我使用配方core-image-minimal,因为我只需要有限的员工。我怎么能告诉"它不能编译内核,不能生成u-boot等,只专注于rootfs?

这是我到目前为止所做的:

  1. 创建了我的构建环境
  2. 下载所需图层
  3. 修改了local.conf以将所需的包添加到rootfs
  4. 然后输入

    bitbake core-image-minimal
    

    我得到了我的rootfs,以及所有这些不必要的工作人员。我怎么能避免它?

4 个答案:

答案 0 :(得分:2)

我最近同样需要使用yocto构建rootfs,跳过其他内容,例如内核,uboot,图像创建等。有很多正当理由这样做。无论如何,这是你必须要做的:

bitbake core-image-minimal -c image_cpio

在krogoth中,这将填充build/tmp/work/$MACHINE/core-image-minimal/1.0-r0/中的 rootfs 目录,并在build/tmp/deploy/images/$MACHINE/

中创建 rootfs.cpio 文件

在morty中, rootfs.cpio 档案似乎在build/tmp/work/$MACHINE/core-image-minimal/1.0-r0/deploy-core-image-minimal-image-complete/

答案 1 :(得分:2)

有趣的概念。但是,根据我的观察,Yocto必须在内核中获取defconfig并在u-boot中对图像本身进行配置。因此,删除该进程将使rootfs无法启动。

由于我使用不同的内核为不同的机器编译,因此这些事情发生在我身上很多时间。我认为ARM图像将是相同的并且适用于所有机器,但我错了。

对于Debian,编译的映像需要使用内核的相应配置来编译rootfs才能工作。和Yocto是一样的。

答案 2 :(得分:2)

bitbake -e |grep IMAGE_FSTYPE

会给你一些类似的东西:

IMAGE_FSTYPES="tar.gz cpio cpio.gz.u-boot ...."

它是将生成的所有图像的列表,用于删除不需要的图像,在local.conf文件中使用:

IMAGE_FSTYPES_remove = " cpio cpio.gz.u-boot"

第一个元素之前的空格不是可选的。 此致

答案 3 :(得分:2)

如果您不想构建内核,请将首选的虚拟/内核提供程序设置为' linux-dummy'。