Yocto가 생성한 initramfs 이미지의 initramfs-tools 기능에 액세스하세요

Yocto가 생성한 initramfs 이미지의 initramfs-tools 기능에 액세스하세요

Plymouth가 시작되기 전에 일부 커널 모듈을 로드하고 프레임 버퍼 액세스를 활성화하고 싶습니다. 이것은 일반적으로 /etc/initramfs-tools사용 됩니다 initramfs-tools. 그러나 Yocto를 사용하여 initramfs 이미지를 빌드할 때 그러한 디렉토리를 사용할 수 없습니다. 이는 내가 아는 한 initramfs-tools모듈 로드 및 프레임 버퍼 초기화가 무엇이든 이미지에서 수동으로 수행되어야 함을 의미합니다.initramfs

Notro는 내가 달성하고 싶은 것을 아주 자세하게 설명했습니다.https://github.com/notro/fbtft/wiki/Bootsplash . 나는 아래와 같은 일을 하고 싶다:

  • 액세스 /etc/initramfs-tools/scripts/init-top/spimodprobe모듈.
  • /etc/initramfs-tools/modules모듈 데몬에 의해 시작된 추가 모듈에 액세스 하고 나열합니다.
  • 프레임 버퍼를 활성화합니다. 이는 다음을 통해 수행됩니다.echo "export FRAMEBUFFER=/dev/fb1" | sudo tee /etc/initramfs-tools/conf.d/fb1

내 연구를 통해 나는 찾을 수 있었다initramfs-프레임워크-베이스 패키지여기에는 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"

또한 참고하십시오:저는 U-boot 부트로더가 있는 ARMv6 기반 컴퓨터를 사용하고 있습니다. 원래 버전 initramfs-tools(원래 Debian용으로 개발됨)을 컴파일하면 0바이트 이미지가 생성됩니다. 아무래도 호환성 문제인 것 같아요. 따라서 initramfs를 생성하려면 yocto의 내부 도구를 사용해야 합니다.

도움을 주시면 감사하겠습니다. 미리 감사드립니다.

관련 정보