更改嵌入式Linux中开机画面
来源:互联网 发布:淘宝9块9包邮 编辑:程序博客网 时间:2024/05/04 04:08
在此将我的logo方案更新一下 呵呵
1.方案分析
ARM-Linux启动时会先在LCD左上角显示一个ARMLINUX的小企鹅图案,也就是我们所说的bootlogo。
首先分析一下Logo的显示代码:
不难发现Logo显示是在加载显示驱动fb后由kernel/drivers/video/fbcon.c中的fbcon_show_logo函数来完成的。
fbcon_show_logo函数中有很多兼容性代码,不是都会用到的!我们用的是SHARP(夏普)的TFT真彩屏.
再仔细看一下,这里用到的显示数据均来自kernel/include/linux/linux_logo.h。这里同样也有一些兼容性的数据,其中对我们有用的是:
以上数据都是不需要你修改的 在fbcon_show_logo里只做了256色的显示,所以要先设置一个RGB调色板。这里的调色板是从0x20色开始编的,所以实际好象只有最多224色的显示。linux_logo.h里默认是做了一个214级的灰度调色板,如果想要更多色彩的话可以自已修改(注意调色板的颜色不能超过224种)
以上分析是针对系统原版内核256色80x80的启动图标的说明。而我们要通过修改或替代原内核文件,来实现我们制做公司的的启动图标,要求如下:
1.开发板起动以后以全屏显示即240x320模式显示
2.图像以224色彩显示
2.方案设计
当然你不会只想显示一些简单图形,而是希望能把自已做的图片放上去。建议使用PhotoShop8.0这里提供三个方法加工图片:
3)GIMP+FBLOGO GIMP为LINUX下一个绘图程序,我们使用它打开图片后在菜单栏先择: 图片->模式->索引颜色,然后通过工具选项将图片大小调整到240x320象数大小,保存为.png格式。在使FBLOGO工具将其转换成linux_logo.h文件。
使用前两种方法加工图片,还需要把数据放到我们的linux_logo.h里。调色板可以直接保存为文件,然后可以通过自制的小程序读出来就可以了。图片的点阵比较难取,当然也可以自己做个程序去取屏幕上的点,不过比较困难。而后一种方法使用fblogo工具将用GIMP转换的图片文件自动生成linux_logo.h文件。
3.最终实施方案
通过以上内容分析,我们确定使用第三种方法GIMP加fblogo工具的方案进行实施,以下我们制做的流程及其方法:
软件环境:linux虚拟机、fblogo工具、linux下的图像编辑工具GIMP
硬件环境:X86PC机一台、优龙ST2410开发板一个、交叉网线一条。
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
6.将linux_logo.h文件拷贝到kernel的include/linux目录即可。
7.重新编译linux系统内核,将生成的zImage内核镜像拷贝到windows下,准备对目标板进行烧写。
8.用串口将目标板与PC主机相连,接通电源,使用bnw工具进入目标板的bios程序并将生成的zImage内核镜像拷烧写到板子上,重起目标板,你会发现目标板上已经出现了美丽的logo图片。如果没有,请核对以上的步骤,并重新测试直到成功为止。
4 方案总结
4.1 方案实施过程中的关键问题
1.确保内核能够正常运行,编译时对开发板各硬件的驱动支持及其相关的配制,启动后能够自动加载文件系统。
2.安装fblogo工具,fblogo工具的编译需要使用到第三方的库文件libpng.so库以及zliba.a库的支持,编译成功后,在命令行试运行fblogo如果安装成功将出现其使用的帮助信息。
3.fblogo工具对图片的要求是仅支持PNG格式的224色图片。
4.最后针对不同的开发板的LCD显示屏应使用与其相适应的图片大小,否则可能使系统无法正常工作。
4.2 方案实施后的遗留问题
由于使用到了logo的制做工具fblogo所以图片在色彩上最大仅能支持到224色图片,在bootlogo启动文件linux_logo.h中有图像的色彩域点阵代码(即图片的16位进制的代码),如有需要可以自行修改,但其难度可想而知,建议可以将图片保存为TIF之类的非压缩格式,然后自已编写小程序将其从图象文件中的固定位置取点阵数据。
5 2.6内核启动Logo
在配置内核的时候选中了启动Logo的支持。
使用下面的方法可以将企鹅的Logo换成自己喜欢的任意图片。
首先准备一幅自己喜欢的图片,然后将背景涂成黑色。然后将该图片保存成png格式,例如linuxlogo.png。在Linux下使用下面的命令:
# pngtopnm linuxlogo.png > linuxlogo.pnm
# pnmquant 224 linuxlogo.pnm >linuxlogo224.pnm
# pnmtoplainpnm linuxlogo224.pnm > linuxlogo224.ppm
然后用生成的linuxlogo224.ppm替换/usr/src/linux-2.6.8.1/drivers/video/logo/logo_linux_clut224.ppm(最好先做好备份),然后删除同一目录下的logo_linux_clut224.c文件,重新编译内核,启动之后就可以在屏幕左上方看到自己的Logo了。
转载自:http://deshunfan.blog.163.com/blog/static/3424410120112242858541/
- 更改嵌入式Linux中开机画面
- Android 开机画面更改
- Android更改开机画面
- linux 中 怎么更改启动linux画面
- linux开发板下更改开机启动的画面(2)
- 嵌入式开机logo更改
- 修改linux开机画面
- linux 开机画面
- 嵌入式Linux更改开机图片(小企鹅)
- 如何更改win7开机启动画面
- Android中Linux开机启动画面设置方法
- 第一章:嵌入式QT 开机启动画面
- Qt中开机启动画面
- 嵌入式linux更改bootlogo
- 嵌入式Linux更改IP
- 更改BlackBerry的VendorID及开机运营商画面
- xp 开机画面【欢迎使用】四个字更改方法
- 源码中修改开机画面及登录画面
- (*(volatile unsigned long *)详解
- 线程(一)——入门
- tiny64103G模块拨号问题
- 基于OK6410的u-boot2010.03…
- 嵌入式linux的tftp安装配置
- 更改嵌入式Linux中开机画面
- read与fread的区别
- SVM总结
- 手把手教你写基于C++ Winsock的图片下载的网络爬虫
- MySql数据库:数据查重、去重的实现
- java中位运算符与逻辑运算符
- JavaScript基础
- 11.3~11.4NOIP模拟测试总结
- java之多线程中Thread类和Runnable接口使用方法