Linux kernel Yocto将initramfs/initrd映像装载到Raspberry Pi

Linux kernel Yocto将initramfs/initrd映像装载到Raspberry Pi,linux-kernel,raspberry-pi,init,yocto,boot,Linux Kernel,Raspberry Pi,Init,Yocto,Boot,使用基于Yocto的工具,我能够生成几个用于部署的文件。这些措施包括: sdimg用于写入SD卡的文件 Acpio.gzarchive(Initramfs) Image initramfs.bin(initramfs) 我想用基于Yocto的Linux发行版在我的嵌入式主板(Raspberry Pi)中激活普利茅斯。但是,我不知道如何装载cpio.gz归档文件或Image initramfs.bin。我在线读到vanilla Raspbian在引导分区的/config.txt中有一个条目,即

使用基于Yocto的工具,我能够生成几个用于部署的文件。这些措施包括:

  • sdimg
    用于写入SD卡的文件
  • A
    cpio.gz
    archive(Initramfs)
  • Image initramfs.bin
    (initramfs)
我想用基于Yocto的Linux发行版在我的嵌入式主板(Raspberry Pi)中激活普利茅斯。但是,我不知道如何装载
cpio.gz
归档文件或
Image initramfs.bin
。我在线读到vanilla Raspbian在引导分区的
/config.txt
中有一个条目,即
initramfs
,在引导分区的
/cmdline.txt
中也有一个内核命令行选项,即
initrd=

到目前为止,我尝试的是这两种方法。我将
cpio.gz
文件复制到根文件系统分区中的
/boot
,并配置上述文件,但这些文件不起作用。要分解它,下面是它的外观:

 + Boot Partition
 + ---- overlays/
 + ---- config.txt
 + ---- cmdline.txt
 + ---- kernel.img

 + 1.2GB Volume (rootfs)
 + ---- bin/
 + ---- boot/
        +--- <file>.cpio.gz
 + ---- var/
 + ---- usr/
        ....
cmdline.txt
中,我有:

initrd=<file>.cpio.gz dwc_otg.lpm_enable=0 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait    
已启用以下内核配置参数:

#> modprobe configs
#> cat /proc/config.gz | gunzip > kernelconf.txt
...
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_RD_GZIP=y

我不知道我错过了什么。任何引起你注意的事情,请告诉我。非常感谢您的指导。

我能够通过将生成的.cpio.gz归档文件复制到sd卡的启动分区来启动initramfs。 然后,我从中编辑了config.txt选项

#initramfs initramf.gz 0x00800000

initramfs.cpio.gz

启动覆盆子后,它现在进入我的initramfs图像。

我只是注意到一些奇怪的东西。Initramfs应该在rootfs挂载到之前,我必须将cpio.gz移动到引导分区,即使它没有足够的空间。我认为这是正确的做法。之后我会更新问题。还是一样的行为。像往常一样启动,但没有initramfs的迹象。我已经解决了这个问题。我会更新的,你发现了吗?我正试着做同样的事情。谢谢
#> modprobe configs
#> cat /proc/config.gz | gunzip > kernelconf.txt
...
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_RD_GZIP=y
#initramfs initramf.gz 0x00800000
initramfs <name-of-the-copied-archive>.cpio.gz