Доступ к функциям initramfs-tools в образе initramfs, созданном Yocto
Я хотел бы загрузить несколько модулей ядра и активировать доступ к кадровому буферу перед запуском Plymouth. Обычно это делается с помощью /etc/initramfs-tools
каталог, предоставляемый с initramfs-tools
, Однако при создании образа initramfs с помощью Yocto такой каталог недоступен. Это означает, что все initramfs-tools
делает для загрузки модулей и инициализации кадрового буфера, должно быть сделано вручную в initramfs
изображение, насколько я мог понять.
Задачи, которые я хочу выполнить, очень деликатно объясняются нотро в https://github.com/notro/fbtft/wiki/Bootsplash. Я хотел бы сделать эквивалент того, что сделано ниже:
- Доступ к
/etc/initramfs-tools/scripts/init-top/spi
а такжеmodprobe
модуль. - Доступ к
/etc/initramfs-tools/modules
и перечислите дополнительные модули, которые будут запущены модулем daemon - Включить кадровый буфер, который выполняется через
echo "export FRAMEBUFFER=/dev/fb1" | sudo tee /etc/initramfs-tools/conf.d/fb1
Благодаря моим исследованиям я смог найти пакет initramfs-framework-base, в котором есть несколько сценариев, которые использует загрузка initramfs. Я думаю, что это может быть хорошей отправной точкой. Однако я не знаю, как явно указать initramfs делать то, что я хочу выполнить (задачи выше).
Примечание. В настоящее время мое изображение initramfs создается по следующему рецепту:
include recipes-core/images/rpi-basic-image.bb
BASEPACKS = " \
base-passwd \
busybox \
initramfs-live-boot \
initramfs-framework-base \
udev \
${ROOTFS_BOOTSTRAP_INSTALL} \
"
IMAGE_INSTALL = " ${BASEPACKS} \
plymouth plymouth-set-default-theme \
"
# Do not pollute the initrd image with rootfs features
IMAGE_FEATURES = "splash"
SPLASH = "plymouth"
IMAGE_LINGUAS = ""
LICENSE = "MIT"
IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}"
IMAGE_ROOTFS_SIZE = "8192"
IMAGE_OVERHEAD_FACTOR = "1.0"
IMAGE_ROOTFS_EXTRA_SPACE = "0"
IMAGE_ROOTFS_MAXSIZE = "12288"
CMDLINE_append = " quiet splash nomodeset plymouth.ignore-serial-consoles consoleblank=0"
BAD_RECOMMENDATIONS += "busybox-syslog"
Также обратите внимание: я использую компьютер на базе ARMv6 с загрузчиком U-boot. Составление оригинала initramfs-tools
(изначально разработанный для Debian) генерирует 0-байтовые изображения. Я предполагаю, что это проблема с его совместимостью. Поэтому мне придется прибегнуть к генерации initramfs с помощью внутренних инструментов yocto.
Любая помощь приветствуется. Заранее спасибо.