LVDS 画面ロゴ表示の最適化
LVDS ディスプレイのドライバーである panel-lvds は、デフォルトではモジュールとしてコンパイルされます。起動時にモジュールタイプのドライバーが後でロードされるため、LVDS ディスプレイの初期化が遅くなり、LVDS 画面にデスクトップが表示されるまでに約 20 秒かかります。
LVDS ディスプレイを早めに初期化するには、LVDS ドライバーをカーネルにコンパイルして、早めに初期化できるようにする必要があります。
主な変更は、panel-lids.c を OK6254-C_defconfig ファイルのカーネルに直接コンパイルすることによって行うことができます。
OK6254-linux-sdk/OK6254-linux-kernel/arch/arm64/configs/OK6254-C_defconfig CONFIG_DRM_PANEL_LVDS=y
その後、完全なコンパイルとフラッシュを実行します。書き込み後に起動すると、LVDS は起動後約 10 秒でペンギンのロゴを表示します。ペンギンのロゴを他のロゴに置き換える方法は次のとおりです。
ペンギンのロゴをカスタムロゴに置き換える
まず、次のようにしてペンギンのロゴの位置を見つけます。
TI AM6254 プラットフォームで使用されるペンギンのロゴ イメージは、logo_ti_clut224.ppm と呼ばれます。このイメージをカスタム ロゴに置き換える方法は次のとおりです。
注意:ロゴの解像度はLVDS画面の解像度を超えることはできません。背景色は黒にする必要があります。1280x800を例に挙げます。これは、Windowsの描画ソフトウェアで作成された1280x800解像度の画像です。PNG形式が望ましいです。他の形式の画像の場合は、まずPNG形式に変換してから、次の操作を実行してください。(myilogo.png)
それを仮想マシン上の任意の場所に置き、次のコマンドを使用して必要な形式に変換します。
pngtopnm mylogo.png > my_linux_logo.pnm pnmquant 224 my_linux_logo.pnm > my_linux_logo_224.pnm pnmtoplainpnm my_linux_logo_224.pnm > my_linux_logo_224.ppm
イメージを ppm 形式に変換した後、結果の ppm 形式のイメージをペンギンのロゴがあるパスにコピーします。次に、ppm 形式のイメージを ac ファイルに変換し、パスの下にある pnmtologo ツールを使用します (権限エラーを報告する場合は、コマンドの前に sudo を追加します)。
./pnmtologo -t clut224 -n logo_ti_clut224 -o logo_ti_clut224.c my_linux_logo_224.ppm
ロゴ中心表示を実現
1. ソースコード /driver/video/fbdev/core/fbmem.c の fb_show_logo_line 関数を変更します。
//image.dx=0; //image.dy=y; image.width=logo->width; image.height=logo->height; image.dx = (info->var.xres / 2) - (image.width / 2); image.dy = (info->var.yres / 2) - (image.height / 2);
説明:
image. dx および image. dy 変数は、画面上の画像の左上隅を設定するために使用されます。info-> var.xres および info-> var.yres 変数は、それぞれ画面の水平解像度と垂直解像度を表します。image.width および image.height 変数は、それぞれ旗画像の幅と高さを表します。image. dx は、画像の幅の半分から画面の幅の半分を減算して、画像を画面の水平方向に中央に配置するように計算されます。image. dy は、画像の高さの半分から画面の高さの半分を減算して、画像を画面の垂直方向に中央に配置するように計算されます。全体として、このコードはロゴ画像を画面の水平方向と垂直方向に中央に配置します。
2. ソースコード/driver/video/fbdev/core/fbcon.c内のfbcon_prepare_logo()関数を変更します。
logo_height = fb_prepare_logo(info, ops->rotate);の後に次のコード行を追加します。
logo_height += (info->var.yres / 2) - (logo_height / 2);
これで、コンパイルして書き込むことができます。デバッグ段階のみの場合は、カーネルを個別にコンパイルしてイメージを置き換えることができます。完全にコンパイルしてから書き込むこともできます。
注意: ロゴが中央に配置されていないか表示されない場合は、LCD 画面がオフになっているかどうかを確認してください。オフになっている場合は、LCD 画面の解像度が優先されます。
よくある問題 1
Image has more than 224 colors Use ppmquant(1) to reduce the number of colors
ソリューション
ppmquant 224 logo_ti_clut224.ppm > logo_ti_clut224_224.ppm
よくある問題 2
logo_ti_clut224.ppm: Binary PNM is not supported Use pnmnoraw(1) to convert it to ASCII PNM
ソリューション
pnmnoraw logo_ti_clut224_224.ppm > logo_ti_clut224_ascii.ppm
Folinx 埋め込みロゴの置き換え
起動後、デスクトップに入る前に、Forlinx のロゴがしばらく表示されますが、このロゴは次のようにカスタム ロゴに置き換えられます。
まず、イメージはファイル システム内の次のパスに保存されます。
/usr/share/weston/2-1280x800.png
ファイルをカスタム ロゴに置き換えるだけです。名前は 2-1280x800.png のままで、形式は PNG にする必要があります。
元は www.forlinx.net で公開されています。