mtk平台開機logo顯示發生shift

2021-08-18 13:27:33 字數 1849 閱讀 6732

最近公司專案新加了一塊10.1寸1920*1200屏,原屏是8寸1280*800的,都是mipi介面。mtk屏驅動移植這裡就不說了,驅動移植之後,開機時發現uboot logo和kernel logo都發生了移位,向上移位了,屏下面大概有2mm是花的,如下圖。

這種問題一般是屏的引數沒有修改對,可以嘗試修改下面這些引數

但是mtk的平台這種問題就不一定是引數問題了,如果你修改屏引數沒有反應的話,那麼就是mtk的問題了,官方幾年前也公布過由於顯示角度發生變化,framebuffer資料計算的顯示座標發生錯誤,導致顯示有偏移,需要找mtk申請乙個patch。這裡你可以自己驗證一下,把uboot logo和kernel logo的翻轉角度在現有的基礎上加180度,你會發現花屏果然消失了。

如果申請不到這個patch,可以嘗試下面這個方法來解決,先把logo顯示的翻轉角度加180度,然後把logo原始檔也翻轉180度,這樣就可以正常顯示了。

1、修改uboot logo的翻轉角度

2、修改kernel logo的翻轉角度

kernel logo的顯示在vendor目錄下boot_logo_updater.c的main函式中呼叫show_kernel_logo. show_kernel_logo的實現在

vendor/mediatek/proprietary/external/libshowlogo/charging_animation.cpp中,翻轉角度修改如下

3、修改logo原始檔的翻轉角度

至此基本修改完成,下面介紹一下logo顯示原理

1.lk會在platform_early_init階段首先會獲取lcm params,其工作流

程就是透過讀id找到現在插入的lcm,根據lcm的解析度申請相應大小的frame buffer

並確定frame buffer起始位址

2. 為logo.bin預留4m ram

3. 之後在platform_init階段,直接將logo.bin載入到4m ram中

4, 完成載入後,在platform_init中mt_disp_show_boot_logo();會呼叫

show_logo(0);完成第一張uboot logo顯示。其中的index=0代表在logo.bin中壓縮的第一張

,logo.bin中的壓縮順序可以察看檔案

mediatek\custom\common\lk\logo\rules.mk

5. kernel logo顯示原理:

kernel logo的工作方式與u-boot logo不同,是透過init.rc中註冊的

boot_logo_updater service完成讀取raw data檔案,進行繪畫的,所以在kernel

logo只是經過了bmp向raw的轉換,在目錄mediatek\custom\common\lk\logo\下生成

raw data 檔案boot_logo。之後透過指令碼檔案將boot_logo檔案搬移到

out\target\product\***x\system\media\images下,打包為system.img,download

到手機中,並存放於/system/media/images目錄下。

MTK車載平台新增或更換開機啟動LOGO

摘要 嵌入式系統在開發過程中總是要用到更換logo的過程,該文件主要針對mt3561專案更換logo的過的講解 涉及修改的檔案 device atc evb3561sv w no2 projectconfig.mk vendor mediatek proprietary bootable bootl...

高通平台 開機logo 替換

經過兩天的奮戰終於把開機logo給搞定了啊。首先修改開機logo要從 入手呢?先分析一下原始碼看看.1 void display image on screen 211 12if fbimg 2425 fbcon putimage fbimg,flag 26 粗略的看了一下原始碼,大概可以知道要修改...

MTK8163修改系統開機Logo和開關機動畫

記錄該系統修改開機logo和開關機動畫的幾個容易踩的坑 開機logo所在的路徑 mt8163 kmd customer kmd t2 oem 下,這個路徑也是可以自定義的。格式是 bootlogoimg.bmp。用另外一張.bmp格式的替換掉就行了。注意 不能把.png和.jpg的字尾直接改為.bm...