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/spi
とmodprobe
モジュール。 /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の内部ツールを使用する必要があります。
助けてくれてありがとう。よろしくお願いします。