怎么显示linux logo图标

怎么显示linux logo图标,第1张

1. *** 作系统:DebianJessie

2.处理器: i3 / x86_64

在 Linux 中安装 Linux Logo工具

1. linuxlogo软件包 ( 5.11 稳定版) 可通过如下方式使用 apt, yum 或 dnf 在所有发行版中使用默认的软件仓库进行安装

1.# apt-get install linux_logo [用于基于 Apt 的系统] (译者注:Ubuntu中,该软件包名为linuxlogo)

2.# yum install linux_logo [用于基于 Yum 的系统]

3.# dnf install linux_logo [用于基于 Dnf 的系统]

4.或

5.# dnf install linux_logo.x86_64 [用于 64 位系统]

2. 装好linuxlogo软件包之后,你可以使用命令 linuxlogo 来获取你当前使用的发行版的默认徽标。.

1.# linux_logo

2.或

3.# linuxlogo

获取默认系统徽标

3. 使用 [-a] 选项可以输出没有颜色的徽标。当在黑白终端里使用 linux_logo 时,这个选项会很有用。

1.# linux_logo -a

黑白 Linux 徽标

 4. 使用 [-l] 选项可以仅输出徽标而不包含系统信息。

1.# linux_logo -l

输出发行版徽标

5. [-u] 选项可以显示系统运行时间。

1.# linux_logo -u

输出系统运行时间

6. 如果你对系统平均负载感兴趣,可以使用 [-y] 选项。你可以同时使用多个选项。

1.# linux_logo -y

输出系统平均负载

如需查看更多选项并获取相关帮助,你可以使用如下命令。

1.# linux_logo -h

Linuxlogo选项及帮助

7. 此工具内置了很多不同发行版的徽标。你可以使用 [-L list] 选项查看在这些徽标的列表。

1.# linux_logo -L list

Linux 徽标列表

如果你想输出这个列表中的任意徽标,可以使用 -L NUM 或 -L NAME 来显示想要选中的图标。

•-L NUM – 会输出列表中序号为 NUM 的图标 (不推荐)。

•-L NAME – 会输出列表中名为 NAME 的图标。

例如,如果想要显示 AIX 的徽标,你可以使用如下命令

1.# linux_logo -L 1

2.或

3.# linux_logo -L aix

输出 AIX 图标

注: 命令中的使用 -L 1 是因为 AIX 徽标在列表中的编号是1,而使用 -L aix 则是因为 AIX 徽标在列表中的名称为 aix

同样的,你还可以使用这些选项输出任何图标,以下是一些例子。.

1.# linux_logo -L 27

2.# linux_logo -L 21

各种 Linux 徽标

你可以通过徽标对应的编号或名字使用任意徽标。

一些使用 Linux_logo 的建议和提示

8. 你可以在登录界面输出你的 Linux 发行版徽标。要输出默认徽标,你可以在 ~/.bashrc文件的最后添加以下内容。

1.if[-f /usr/bin/linux_logo ]then linux_logofi

注: 如没有~/.bashrc 文件,你需要在当前用户的 home 目录下新建一个。

9. 在添加以上内容后,你只需要注销并重新登录即可看到你的发行版的默认徽标

在用户登录时输出徽标

其实你也可以在登录后输出任意图标,只需加入以下内容:

1.if[-f /usr/bin/linux_logo ]then linux_logo -L numfi

重要: 不要忘了将 num 替换成你想使用的图标。

10. 你也能直接指定徽标所在的位置来显示你自己的徽标。

1.# linux_logo -D /path/to/ASCII/logo

11. 在远程登录时输出图标。

1.# /usr/local/bin/linux_logo 》 /etc/issue.net

如果你想使用 ASCII 徽标而不是含有颜色的 ANSI 徽标,则使用如下命令

1.# /usr/local/bin/linux_logo -a 》 /etc/issue.net

12. 创建一个 Linux 上的端口 - 用于回应连接的端口。要创建 Linux 端口, 则需在 /etc/services 文件中加入以下内容

1.penguin 4444/tcp penguin

这里的 4444 是一个未被任何其他资源使用的空闲端口。你也可以使用其他端口。你还需要在 /etc/inetd.conf中加入以下内容:

1.penguin stream tcp nowait root /usr/local/bin/linux_logo

并使用以下命令重启 inetd 服务

1.# killall -HUP inetd

(LCTT 译注:然后你就可以远程或本地连接到这个端口,并显示这个徽标了。)

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。这里同样也有一些兼容性的数据,其中对我们有用的是:

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.方案设计

当然你不会只想显示一些简单图形,而是希望能把自已做的图片放上去。建议使用PhotoShop8.0这里提供三个方法加工图片:

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文件。

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 logo.png logo.png 将文件保存为224色素(目前fblogo工具仅支持到224色),接着再使用fblogo logo.png linux_logo.h 生成linux_logo.h内核启动代码中的图像缓冲区文件格式。

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://outofmemory.cn/yw/11620801.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存