gpt4 book ai didi

linux-kernel - Yocto 将 initramfs/initrd 镜像挂载到 Raspberry Pi

转载 作者:行者123 更新时间:2023-12-04 13:44:57 31 4
gpt4 key购买 nike

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

  • sdimg用于写入 SD 卡的文件
  • 一个 cpio.gz存档 (Initramfs)
  • Image-initramfs.bin (Initramfs)

  • 我想使用基于 Yocto 的 Linux 发行版在我的嵌入式板 (Raspberry Pi) 中激活 plymouth。但是我不确定如何安装 cpio.gz存档或 Image-initramfs.bin .我在网上读到 Vanilla Raspbian 在 /config.txt 中有一个条目。在引导分区中,即 initramfs <file.gz> <start_address>以及 /cmdline.txt 中的内核命令行选项在引导分区中,即 initrd=<file.gz> .

    到目前为止,我所尝试的都涉及这两种方法。我复制了 cpio.gz文件到 /boot在根文件系统分区中并配置上述文件,这不起作用。分解它,这是它的外观:
     + Boot Partition
    + ---- overlays/
    + ---- config.txt
    + ---- cmdline.txt
    + ---- kernel.img

    + 1.2GB Volume (rootfs)
    + ---- bin/
    + ---- boot/
    +--- <file>.cpio.gz
    + ---- var/
    + ---- usr/
    ....

    现在,在 config.txt ,我有类似的东西(尝试了很多变体):
    initramfs <file>.cpio.gz 0x00a00000
    ramfsfile="<file>.cpio.gz"
    ramfsaddr=0x00a00000

    cmdline.txt , 我有:
    initrd=<file>.cpio.gz dwc_otg.lpm_enable=0 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait    

    然而,内核甚至给出错误都不够。这意味着,系统正常启动,并且没有使用 initramfs 的迹象。

    我用 yocto 编译的内核如下:
    #> uname -a 
    #> Linux raspberrypi0-wifi 4.9.77-rt61 #11 PREEMPT RT Tue May 22 01:14:26 +03 2018 armv6l armv6l armv6l GNU/Linux

    启用以下内核配置参数:
    #> 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 <name-of-the-copied-archive>.cpio.gz

    启动树莓派后,它现在会启动到我的 initramfs 镜像中。

    关于linux-kernel - Yocto 将 initramfs/initrd 镜像挂载到 Raspberry Pi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50466075/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com