国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩

當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > LINUX 啟動logo 總結(jié)

LINUX 啟動logo 總結(jié) 時間:2018-09-28      來源:未知

LINUX 啟動logo 總結(jié)

 近在imx6上需要調(diào)試linux下啟動logo。其實linux啟動logo 以前沒少調(diào),但這次弄了好久,也發(fā)現(xiàn)以前調(diào)過的沒有積累。

之所以這次logo弄了很久是因為fsl bsp 實現(xiàn)keep uboot logo to kernel ,但又在我使用的BSP上沒有完全弄好。話說那個還是

有很牛逼,簡單來說就是uboot實現(xiàn)好logo,然后kernel 中不需要對相應(yīng)的顯示時鐘進行重新初始化,還有很多其他的類似一樣

的道理,就是相信uboot中已經(jīng)弄好了。廢話到此。說說一般的linux 啟動logo。

 

一,企鵝法(224級,或者224色)

企鵝圖片的文件名logo_linux_clut224.ppm,在driver/video/logo目錄下。采用netpbm 工具生成想要替換的logo,這里要注

意一下圖片的尺寸大小 。

例如將PNG格式的圖片轉(zhuǎn)換成logo_linux_clut224.ppm:

    # pngtopnm my.png > my.pnm

    # pnmquant 224 my.pnm > logo224.pnm

    # pnmtoplainpnm logo224.pnm > logo_linux_clut224.ppm

 

Note: 可能會出現(xiàn)如下錯誤提示

drivers/video/logo/logo_linux_clut224.ppm: Binary PNM is not supported

Use pnmnoraw(1) to convert it to ASCII PNM

這個可能是因為你的ppm 圖片是bin格式,需要轉(zhuǎn)換成ascii 格式。方法如下:

pnmnoraw logo_linux_clut224.ppm > logo_linux_clut224_ascii.ppm

替換目錄中的文件重新編譯就OK了。當(dāng)然這時候你會發(fā)現(xiàn)顯示位置需要調(diào)整。默認是左上角對齊。產(chǎn)品中可能更多是中心對齊。

中心對齊的方法。

1,修改drivers/video/fbmem.c  fb_show_logo_line函數(shù)中,修改如下

    //image.dx = 0; //左上角 x起點

   //image.dy = y; //調(diào)用時指定的參數(shù) y起點

    image.dx = (info->var.xres / 2) - (image.width / 2);  //中心

    image.dy = (info->var.yres / 2) - (image.height / 2); //中心

    image.width = logo->width;

    image.height = logo->height;

 

Note:info->var.xres和info->var.yres是分辨率大小,image.width,image.height是logo圖片的大小。

起點位置的修改

2,修改drivers/video/console/fbcon.c  fbcon_prepare_logo函數(shù)里,修改如下

    logo_height = fb_prepare_logo(info, ops->rotate);

   logo_height += (info->var.yres / 2) - (logo_height / 2);

結(jié)束位置的修改

    這里需要補充一點,就是關(guān)于boot logo 的配置與光標(biāo) cursor的問題(第二種方法里面說吧)。

 

Device Drivers --->    Graphics support --->

    [*]Boot logo --->

       [*] Standard 224-color Linux logo

支持 kernel console,不選看不到 logo:

Device Drivers --->     Graphics support --->

     Console display driver support --->

       <*> Framebuffer Console support

 

二,真彩色TFT LINUX LOGO (使用此方法比較簡單,更能滿足客戶的需求)

顯示圖片可以是rgb565 ,不局限于原來的224色 ,方法相當(dāng)于直接將要顯示的圖片輸出到Framebuffer。記錄一下方法吧。

  1, 生成貍貓----增加三個文件。

true_lanrry_logo.h //LCD顯示信息,深度及聲明

lanrry_logo_data.h //定義的圖片的數(shù)據(jù),我采用ImageLCD工具取模

framebuffer_logo.c //實現(xiàn)打印數(shù)據(jù)到framebuffer

均放在drivers/video目錄下,并且修改Makefile ,添加framebuffer_logo.c。 

  2,貍貓換太子----修改drivers/video/fbmem.c里的代碼

 

 a,添加 #define TRUE_COLOR

 b,修改如下:

      +#ifdef TRUE_COLOR

      +#include "truecolor_logo.h"

      +#endif

 c,修改函數(shù)int fb_show_logo(struct fb_info *info, int rotate)

  {

    //貍貓換太子

    +#ifdef TRUE_COLOR

    +fb_show_truecolor_logo(info);

    +return 1;

    #else

    int y;  

    y = fb_show_logo_line(info, rotate, fb_logo.logo, 0,

                  num_online_cpus());

        num_online_cpus   cpu 數(shù)量,linux logo 企鵝數(shù)量。

 d,修改fb_prepare_logo函數(shù)以改變高度,該函數(shù)的后return處改為

 #ifdef TRUE_COLOR

    return fb_prepare_extra_logos(info, YRES, YRES);

 #else

    return fb_prepare_extra_logos(info, fb_logo.logo->height, yres);

 #endif

 重新編譯完之后,就能全部顯示

 

這種方法是采用替換boot logo 。全屏顯示的時候,也是會發(fā)現(xiàn)有光標(biāo)問題。解決方法如下:

修改drivers/video/console/bitblit.c文件的bit_cursor函數(shù),在該函數(shù)結(jié)尾處的 。

 if (err)

    soft_cursor(info, &cursor);

改為

 if (0)

    soft_cursor(info, &cursor);

上一篇:理解C語言的聲明

下一篇:OpenVPN 服務(wù)器搭建

熱點文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗分享
熱點新聞推薦
前臺專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權(quán)所有 ,京ICP備16055225號-5,京公海網(wǎng)安備11010802025203號

回到頂部