Dm355增加啓動boot logo

       在內核中增加啓動logo是比較簡單的.make menuconfig->device driver->graphics support->logo configuration,裏面的全都選上.編譯內核的時候會將driver/video/logo中的圖片轉換爲C語言的數組,編譯進內核.所以如果需要更換圖片,只需要將另外一張PPM圖片覆蓋就可以了.下面是PPM圖片製作的過程.

1.       首先在linux中安裝netpbm.我使用的是ubuntu 10.04,輸入以下命令

a)         Sudo apt-get install netpbm

2.     首先使用 Photoshop 製作 png 文件(Windows),或者使用最簡單的畫圖工具另存爲png圖片即可.

3.     再將png圖片轉成pnm

# pngtopnm uclinux_logo.png > uclinux_logo.pnm

4.     然後將pnm圖片的顏色數限制在224 
# pnmquant 224 uclinux_logo.pnm > logo_linux_clut224.pnm

5.       最後將pnm圖片轉換成我們需要的ppm
# pnmtoplainpnm logo_linux_clut224.pnm > logo_linux_clut224.ppm

6.       logo_linux_clut224.ppm 替換 linux-2.6/drivers/video/logo 中對應的圖像

Dm355具有三個display窗口,video display, osd display, attribute display.video display使用的是V4L2,顯示緩存使用的是user buffer.osd displayattribute display使用的是FB實現的.不支持user buffer.所以選擇OSD窗口顯示logo.通過kconfigmakefile找出davinci FB實現文件是driver/video/davincifb.c文件.我們只看初始化部分,分別註冊了四個窗口,呵呵.osd窗口就是在這裏初始化的.:davincifb_init_window函數.這個函數的 return 0 上面加入下面這些語句:

#if !defined(CONFIG_FRAMEBUFFER_CONSOLE) && defined(CONFIG_LOGO)

       if(is_osd_win(info))

       {

              if (fb_prepare_logo(info, FB_ROTATE_UR)) {

                     /* Start display and show logo on boot */

                     fb_set_cmap(&info->cmap, info);

 

                     fb_show_logo(info, FB_ROTATE_UR);

              }

       }

#endif

重新編譯內核,啓動dm355 EVM,在電視機的左上角將顯示一張圖片.呵呵,成功了.

通過修改fbmem.c中的fb_show_logo函數的image.dx,        image.dy的值,可能調整圖片顯示的位置.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章