android210的啓動logo的修改

//--------------------------------------------------------------------------------------------

// 作者:longtian635241([email protected]

// 論壇ID:idea6410

// 版權:idea6410

// 平臺:友堅idea6410開發板

// 發佈日期:2012-11-19

// 最後修改:2012-11-19

//http://www.urbetter.com/main.asp

//----------------------------------------------------------------------------------------------

 

實驗平臺:友堅android210、ubuntu10.04

 

1、安裝圖形轉換軟件

$ sudo apt-get install netpbm

2、轉換圖片

        $ pngtopnm android210.png > android210.pnm

說明:用來轉換的圖片必須爲 png 格式(可以用windows下軟件保存爲png格式),否則會有如下提示:

  pngtopnm: input file not a PNG file

  $ pnmquant 224 android210.pnm >android210.pnm

  pnmcolormap: making histogram…

  pnmcolormap: 5854 colors found

  pnmcolormap: choosing 224 colors…

  pnmremap: 222 colors found in colormap

 

  注意:此處 pnmquant 必須輸出到另一個不同名的文件,否則會出現如下錯誤提示

  eg:$ pnmquant 224 android210.pnm > android210.pnm

  pnmcolormap: EOF / read error reading magic number保存

  pnmcolormap failed, rc=256

  $ pnmtoplainpnm android210.pnm > android210.ppm

其實用這個工具製作的圖片很可能失真~這時我們在轉換前,在window是下用ACDsee將圖片的顏色:真彩色(24位)改爲256色(8位),效果會好些~

第二種方法:使用windows下的IrfanView軟件來製作ppm格式圖片

用IrfanView打開圖片:

a、選擇圖像->減少色深->自定義224->確定

b、選擇圖像->調整尺寸->去掉縱橫比選項後然後設置爲屏的分辨率

c、圖片另存爲ppm格式選擇保存爲ascii碼格式!保存就製作成功了!

3、然後用轉換好的 android210.ppm 替換 kernel/drivers/video/logo/logo_linux_clut224.ppm(最好先做好備份),然後刪除同一目錄下的 logo_linux_clut224.c 文件,重新編譯內核即可

配置支持logo

$ make menuconfig //在內核裏面選上logo 支持

  Device Drivers --->

  [*] Graphics support --->

  [*] Bootup logo --->

  [*] Standard black and white Linux logo

  [*] Standard 16-color Linux logo

  [*] Standard 224-color Linux logo

如果想要單獨顯示,將現在生成的圖片添加進內核,就需要修改linux-x-xx/drivers/vedio/logo下的Makefile和Kconfig文件將這個添加進去。

Makefie
obj-$(CONFIG_LOGO_LINUX_XX_CLUT224)     += logo_linux_xx_clut224.o
Kconfig
config LOGO_LINUX_XX_CLUT224
 bool "Standard xx 224-color Linux logo"
 depends on LOGO
 default y
這樣就添加進內核的make menuconfig選項了。
現在還需要修改linux-x-xx/drivers/vedio/logo/下的logo.c文件,將信息添加進去。
extern const struct linux_logo logo_linux_xx_clut224;
......
#ifdef CONFIG_LOGO_LINUX_XX_CLUT224
  logo = &logo_linux_xx_clut224;
#endif
然後執行重新make內核,make之前需要執行make clean或者是指定clean(make clean SUB_DIR=./drivers/video/logo/)目錄。
 
轉載沒有實踐:
logo全屏
在配置的時候 在Console drivers  --->Frame-buffer support  --->把Select compiled-in fonts 去掉:

3、如何將開機logo中的光標去除
 在內核的當前目錄進入到drivers/video/console/fbcon.c文件
 將static void fb_flashcursor(void *private)製成空函數如下

    386 static void fb_flashcursor(void *private)
    387 {
    388 #if 0 //modify by yejj for clear cursor of lcdc

    389 struct fb_info *info = private;
    390 struct fbcon_ops *ops = info->fbcon_par;
    391 struct display *p;
    392 struct vc_data *vc = NULL;
    393 int c;
    394 int mode;
    395 
    396 acquire_console_sem();
    397 if (ops && ops->currcon != -1)
    398 vc = vc_cons[ops->currcon].d;
    399 
    400 if (!vc || !CON_IS_VISIBLE(vc) ||
    401 registered_fb[con2fb_map[vc->vc_num]] != info ||
    402 vc->vc_deccm != 1) {
    403 release_console_sem();
    404 return;
    405 }
    406 
    407 p = &fb_display[vc->vc_num];
    408 c = scr_readw((u16 *) vc->vc_pos);
    409 mode = (!ops->cursor_flash || ops->cursor_state.enable) ?
    410 CM_ERASE : CM_DRAW;
    411 ops->cursor(vc, info, mode, softback_lines, get_color(vc, info, c, 1),
    412 get_color(vc, info, c, 0));
    413 release_console_sem();
    414 #endif
    415 }

同樣的方法將函數static void fbcon_cursor(struct vc_data *vc, int mode)用空函數替換如下

   1304 static void fbcon_cursor(struct vc_data *vc, int mode)
   1305 { 
   1306 #if 0 //modify by yejj for clear cursor of lcdc

   1307 struct fb_info *info

 

 

另一種禁止光標的方法:

drivers/video/console/Makefile

#obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += fbcon.o bitblit.o font.o softcursor.oobj-$(CONFIG_FRAMEBUFFER_CONSOLE) += fbcon.o bitblit.o font.o
編譯遇到一個soft_cursor沒有定義的問題問題,註釋代碼:drivers/video/console/bitblit.c//ABING//      if (err)//              soft_cursor(info, &cursor);
Linux Logo製作工具 : LogoMaker.tgz 4.7MB 
http://www.arm9.com.cn/downloads.htm
LogoMakers可以讓你十分方便地製作linux logo文件,它基於Fedora 9平臺開發並使用。其使用方法十分簡單,打開一個圖形文件(Jpeg, bmp或者png格式),然後點轉換按鈕就可以了;它會固定輸出文件名:logo_linux_clut224.ppm,該文件一般位於內核源代碼目錄kernel-src/drivers/video/logo中,替換之後再重新編譯一下內核就可以看到你所喜愛的linux logo了。 
    注意:LogoMaker程序實際調用了netpbm工具組,因此要確保你的PC Linux系統安裝了此工具,方可轉換成功。
 
 




logo居中:

1、設置logo圖片在屏幕中的位置

vi drivers/video/fbmem.c

找到"fb_show_logo_line"函數,把

image.dx = 0;

image.dy = y;

改爲

image.dx = (info->var.xres/2) - (610/2);

image.dy = (info->var.yres/2) - (206/2);

[注:

info->var.xres和info->var.yres是分辨率大小

610和206是logo圖片的大小

]

2、

vi drivers/video/console/fbcon.c

找到"fbcon_prepare_logo"函數,在

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

後面加上

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

添加新圖片:

在Makefile中有這麼一句:extra-y += $(call logo-cfiles,_clut224,ppm)

它的意思是在當前找到以"_clut224"結尾的ppm圖片,然後根據它生成.c文件,所以添加新的圖片名可以

類似這樣:logo_linux_sullg_clut224.ppm

1.Makefile,加入一行

obj-$(CONFIG_LOGO_LINUX_SULLG_CLUT224)  += logo_linux_sullg_clut224.o

2.Kconfig,加入

config LOGO_LINUX_SULLG_CLUT224

    bool "Standard 224-color Linux logo for sullg"

    default y

3.logo.c,加入

extern const struct linux_logo logo_linux_sullg_clut224;

在"fb_find_logo"中找到"#ifdef CONFIG_LOGO_LINUX_CLUT224",在其後加入:

#ifdef CONFIG_LOGO_LINUX_SULLG_CLUT224

        logo = &logo_linux_sullg_clut224;

#endif










轉帖

Android系統開機動畫包括兩部分:

開機顯示的 ANDROID 文字;

ANDROID發光動畫。

這篇文章說的開機動畫是第一種,下面開始正文!

1. 製作當前屏幕像素的圖片(模擬器默認爲320*480)
 使用PS製作一張320*480的圖片,保存時選“保存爲 Web 所用格式”,然後在彈開的窗口上,“預設”項選擇“PNG-24”,保存爲android_logo.png

 注:好像只支持png-24,其他格式生成的rle文件顯示不正常,有興趣大家可以再驗證一下。

2. 將圖片轉換爲raw格式
 使用linux下的ImageMagick自帶的convert命令,進行raw格式轉換,命令爲:
  convert -depth 8 android_logo.png rgb:android_logo.raw

 注:ubuntu 10.04 默認已經安裝ImgageMagick工具,如果當前系統沒有安裝,可以執行下面的命令安裝:
  sudo apt-get install imagemagick

3. 將raw格式轉化爲rle文件
 需要用到android編譯後的rgb2565工具,在android/out/host/linux-x86/bin目錄下(android爲當前源碼所在目錄),轉換命令如下:
 rgb2565 -rle < android_logo.raw > initlogo.rle

到目前爲止,啓動需要顯示的圖像已經做好了,就是initlogo.rle,注意文件名必須是這個,如果想改文件名,需要修改android/system/core/init/init.h中的宏:
 #define INIT_IMAGE_FILE "/initlogo.rle" 

============================================================================================

下面需要將initlogo.rle加入的android文件系統中

4. 找到ramdisk.img文件(android/out/target/product/generic/ramdisk.img),將文件名改爲ramdisk.img.gz,然後使用下面的命令解壓:
 gunzip ramdisk.img.gz
 解壓後得到ramdisk.img,可能有人要問,怎麼文件名又改回去了?其實不然,使用file ramdisk.img查看一下就知道了:
 解壓前:ramdisk.img: gzip compressed data, from Unix
 解壓後:ramdisk.img: ASCII cpio archive (SVR4 with no CRC)
 跑題了,還是說正事兒。

5. 使用cpio提取文件:
 新建一個temp目錄:
 mkdir temp
 cd temp
 cpio -i -F ../ramdisk.img

6. 導出文件列表:
 cpio -i -t -F ../ramdisk.img > list       

 注:list是一個文本文件,裏面存儲了ramdisk.img的文件結構,我們需要在這個文件中加入initlogo.rle這一行,修改後的文件如下:
 data

 default.prop

 dev

 init

 init.goldfish.rc

 init.rc

 initlogo.rle 

 proc

 sbin

 sbin/adbd

 sys

 system


7. 生成ramdisk.img
 cpio -o -H newc -O ramdisk.img < list 

 注:根據list文件的描述,生成ramdisk.img文件

8. 用ramdisk.img覆蓋sdk目錄下的ramdisk.img(android-sdk-windows/platforms/android-2.1/images/ramdisk.img),最好先備份一下。

9. 啓動模擬器,就可以看到我們自己做的的開機界面了。

 

 

------------------------------------------------------------------------------------------------------------------

 

開機第三屏(android動畫)
編譯成功後在android源碼根目錄生成out目錄,
修改android\out\target\product\sdkDemo\system\framework目錄下的framework-res.apk
用winrar格式打開,替換assets\images裏的2張圖片即可


開機第二屏(android字樣)
1、選張320*480分辨率的圖
2、將圖轉換成raw,用Advanced Batch Converter工具即可
3、虛擬機android\out\host\linux-x86\bin目錄下執行
  ./rgb2565 -rle <android_logo.raw> initlogo.rle
4、將initlogo.rle放置到android\out\target\product\sdkDemo\root下即可
   如果不放置 則顯示的是源碼init.C init.c.bak裏
5、make firmware
6、全部重燒


開機第一屏(Linux企鵝圖樣)
1、選張png格式的圖片,在Linux下執行:
# pngtopnm logo.png > logo_linux.pnm
# pnmquant 224 logo_linux.pnm > logo_linux_clut224.pnm
# pnmtoplainpnm logo_linux_clut224.pnm > logo_linux_clut224.ppm
將生成的ppm拷貝到drivers\video\logo目錄下
如果想要修改菜單配置  可以在kernel目錄下執行make menuconfig
進Device Drivers
進Graphics Support
進Bootop logo
進standard 224-clor Linux logo選擇性加入圖片

 

 

 

U-boot開機logo的製作方法

在有實現LCD顯示和LCD命令行終端的U-boot中,在左上角都有顯示一個logo,如果是atmel的芯片,就會有atmel的logo,三星的則是denx的logo。

有的網友發郵件說想改成自己公司的Logo,而且如果是自己玩的話,改成自己喜歡的logo也爽阿。所以今天我做好了實驗,將簡單的修改方法總結如下:

 


一、圖片的放置路徑

所有的開機logo都放在了 /tools/logos 之下,你只需要將你的班子作對應的logo替換就好了。

對於S3C2440,你只需要將denx.bmp替換成你想要的logo就好了。

對於ATMEL的芯片,據說會顯示ATMEL的logo,所以替換那個logo即可。

但是你所替換的logo必須和原來的大小、格式一模一樣否則會出現u-boot使用過程中宕機重啓的後果


二、圖片的大小標準

不同的logo對應不同的大小,這裏S3C2440所對應的是160*96分辨率的BMP圖片。


三、圖片的轉換腳本
 

在製作圖片前,請您現確認您的Linux主機上安裝了Netpbm工具包。如果是ubuntu,你可以直接用新立得安裝;如果是別的發行版,可以在 Netpbm主頁 下載源代碼編譯。

   將你想要的圖片裁減成160*96的JPG圖片,然後用以下的腳本處理一下就好了:


#!/bin/sh
#install Netpbm first
    jpegtopnm $1 | ppmquant 31 | ppmtobmp -bpp 8 > $2


使用方法: (腳本名) ( 待處理的JPG圖片名) (輸出文件名)

友堅最近推出了一款android210,調試了wifi,AVIN,camera,Wcdma,GPS,還有重力加速器,有興趣的朋友可以關注哦~標配價格990,優惠多多哦(*^__^*) 嘻嘻……
發佈了39 篇原創文章 · 獲贊 22 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章