Yocto монтирует образ initramfs / initrd в Raspberry Pi - PullRequest
0 голосов
/ 22 мая 2018

Используя инструменты на основе Yocto, я могу создать несколько файлов для развертывания.К ним относятся:

  • sdimg файл для записи на SD-карту
  • A cpio.gz архив (Initramfs)
  • Image-initramfs.bin (Initramfs)

Я бы хотел активировать plymouth на моей встраиваемой плате (Raspberry Pi) с дистрибутивом Linux на основе Yocto.Однако я не уверен, как смонтировать архив cpio.gz или Image-initramfs.bin.Я читал в Интернете, что vanilla Raspbian имеет запись в /config.txt в загрузочном разделе, например, initramfs <file.gz> <start_address>, а также параметр командной строки ядра в /cmdline.txt в загрузочном разделе, т.е. initrd=<file.gz>.

What I 'Мы уже пробовали использовать оба этих подхода.Я копирую файл 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

Я не знаю, что мне здесь не хватает.Все, что привлекает ваше внимание, пожалуйста, дайте мне знать.Любое руководство приветствуется.

1 Ответ

0 голосов
/ 29 июля 2018

Мне удалось загрузиться в initramfs, скопировав полученный архив .cpio.gz в загрузочный раздел карты SD.Затем я отредактировал опцию config.txt с

#initramfs initramf.gz 0x00800000

на

initramfs <name-of-the-copied-archive>.cpio.gz

После загрузки малины она теперь загружается в мой образ initramfs.

...