SAIL-IMX6q使用指南--修改開機LOGO

1 修改u-boot中的LOGO

網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、微信平臺小程序開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了朝陽免費建站歡迎大家使用!

更換logo

替換u-boot-imx/2015.04-r0/git/tools/logos/目錄下的freescale.bmp,注意這里要替換的圖片一定是256色的位圖,如果是24位色的圖片轉(zhuǎn)換可能會出錯,造成圖片顯示不正常。

我們也可以,直接把自己需要顯示的文件不命名為freescale.bmp,那就需要自己修改u-boot-imx/2015.04-r0/git/tools/Makefile文件,將LOGO_BMP=后面的路徑設置為自己的圖片的名稱。

編譯的時候,bmp_logo會將我們指定的圖片轉(zhuǎn)換為數(shù)組文件,保存在/u-boot-imx/2015.04-r0/git/mx6qsabresd_config/include/目錄下的bmp_logo.h、bmp_logo_data.h中

2 將圖片居中顯示

修改u-boot-imx/2015.04-r0/git/drivers/video/cfb_console.c

在函數(shù)static

void *video_logo(void)中修改

splash_get_pos(&video_logo_xpos, &video_logo_ypos);

if(video_logo_xpos==0&&video_logo_ypos==0)//這里是增加的代碼,設置圖片居中顯示

{

video_logo_xpos= (VIDEO_VISIBLE_COLS - BMP_LOGO_WIDTH)>>1;

video_logo_ypos= (VIDEO_VISIBLE_ROWS - BMP_LOGO_HEIGHT)>>1;

}

3 去掉編譯信息

在函數(shù)static

void *video_logo(void)函數(shù)中注釋掉下面的代碼

sprintf(info, "%s", version_string);

space =(VIDEO_COLS - VIDEO_INFO_X) / VIDEO_FONT_WIDTH;

len = strlen(info);

if (len >space) {

int xx = VIDEO_INFO_X, yy = VIDEO_INFO_Y;

uchar p = (uchar ) info;

while (len) {

if (len > space) {

video_drawchars(xx,yy, p, space);

len -=space;

p =(uchar *) p + space;

if(!y_off) {

xx += VIDEO_FONT_WIDTH;

space--;

}

yy +=VIDEO_FONT_HEIGHT;

y_off++;

} else {

video_drawchars(xx, yy, p, len);

len = 0;

}

}

} else

video_drawstring(VIDEO_INFO_X, VIDEO_INFO_Y, (uchar *) info);

2 修改Linux啟動的logo

1 生成logo文件

生成logo文件,我們需要用png圖片來轉(zhuǎn)換

在terminal中運行下面的命令

pngtopnm car.png > car.pnm

    #轉(zhuǎn)換png成pnm格式

    pnmquant 224

car.pnm > car224.pnm #轉(zhuǎn)換像素數(shù)為224

pnmtoplainpnmcar224.pnm > logo_car_clut224.ppm

2 將logo_car_clut224.ppm拷貝到/kernel-source/drivers/video/logo/目錄下

3 在/kernel-source/drivers/video/logo/Kconfig下增加

config LOGO_CAR224

bool"Standard car logo"

default y

在/kernel-source/drivers/video/logo/Makefile下增加

obj-$(CONFIG_LOGO_CAR224) += logo_car_clut224.o

4 執(zhí)行bitbake-c menuconfig -v linux-imx

在menuconfig中選擇Standard car logo

5 在/kernel-source/drivers/video/logo/logo.c中的

const struct linux_logo *

__init_refok fb_find_logo(int depth)函數(shù)中

if (depth >= 8) {

。。。。。。。

}

里面添加

#ifdef CONFIG_LOGO_CAR224

/ Generic car logo /

logo = &logo_car_clut224;

#endif

在/kernel-source/include/linux/linux_logo.h

中添加externconst struct linux_logo logo_car_clut224;

6 去掉根據(jù)CPU的數(shù)目顯示logo,只顯示一個logo

將/kernel-source/drivers/video/fbmem.c

中函數(shù)intfb_show_logo(struct fb_info *info, int rotate)

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

num_online_cpus());

    改為

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

/num_online_cpus()/1);

7 設置logo居中顯示

修改/kernel-source/drivers/video/fbmem.c中的

static voidfb_do_show_logo(struct fb_info info, struct fb_image image,

            int rotate, unsigned

int num)函數(shù)

代碼如下:

unsigned int x;

unsigned intxoff,yoff;

    //添加的代碼 ,設置logo居中顯示

xoff =(info->var.xres - num * (fb_logo.logo->width ))>>1;

yoff =(info->var.yres - (fb_logo.logo->height ))>>1;

////////////////////////////////////////////////////////////

if (rotate ==FB_ROTATE_UR) {

//添加的代碼,設置logo居中顯示

image->dx = xoff ;

image->dy = yoff ;

///////////////////////////////

for (x = 0;

x < num && image->dx +image->width <= info->var.xres;

x++) {

info->fbops->fb_imageblit(info,image);

printk(KERN_ALERT"end\n" );

image->dx += image->width + 8;

}

}

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

    在函數(shù)的結(jié)尾

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

    改為

returnfb_prepare_extra_logos(info, fb_logo.logo->height, yres)+((info->var.yres)>>1);

    重新編譯就大功告成。

當前題目:SAIL-IMX6q使用指南--修改開機LOGO
鏈接地址:http://muchs.cn/article46/isjieg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、品牌網(wǎng)站設計靜態(tài)網(wǎng)站、營銷型網(wǎng)站建設、網(wǎng)頁設計公司、服務器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名