SAIL-IMX6q 使用指南--修改开机LOGO
admin
2023-03-01 14:01:17
0

1 修改u-boot中的LOGO

更换logo

替换u-boot-imx/2015.04-r0/git/tools/logos/目录下的freescale.bmp,注意这里要替换的图片一定是256色的位图,如果是24位色的图片转换可能会出错,造成图片显示不正常。

我们也可以,直接把自己需要显示的文件不命名为freescale.bmp,那就需要自己修改u-boot-imx/2015.04-r0/git/tools/Makefile文件,将LOGO_BMP=后面的路径设置为自己的图片的名称。

编译的时候,bmp_logo会将我们指定的图片转换为数组文件,保存在/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

在函数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 去掉编译信息

在函数static

void *video_logo(void)函数中注释掉下面的代码

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图片来转换

在terminal中运行下面的命令

pngtopnm car.png > car.pnm

    #转换png成pnm格式

    pnmquant 224

car.pnm > car224.pnm #转换像素数为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 执行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)函数中

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 去掉根据CPU的数目显示logo,只显示一个logo

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

中函数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)函数

代码如下:

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;

}

}

    修改函数int fb_prepare_logo(struct fb_info *info, int rotate)

    在函数的结尾

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

    改为

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

    重新编译就大功告成。

相关内容

热门资讯

终于懂了“烟台决战麻将.有没有... 家人们!今天小编来为大家解答烟台决战麻将透视挂怎么安装这个问题咨询软件客服徽9784099的挂在哪里...
【第一消息】“山西扣点.究竟有... 您好:山西扣点这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家在这款游戏...
我来教教您“喜扣打筒子.到底有... 家人们!今天小编来为大家解答喜扣打筒子透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里买...
【第一资讯】“天天快来麻将.怎... 家人们!今天小编来为大家解答天天快来麻将透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里...
今日重大通报“笑傲江湖.怎么装... 网上科普关于“笑傲江湖有没有挂”话题很是火热,小编也是针对笑傲江湖作*弊开挂的方法以及开挂对应的知识...
【第一财经】“随意玩拼三张.辅... 网上科普关于“随意玩拼三张有没有挂”话题很是火热,小编也是针对随意玩拼三张作*弊开挂的方法以及开挂对...
最新引进“小猪对对碰.有挂吗?... 网上科普关于“小猪对对碰有没有挂”话题很是火热,小编也是针对小猪对对碰作*弊开挂的方法以及开挂对应的...
终于了解“大富豪.究竟有挂吗?... 终于了解“大富豪.究竟有挂吗?”其实是有挂您好,大富豪这个游戏其实有挂的,确实是有挂的,需要了解加客...
终于懂了“灯塔麻将.真的有挂吗... 您好:灯塔麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家在这款游戏...
我来教教您“兴动茶馆.到底有挂... 家人们!今天小编来为大家解答兴动茶馆透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里买很...