Yocto 修改核心映像极小值以仅生成rootfs

Yocto 修改核心映像极小值以仅生成rootfs,yocto,bitbake,recipe,Yocto,Bitbake,Recipe,我正在Zedboard上做一个嵌入式项目。我希望(至少现在)只使用Bitbake来生成正确的rootfs。我使用配方核心图像最小,因为我只需要有限数量的工作人员在那里。我如何“告诉”它不要编译内核,不要进行u-boot等等,而只关注rootfs呢 以下是我迄今为止所做的工作: 创建我的构建环境 下载所需的图层 修改local.conf以向rootfs添加所需的包 然后打字之后 bitbake core-image-minimal 我得到了我的支持,还有所有这些不必要的员工。如何避免它?我最近也

我正在Zedboard上做一个嵌入式项目。我希望(至少现在)只使用Bitbake来生成正确的rootfs。我使用配方核心图像最小,因为我只需要有限数量的工作人员在那里。我如何“告诉”它不要编译内核,不要进行u-boot等等,而只关注rootfs呢

以下是我迄今为止所做的工作:

  • 创建我的构建环境
  • 下载所需的图层
  • 修改local.conf以向rootfs添加所需的包
  • 然后打字之后

    bitbake core-image-minimal
    

    我得到了我的支持,还有所有这些不必要的员工。如何避免它?

    我最近也有同样的需求,只需要使用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-complete/
    有趣的概念中。然而,据我观察,Yocto必须在内核和u-boot中获得
    defconfig
    ,才能对映像本身进行配置。因此,删除该进程将使rootfs无法启动

    自从我使用不同的内核为不同的机器进行编译以来,这种情况在我身上发生了很多次。我原以为ARM图像将是相同的,适用于所有机器,但我错了

    对于Debian,编译的映像需要使用内核的相应配置来编译rootfs,以使其工作。约克托也是

    bitbake -e |grep IMAGE_FSTYPE
    
    将为您提供如下信息:

    IMAGE_FSTYPES="tar.gz cpio cpio.gz.u-boot ...."
    
    它是将生成的所有图像的列表,用于删除不需要的图像,在local.conf文件中使用:

    IMAGE_FSTYPES_remove = " cpio cpio.gz.u-boot"
    
    第一个元素前面的空格不是可选的。
    关于

    如果您不想构建内核,请将虚拟/内核的首选提供程序设置为“linux虚拟”。您在这里想要实现什么?缩短建立形象的时间?减少磁盘使用?按照计划,内核和u-boot只是构建过程中非常小的一部分,因此删除它们可能不会有太大的区别。大部分构建时间都花在构建编译器和libc上。我想用正确的方式做事情,我想更好地理解Yocto。正如您所说,时间并不重要,因为编译rootfs大约需要3小时,内核大约需要15分钟。正如我已经说过的,我只是忽略了来自Yocto的内核和U-boot,而只使用rootfs,它是有效的。可能是因为默认内核配置与我的类似。我会调查的,谢谢+1点重要的东西(我希望这不是违法的:))谢谢!稍后我将与morthy一起检查,并接受它是否有效。为什么该空间不是可选的?我们回到了制表符间距之类的好时光了吗?:)否,是因为已附加到现有列表。例如,如果列表是“abc”,并且您在没有空格的情况下附加了“def”,那么生成的列表将是“abcdef”,这不是我们想要的。