Linux kernel Yocto将initramfs/initrd映像装载到Raspberry Pi
使用基于Yocto的工具,我能够生成几个用于部署的文件。这些措施包括: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中有一个条目,即
用于写入SD卡的文件sdimg
- A
archive(Initramfs)cpio.gz
(initramfs)Image initramfs.bin
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