制作Linux嵌入式系统开机LOGO(图片)
内核:linux-2.6.22.6 ubuntu:Ubuntu 9.10 开发板: JZ2440(方法通用,不局限于JZ2440)
目的: JZ2440开机logo默认是一只可爱的小企鹅。我们把它替换成我们自己喜爱的图片
准备工作: 准备好BMP或者PNG 图片,若是别的格式的图片,可以使用 Windows自带的画图软件打开,然后另存为BMP或者PNG格式 Logo图片分辨率不小于JZ2440分辨率480*272,否则显示不了。
步骤: 1. 安装资料光盘Ubuntu 9.10没有的图片转换工具netpbm
$ sudo apt-get install netpbm 然后输入y //前提是ubuntu能上网
制作linux logo图片
假设图片为 jz2440.png(png格式图片)
$ pngtopnm jz2440.png > jz2440.pnm
$ pnmquant 224 jz2440.pnm > logo224.pnm
$ pnmtoplainpnm logo224.pnm > logo_linux_clut224.ppm
假设图片为 jz2440.bmp(BMP格式图片)
$ bmptopnm jz2440.bmp > jz2440.pnm
$ pnmquant 224 logo.pnm > logo224.pnm
$ pnmtoplainpnm logo224.pnm > logo_linux_clut224.ppm
注意:转换后的文件名有规定,必须是logo_linux_clut224.ppm
3.生成的logo_linux_clut224.ppm就是我们需要的logo文件,把它拷贝到内核目录 覆盖原来的logo文件
$ cd /work/system/linux-2.6.22.6/drivers/video/logo/
$ cp /work/logo_linux_clut224.ppm . //笔者制作的logo文件在/work/目录
- 查看logo目录是否存在logo_linux_clut224.o的文件,如果有一定要删除! $ rm logo_linux_clut224.o
配置内核支持logo显示(如果内核用的是linux-2.6.22.6_jz2440.patch补丁,默认已经支持logo显示)
$ make menuconfig
Device Drivers —>
Graphics support —>
Console display driver support—>
<*>Framebuffer console support
Bootup logo —>
<*> Standart 224-color linux logo
6.重新编译内核,烧写 $make uImage 把uImage上传到window tftp软件所在目录
进入开发板uboot,作一些必要设置, 以PING通window
set gatewayip 192.168.1.1 //设置网关
set netmask 255.255.255.0 //设置子网掩码
set ipaddr 192.168.1.111 //设置uboot阶段的开发板ip
set serverip 192.168.1.170 //设置服务器ip
tftp 30000000 uImage //下载uImage
nand erase kernel //擦除kernel分区
nand write.jffs2 30000000 kernel //烧写uImage
因为笔者的文件系统在nfs上, 所以先设bootargs set bootargs noinitrd root=/dev/nfs nfsroot=192.168.1.199:/work/busybox-1.21.0/rootfs ip=192.168.1.100:192.168.1.199:192.168.1.255:255.255.255.0::eth0 init=/linuxrc console=ttySAC0,115200 //设置bootargs save //保存环境变量 boot //启动开发板
效果:
注:如果您使用的linux发行版是Fedora,可以使用友善之臂公司提供的工具logomaker制作,具体步骤参考它们用户手册,不在赘述。
- python学习手册-爬爬那些年咱没见过的校花图片
- 正则表达式游戏的答案
- .NET Core的日志[2]:将日志输出到控制台
- 2017年高等教育十大战略性技术(二)
- 通过实例模拟ASP.NET MVC的Model绑定机制:数组
- 《全球贸易信息动态》
- .NET Core的日志[3]:将日志写入Debug窗口
- Code2Cloud:比ALM中断更大
- .NET Core的日志[4]:将日志写入EventLog
- 微信小程序不行了?看小马哥带你忆童年
- ASP.NET MVC三个重要的描述对象:ControllerDescriptor和ActionDescriptor的创建
- .NET Core的日志[5]:利用TraceSource写日志
- 物联网芯片正在积极开发 明年将得到爆发
- 韩国全球首测5G网络下自动驾驶 为汽车安全保驾护航的竟是路灯
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法