自定義u boot啟動logo的方法

2021-06-18 06:46:54 字數 2139 閱讀 9300

此文是對早期文章

《u-boot開機logo的製作方法》  

的更新。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

如果在uboot中實現了lcd等顯示裝置的驅動,uboot在啟動的時候會在螢幕的左上角顯示乙個logo,如下圖:

這個logo

預設情況

(只定義了

config_video_logo

)是如上圖所示的企鵝

(如果還定義了

config_video_bmp_logo

會是denx的標誌),這個是存在於uboot**中的乙個標頭檔案(include/video_logo.h或 bmp_logo.h

),如果大家看了這個標頭檔案,發現這個是乙個巨大的結構體,其中儲存著每個畫素點的色彩資料。

這樣如果要更換這個預設的logo豈不是自己要生成這樣乙個資料結構體才行?答案是肯定的。

但是這樣乙個結構體要怎麼生成呢?這個uboot原始碼早就為我們想好了,方法其實很簡單:

一、準備一張jpeg,通過命令列處理為8bit  bmp。

處理指令碼如下:

#!/bin/sh

#install netpbm first

jpegtopnm $1 | ppmquant 31 | ppmtobmp -bpp 8 > $2

之所以用jpeg轉bmp的辦法,是通過實驗證明這種方面可行且簡便。

的大小不一定要和原來一樣,你覺得合適就好。

二、將bmp檔案放入/tools/logos中,並修改/tools/下的makefile

# generated lcd/video logo

logo_h = $(objtree)/include/bmp_logo.h

logo-$(config_lcd_logo) += $(logo_h)

logo-$(config_video_logo) += $(logo_h)

ifeq ($(logo_bmp),)

logo_bmp= logos/

denx.bmp

endif

ifeq ($(vendor),atmel)

logo_bmp= logos/atmel.bmp

endif

ifeq ($(vendor),esd)

logo_bmp= logos/esd.bmp

endif

ifeq ($(vendor),freescale)

logo_bmp= logos/freescale.bmp

endif

ifeq ($(vendor),ronetix)

logo_bmp= logos/ronetix.bmp

endif

ifeq ($(vendor),syteco)

logo_bmp= logos/syteco.bmp

endif

紅色字型,替換為你製作的bmp檔名。

三、確認配置檔案

一定要定義

#define config_video_logo

#define config_video_bmp_logo

編譯的時候,你的bmp檔案會被tools/bmp_logo.c編譯出的工具bmp_logo

製作成include/bmp_logo.h,並編譯進uboot中。

四、重新編譯u-boot即可得到顯示新logo的u-boot。

效果如下圖所示:

由於是8bit色深,顏色就有點怪~

但是,原生的uboot是只支援nor flash和核心的讀取的,如果你的放在nand flash、sd卡或者spi、i2c 介面flash中,你可以自己實現將檔案讀取到記憶體中,然後再顯示splash。實現起來並不複雜,關鍵是使用相關的api函式來讀取資料。 

自定義核心啟動後的Logo

1.使用影象gimp工具 2.詳細步驟如下 a.將800x480的匯入到gimp工具。b.選中gimp選單欄進行以下操作 影象 模式 索引 在彈出的視窗當中,選中調色盤,最大顏色值修改為224.點選 轉換 按鈕,退出。c.將檔案 export as 檔案型別為ppm格式,並且檔名為 logo lin...

uboot 修改啟動logo

1.獲取一張為其色深為8位 即256色 右擊 編輯 畫板開啟 另存為 test.bmp 下拉框選擇256色位圖 2.將製作好的bmp,放置到 tools logos下面 3.修改 tools makefile中的logo bmp,使其指向你的bmp。如 logo bmp logos test.bmp...

自定義啟動頁

1.啟動頁自定義 定義defaults物件往plist檔案新增資料 nsuserdefaults defaults nsuserdefaults standarduserdefaults 定義bool變數 用key取值 預設為no bool mark defaults objectforkey ma...