嵌入式Linux开机Logo的制作

news/2024/7/8 5:33:39 标签: linux, 嵌入式, 工具, colors, byte, 图形

 

嵌入式Linux开机Logo的制作

 

 

 

ARM-Linux启动时会先在LCD左上角显示一个ARMLINUX的小企鹅图案,也就是我们所说的bootlogo。

1.首先分析一下Logo的显示代码:

Logo显示是在加载显示驱动fb后由kernel/drivers/video/fbcon.c中的fbcon_show_logo函数来完成的。

fbcon_show_logo函数中有很多兼容性代码.

这里用到的显示数据均来自kernel/include/linux/linux_logo.h。这里同样也有一些兼容性的数据,其中对我们有用的是:

 linux_logo_red[] —— 调色板中的红色分量

 linux_logo_green[] —— 调色板中的绿色分量

 linux_logo_blue[] —— 调色板中的蓝色分量

 linux_logo[] —— Logo图案的点阵

以上数据都是不需要你修改的 在fbcon_show_logo里只做了256色的显示,所以要先设置一个RGB调色板。这里的调色板是从0x20色开始编的,所以实际好象只有最多224色的显示。linux_logo.h里默认是做了一个214级的灰度调色板,如果想要更多色彩的话可以自已修改(注意调色板的颜色不能超过224种)

 再看linux_logo[],这是Logo图案的点阵。因为是256色的图,所以每点为一个Byte。Logo图案是80*80大小,所以这里总共有6400 Byte。一共是800行,每行8 Byte即8 Point,每10行数据对应Logo图案中一行。可以先自己试试放一些简单图形进去显示看看。(同样注意颜色要从0x20开始,0-0x1f的32种颜色是不确定的)。

  

                          

以上分析是针对系统原版内核256色80x80的启动图标的说明。而我们要通过修改或替代原内核文件,来实现我们制做公司的的启动图标,要求如下:

1.开发板起动以后以全屏显示即240x320模式显示

2.图像以224色彩显示

2.方案设计



 1)先搞一个256色调色板,前面32个颜色空着,把后面224种颜色设一下吧。注意要尽量把颜色选全一些,要能覆盖到整个颜色区域上。这样就有一个通用的调色板,可适用所有图片,但颜色的真实性稍差。然后把自己的图片打开,先将颜色设置到RGB空间里,然后裁剪/缩放到240x320象数的尺寸,再将颜色优化到先前定义好的调色板里,图片就加工好了。

 2)不用通用调色板,打开自己的图片,先将颜色设置到RGB空间,裁剪/缩放到240x320象素的尺寸,然后指定优化为224色图象。这样图片就加工好了,但其调色板就是专用的,不适合用到其他图片里。

3)GIMP+FBLOGO GIMP为LINUX下一个绘图程序,我们使用它打开图片后在菜单栏先择: 图片->模式->索引颜色,然后通过工具选项将图片大小调整到240x320象数大小,保存为.png格式。在使FBLOGO工具将其转换成linux_logo.h文件。

使用前两种方法加工图片,还需要把数据放到我们的linux_logo.h里。调色板可以直接保存为文件,然后可以通过自制的小程序读出来就可以了。图片的点阵比较难取,当然也可以自己做个程序去取屏幕上的点,不过比较困难。而后一种方法使用fblogo工具将用GIMP转换的图片文件自动生成linux_logo.h文件。



使用第三种方法GIMP加fblogo工具的方案进行实施,以下我们制做的流程及其方法:

软件:fblogo工具linux下的图像编辑工具GIMP

1.调试并编译开发板所相对应的内核包,调试通过后保留.config配制文件,准备编译bootlogo时使用。

2.在linux上解压fblogo_0.52.tgz包,并进行软件安装,生成fblogo二进制可执行文件。

3.进入linux的kde图形界面,在终端下使用gimp命令运行gimp工具

4.打开公司的logo.jpg图像文件,依次选择 图像->模式->索引颜色、并将其图片大小调至240x320象素,最后将文件保存为logo.png格式。

5.将上述文件保存到fblogo工具所在文件夹,首先在命令行下执行convert –colors 223 logo.png logo.png 将文件保存为224色素(目前fblogo工具仅支持到224色),接着再使用fblogo logo.png linux_logo.h 生成linux_logo.h内核启动代码中的图像缓冲区文件格式。

6.将linux_logo.h文件拷贝到kernel的include/linux目录即可。







fblogo工具对图片的要求是仅支持PNG格式的224色图片。

最后针对不同的开发板的LCD显示屏应使用与其相适应的图片大小,否则可能使系统无法正常工作。

方案实施后的遗留问题

由于使用到了logo的制做工具fblogo 所以图片在色彩上最大仅能支持到224色图片,在bootlogo启动文件linux_logo.h中有图像的色彩域点阵代码(即图片的16位进制的代码),如有需要可以自行修改,但其难度可想而知,建议可以将图片保存为TIF之类的非压缩格式,然后自已编写小程序将其从图象文件中的固定位置取点阵数据。

内核启动Logo

在配置内核的时候选中了启动Logo的支持。

使用下面的方法可以将企鹅的Logo换成自己喜欢的任意图片。

首先准备一幅自己喜欢的图片,然后将背景涂成黑色。然后将该图片保存成png格式,例如linuxlogo.png。在Linux下使用下面的命令:

# pngtopnm linuxlogo.png > linuxlogo.pnm

# pnmquant 224 linuxlogo.pnm > linuxlogo224.pnm

# pnmtoplainpnm linuxlogo224.pnm > linuxlogo224.ppm



然.ppm替换/usr/src/linux-2.6.8.1/drivers/后用生成的linuxlogo224video/logo/logo_linux_clut224.ppm(最好先做好备份),然后删除同一目录下的logo_linux_clut224.c文件,重新编译内核,启动之后就可以在屏幕左上方看到自己的Logo了。


http://www.niftyadmin.cn/n/808072.html

相关文章

[mmcv系列] pip安装mmcv记录

文章目录 1.查看torch和cuda版本1.安装1.1从预编译包安装1.2 源码编译安装 2.校验报错:from mmcv import Config 可以直接 参考教程: 找到pip安装,选择自己的cuda和torch版本,复制指令到终端安装即可: 1.查看torch和c…

自定义库引用时编译出错“collect2: error: ld returned 1 exit status”

想必很多人都遇到过这样的事情,需要写一个共享库,这个库又不能让所有的人都了解里面是怎么实现的,所以只能提供一个库出来供项目使用,可能是处于保密、核心业务的需要,这些都能够理解。笔者也写了一个简单的东西测试了…

android系统cpu资源相关查询

android系统cpu资源相关查询我们都知道android是基于linux系统内核的,在linux系统中我们查看系统资源消耗情况,一个可以直接通过命令行的top命令来看,里面有cpu具体的使用情况,当然在android系统上也还是保留了的。top还是很有用&…

Android编译问题:Only 64-bit build environments are supported beyond froyo/2.2

Android编译问题:Only 64-bit build environments are supported beyond froyo/2.2 文章分类:移动开发 在使用:$ repo init -u git://Android.git.kernel.org/platform/manifest.git$ repo sync下载完代码后,进行make,$cd ~/mydr…

细说网页开发者工具F12-前端开发利器一

网页开发者工具之 Elements 前言 写这篇文章的目的主要是为了帮助前端小白,学习使用浏览器自带的F12网页开发者工具,来快速定位调试分析问题、解决问题。当然这仅是作者的个人学习心得,有不足之处欢迎大家指点。由于篇幅有限,这…

历时两年,拿下驾照

在深圳花了两周年,才搞定驾照。笔者是12年9月报的名,适逢驾考改革,深圳人满为患,驾校拖拖踏踏,最后还是同道中人指导才加快了进度,终于考完拿到驾照了,真的好悲剧啊!最近都是在准备驾…

细说网页开发者工具F12-前端开发利器二

前言 写这篇文章是细说网页开发者工具F12 - 前端开发利器的第二篇文章,若觉得不错请关注作者。 F12之Console 就是位于Elemnets右边的,打开后你会发现什么都没有 我们试着进入到友链页面,发现console面板出现了一些警告。这是因为在https域…

修改Android开机画面

Android系统开机动画包括两部分: 开机显示的 ANDROID 文字; ANDROID发光动画。 这篇文章说的开机动画是第一种,下面开始正文! 1. 制作当前屏幕像素的图片(模拟器默认为320*480) 使用PS制作一张320*480的图片,保存时选“保存为 Web 所用格式”…