linux系统中怎样抓logo,linux启动成功修改logo



1:获得.png图片,可以截图获得,千万注意图片不能大于lcd屏幕,最好小点,大了有时显示不了。我几次没有显示就是图片原因。

2 使用Linux命令将图片转换为ppm图片:也可以使用logomaker或者linux系统下自带的JIMP编辑工具使用

# pngtopnm logo_linux_clut224.png > logo_linux_clut224.pnm

# pnmquant 224 logo_linux_clut224.pnm > logo_linux_clut224.pnm

# pnmtoplainpnm logo_linux_clut224.pnm > logo_linux_clut224.ppm

3 将新生成的logo_linux_clut224.ppm替换掉drivers/video/logo/ logo_linux_clut224.ppm,并删除 logo_linux_clut224.c logo_linux_clut224.c logo_linux_clut224.c logo_linux_clut224.o文件。注意不删除则下次编译没有重新进入内核

(3) 重新编译内核。

1、 将linux启动logo设置显示在屏幕中间位置

(1) 修改linux2.../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 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 dx >= 0; x++) {

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

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

}

} else if (rotate == FB_ROTATE_CW) {

for (x = 0;

x 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 dy >= 0; x++) {

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

image->dy -= image->height + 8;

}

}

}

clut224.pnm > linux_logo_clut224.ppm

然linux_logo_clut224.ppm 替换linux-2.6.32.2/drivers/video/logo 中对应的图像就可以

去除显示光标:

在内核的当前目录进入到drivers/video/console/fbcon.c 文件

将static void fb_flashcursor(void *private)   和 static void fbcon_cursor(struct vc_data *vc, int mode) 里的内容注释掉,使之变成空函数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值