Blog:
Yocto ProjectでU-Bootのカスタマイズ

Monday, January 16, 2023
Yocto
Yocto

U-Bootのカスタマイズ

(この記事は、この他の記事の続きです)

実行環境

本マニュアルの実行環境は下記です。

仮想化ソフト:VMWARE Player v15.5.7
Host OS: Windows 10 21H2
Guest OS: Ubuntu Desktop 20.04LTS 64bit(英語版)
BSP:v5.7
CPUモジュール:Verdin-iMX8M Plus Quad 4GB Wi-Fi / Bluetooth IT V1.1A
キャリアボード:Verdin開発ボードRev 1.1C + アクセサリーキット
ディスプレイ:10.1インチディスプレイ1.0A 静電式タッチパネル付き+ DSI to LVDSアダプタ1.1

本文

カーネルのカスタマイズではロゴをカスタムしましたがロゴの下に起動ログが出力されます。またカーソルも表示されています。
本マニュアルではU-Bootのカスタム例としてカーネルに渡すカーネルパラメータを変更してこれらを取り除きます。
ブートローダーの仮想レシピ名はvirtual/bootloaderになります。

Open Embeddedの準備

[Ubuntu]$ cd /work/oe-core/
[Ubuntu]$. export

ブートローダーのレシピはbitbake -c checkuri virtual/bootloader > logで調査すると

/work/oe-core/build/../layers/meta-toradex-nxp/recipes-bsp/u-boot/u-boot-toradex_2020.04.bb

ということがわかります。

初期化

[Ubuntu]$ bitbake -c cleansstate virtual/bootloader

devshell実行

[Ubuntu]$ bitbake -c devshell virtual/bootloader

パッチファイルの作成

[Ubuntu]$ quilt new ChangeKernelParameter.patch

設定を変更します。

[Ubuntu]$ EDITOR=gedit quilt edit ./include/configs/verdin-imx8mp.h

setupの設定から
console=tty1(ディスプレイにコンソール出力を表示する設定)を削除して
vt.global_cursor_default=0(カーソルを消す)を追加します。

変更箇所は内容は下記です。
112行目あたり

"setup=setenv setupargs console=${console},${baudrate} console=tty1 consoleblank=0 earlycon¥0" ¥
→
"setup=setenv setupargs console=${console},${baudrate} consoleblank=0 earlycon vt.global_cursor_default=0¥0" ¥

修正内容に対するパッチを作成します。

[Ubuntu]$ quilt refresh

パッチ格納ディレクトリを作成します。

[Ubuntu]$ mkdir /work/oe-core//layers/meta-toradex-nxp/recipes-bsp/u-boot/files/verdin-imx8mp

パッチファイルを移動します。

[Ubuntu]$ mv ./patches/ChangeKernelParameter.patch /work/oe-core//layers/meta-toradex-nxp/recipes-bsp/u-boot/files/verdin-imx8mp/

devshellを終了します。

[Ubuntu]$ exit

bbappendファイルはないため作成します。

[Ub t Ubuntu]$ gedit /work/oe-core/layers/meta-toradex-nxp/recipes-bsp/u-boot/u-boot-toradex_2020.04.bbappend

パッチをレシピに追加します。
内容は下記です。

SRC_URI_append_verdin-imx8mp = " file://ChangeKernelParameter.patch"



初期化(一度編集した内容を元に戻します。)

[Ubuntu]$ bitbake -c cleansstate virtual/bootloader

不要の場合もありますが一度OSイメージのcleansstateを実行します。

[Ubuntu]$ bitbake -c cleansstate tdx-reference-multimedia-image

イメージの作成

[Ubuntu]$ bitbake tdx-reference-multimedia-image
[Ubuntu]$ cd /work/oe-core/image/

解凍

[Ubuntu]$ sudo tar -xf ../build/deploy/images/verdin-imx8mp/Verdin-iMX8MP_Reference-Multimedia-Image-Tezi_.tar

U-Bootの設定ファイルu-boot-initial-env-sdはU-Bootの修正が反映されて出力されます。



OSイメージを書き込んで起動するとLinux起動ロゴの下に起動ログが出力されなくなっていることが確認できます。

Authors:
桐川篤史
・岡本無線電機
ガルシアアルバロ・Toradex(トラデックス)
Share this on:

Leave a comment

Please login to leave a comment!
Have a Question?