翻译下下面linux内核logo

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了翻译下下面linux内核logo相关的知识,希望对你有一定的参考价值。

pngtopnm default_wallpaper.png >logo_linux_clut224.pnm  pnmtoplainpnm logo_linux_clut224.pnm > logo_linux_clut224.ppm  将logo_linux_clut224.ppm放到linux-2.6.29/drivers/video/logo,  删除logo_linux_clut224.c和logo_linux_clut224.o  然后make zImage就可以了。  linux-2.6.29/drivers/video/fbmem.c  fb_do_show_logo函数:  393 static void fb_do_show_logo(struct fb_info *info, struct fb_image *image,  394                 int rotate, unsigned int num)  395   396     unsigned int x;  397  398     int xoff,yoff;  399     xoff=(info->var.xres - num*fb_logo.logo->width+8)》1;  400     yoff=(info->var.yres - num*fb_logo.logo->height+8)》1;  401  402     if (rotate == FB_ROTATE_UR)   403         for (x = 0;  404              x < num && image->dx + image->width <= info->var.xres;  405              x++)   406             image->dx = xoff;  407             image->dy = yoff;  408             info->fbops->fb_imageblit(info, image);  409             image->dy += image->height + 8;

pngtopnm default_wallpaper。 logo_linux_clut224 png >。 pnmtoplainpnm pnm logo_linux_clut224。 logo_linux_clut224 pnm >。 ppm将logo_linux_clut224.ppm放到linux-2.6.29 /视频/标志设计/车手,删除logo_linux_clut224.c和logo_linux_clut224。 然后make阿zImage就可以了. linux-2.6.29 /车手/视频/ fbmem。 c fb_do_show_logo函数:393静态无效fb_do_show_logo(> > fb_info * *信息,fb_image形象,394智力旋转,无智力胡)395年无符号整数倍; 396 397智力xoff,yoff;399 xoff =(信息- - - - - - >变量。 xres -胡* fb_logo。 标志- >宽度1 + 8)》;400 yoff =(信息- - - - - - >变量。yres -胡* fb_logo。 标志- >身高+ 8)》1;401如果(旋转= = FB_ROTATE_UR) 403(x = 0;404 x <华&&图片- > dx +图像- >宽度< =信息- >变量。xres;405 x + +)- > 406形象;407年xoff dx = = >秦代yoff图像- - >,408 fbops信息- - - - - - > fb_imageblit(信息、图像);409图像- > > + =形象,通过高度+ 8; 参考技术A

安卓修改开机logo

这里我们是在ubuntu下进行操作我是用root用户登陆的,首先安装netpbm库

    执行:apt-get install netpbm

    对于Android系统最开始表现logo是在内核当中,所以首先我们要修改内核中的logo.

    .内核中相关修改

    编译linux内核logo制造脚本mklogo.sh,内容如下:

#!/bin/sh
pngtopnm logo.png > linuxlogo.pnm
pnmquant 224 linuxlogo.pnm > linuxlogo224.pnm
pnmtoplainpnm linuxlogo224.pnm > logo_linux_gzsd_clut224.ppm
rm linuxlogo.pnm linuxlogo224.pnm

    将你选好的logo转换成png格式,定名为logo.png并与mklogo.sh放在统一路径下.
执行./mklogo.sh最后生成logo_linux_gzsd_clut224.ppm

    这个定名可以自由变动,但是必须遵守logo_yourname_type这类定名方法,这里仅罗列*_clut224.ppm的定名方法,其它格式的定名方法请查看drivers/video/logo/Makefile文件.

    将logo_linux_gzsd_clut224.ppm文件放到内核源码下的drivers/video/logo/目录下

    进入drivers/video/logo目录

    1.修改Kconfig文件

    增加:在endif #LOGO之前

    

config LOGO_LINUX_GZSD
        bool "gzsd logo"
        default n

    2.修改Makefile文件

    增加:

    obj-$(CONFIG_LOGO_LINUX_GZSD)       += logo_linux_gzsd_clut224.o

    3.logo.c中函数fb_find_logo中的 if (depth >= 8)上面增加:

    #ifdef CONFIG_LOGO_LINUX_GZSD
                logo = &logo_linux_gzsd_clut224;
#endif

    4.内核源码目录下的include/linux/linux_logo.h中增加

    extern const struct linux_logo logo_linux_gzsd_clut224;

    每日一道理
毅力,是千里大堤一沙一石的凝聚,一点点地累积,才有前不见头后不见尾的壮丽;毅力,是春蚕吐丝一缕一缕的环绕,一丝丝地坚持,才有破茧而出重见光明的辉煌; 毅力,是远航的船的帆,有了帆,船才可以到达成功的彼岸。

    5.在终端执行make menuconfig上.

    Device Drivers  ---> Graphics support  --->Bootup logo  --->gzsd logo

    保存退出后编译即可

    6.禁止LCD控制台的光标

    在内核源码目录下drivers/video/console/fbcon.c中

    注释掉函数:fb_flashcursor和fbcon_cursor内的所有内容

    7.让logo中屏幕旁边表现:

    drivers/video/fbmem.c

    修改函数fb_do_show_logo如下

static void fb_do_show_logo(struct fb_info *info, struct fb_image *image,
			    int rotate, unsigned int num)
{
	unsigned int x;
	int xoff,yoff; 

	/**for central logo**/ 
	xoff = (info->var.xres - num * (fb_logo.logo->width + 8))>>1; //得到旁边x坐标
	yoff = (info->var.yres - num * (fb_logo.logo->height + 8))>>1; //得到旁边y坐标

	if (rotate == FB_ROTATE_UR) {
		for (x = 0; x < num && image->dx + image->width <= info->var.xres; x++) {
			image->dx = xoff; 
			image->dy = yoff; 
			info->fbops->fb_imageblit(info, image);
			image->dx += image->width + 8;
		}
	} 
	else if (rotate == FB_ROTATE_UD) {
		for (x = 0; x < num && image->dx >= 0; x++) {
			info->fbops->fb_imageblit(info, image);
			image->dx -= image->width + 8;
		}
	} 
	else if (rotate == FB_ROTATE_CW) {
		for (x = 0; x < num && image->dy + image->height <= info->var.yres; x++) {
			info->fbops->fb_imageblit(info, image);
			image->dy += image->height + 8;
		}
	} 
	else if (rotate == FB_ROTATE_CCW) {
		for (x = 0; x < num && image->dy >= 0; x++) {
		info->fbops->fb_imageblit(info, image);
		image->dy -= image->height + 8;
		}
	}
}

    重新编译即可

    二.android启动后闪动画面修改:

    路径:文件系统源码下的frameworks/base/core/res/assets/images/下有两张图片

    android-logo-mask.png

    android-logo-shine.png

    修改这两张图片即可,注意请将本来的保存。










以上是关于翻译下下面linux内核logo的主要内容,如果未能解决你的问题,请参考以下文章

[翻译] Linux 内核中的位数组和位操作

Linux内核ROP姿势详解

Linux内核 - 设备模型(下)

内核源码目录结构

ubuntu下wget下载Linux内核源码make生成.config文件

求教怎么学习linux内核驱动