嵌入式Linux设备启动logo设置

前言

PBM/PGM/PPM的分类

PBM:位图(bitmap),仅有黑与白,没有灰,老大
PGM:灰度图(grayscale),老二
PPM:通过RGB三种颜色显现的图像(pixmaps),老三

PBM/PGM/PPM 图片是同类图片格式,图像文件格式为

文件类型(P1/P2/P3/P4/P5/P6/)+ 注释(“# XXXX”) + 宽度与高度(XXX XXX)+ 最大像素值(XXX) + 编码(ASCII 或 Binary)

Magic NumberTypeEncoding
P1Bitmap,PBM文件ASCII
P2Graymap,PGM文件ASCII
P3Pixmap,PPM文件ASCII
P4Bitmap,PBM文件Binary
P5Graymap,PGM文件Binary
P6Pixmap,PPM文件Binary
举例

1 笔者项目中替换的logo格式(Linux内核的logo XXXX.ppm文件必须为P3格式)

00000000h: 50 33 0A 38 30 30 20 34 38 30 0A 32 35 35 0A 31 ; P3.800 480.255.1
00000010h: 39 36 20 31 39 36 20 31 39 36 20 20 32 33 37 20 ; 96 196 196  237 
00000020h: 32 33 37 20 32 33 37 20 20 32 33 37 20 32 33 37 ; 237 237  237 237
00000030h: 20 32 33 37 20 20 32 33 37 20 32 33 37 20 32 33 ;  237  237 237 23
00000040h: 37 20 20 32 33 37 20 32 33 37 20 32 33 37 20 20 ; 7  237 237 237  
00000050h: 32 33 37 20 32 33 37 20 32 33 37 0A 32 33 37 20 ; 237 237 237.237 
00000060h: 32 33 37 20 32 33 37 20 20 32 33 37 20 32 33 37 ; 237 237  237 237
00000070h: 20 32 33 37 20 20 32 33 37 20 32 33 37 20 32 33 ;  237  237 237 23
00000080h: 37 20 20 32 33 37 20 32 33 37 20 32 33 37 20 20 ; 7  237 237 237  
00000090h: 32 33 37 20 32 33 37 20 32 33 37 20 20 32 33 37 ; 237 237 237  237
000000a0h: 20 32 33 37 20 32 33 37 0A                      ;  237 237.

2 用各种格式转换器转换出的logo格式(采用其他图片转换器转出来的XXXX.ppm文件为P6格式):

00000000h: 50 36 0A 38 30 30 20 34 38 30 0A 32 35 35 0A BF ; P6.800 480.255.?
00000010h: BF BF F1 F1 F1 EC EC EC ED ED ED ED ED ED ED ED ; 靠耨耢祆眄眄眄眄
00000020h: ED ED ED ED ED ED ED ED ED ED ED ED ED ED ED ED ; 眄眄眄眄眄眄眄眄
参考链接

PPM图片格式及其C读写代码:
https://www.cnblogs.com/oloroso/p/5846623.html?utm_source=itdadao&utm_medium=referral

格式转换思路

1、将.xxx文件先转换为.png文件
2、将.png文件先转换为.ppm文件

1 Linux内核设置

Device Drivers →
	Graphics support →
		Bootup logo (选中) →
			Standard black and white Linux logo (选中)
			Standard 16-color Linux logo (选中)
			Standard 224-color Linux logo (选中)

2 Linux内核默认的图片

选中“Standard 224-color Linux logo”代表着开启Linux内核配置选项“CONFIG_LOGO_LINUX_CLUT224”,默认的图片logo_linux_clut224.ppm,图片信息为80*80、P3格式,logo如下:
Linux内核默认logo

3 安装netpbm工具(图片格式转换工具)

# 查看系统有没安装
$ ls /usr/bin/pnm*
$ ls /usr/bin/pngtopnm /usr/bin/pnmquant /usr/bin/pnmtoplainpnm

# 如果没有,则安装netpbm工具;如果有,可以更新netpbm工具
$ sudo apt-get install netpbm

4 将目标文件转换为.png格式文件

在线格式转换链接:
https://zhuanhuan.supfree.net/
例如:上传一张文件名为Logo.jpg,转换后下载,将其命名为Logo.png

5 图片转换

将下面的东西导入Shell脚本

#!/bin/sh

echo "开机启动的logo修改"

# logo名称(转换成.png文件名),这里需修改
LogoName="Logo"

# 内核的logo的默认路径,这里需修改
LogoPath="/XXXXXXXXXX/linux/drivers/video/logo/"

# 转换png成pnm格式
pngtopnm "$LogoName".png > "$LogoName".pnm

# 转换像素数为224
pnmquant 224 "$LogoName".pnm > "$LogoName"_224.pnm

# 转换二进制的pnm格式为文本的ppm格式
pnmtoplainpnm "$LogoName"_224.pnm > "$LogoName"_clut224.ppm

# 删除内核默认logo文件并添加logo文件,logo_linux_clut224.ppm 为默认的logo文件名
# logo_linux_clut224.c 为编译内核自动生成的文件
rm -rf "$LogoPath"logo_linux_clut224*
cp "$LogoName"_clut224.ppm "$LogoPath"logo_linux_clut224.ppm
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值