本篇文章给大家分享的是有关Raspberry Pi上的如何自定义动态开机画面,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
互联网上有许多指南在Linux上创建自定义启动屏幕,但大多数Raspbian都基于SysV init,并且不能与Raspbian现在使用的systemd接口良好。因此,我已经写了这个指南,直接将简单的init风格的splash屏幕移植到systemd,以便快速简便的解决方案来覆盖Raspberry Pi上的开机画面。
静态
首先,我们要从启动过程中删除尽可能多的文本,以允许干净的转换。
通过将行添加
disable_splash=1
到/boot/config.txt来禁用Raspberry Pi'颜色测试' 。
通过添加
logo.nologo
到/boot/cmdline.txt来禁用屏幕角落的Raspberry Pi标志。
通过添加
consoleblank=0 loglevel=1 quiet
到/boot/cmdline.txt来禁用内核等各种输出位。
通过
systemctl disable getty@tty1
以root 身份运行来禁用登录提示。
设置启动屏幕
设计您的闪屏图像并将其放置在易于阅读的位置。
安装fbi,framebuffer图像查看器,以root身份运行。
sudo apt-get install fbi
创建具有以下内容的文件/etc/systemd/system/splashscreen.service:
[Unit] Description=Splash screenDefaultDependencies=no After=local-fs.target [Service] ExecStart=/usr/bin/fbi -d /dev/fb0 --noverbose -a /opt/splash.png StandardInput=tty StandardOutput=tty [Install] WantedBy=sysinit.target
根据需要,更换/opt/splash.png静态开机画面图像的存储路径。
-d /dev/fb0
选项将告诉fbi哪个帧缓冲区显示图像。
–noverbose
将屏幕底部的fbi'状态栏'。-a将允许fbi自动选择图像的正确缩放级别。如果您的图像已经处于正确的显示分辨率,则可以省略此选项。FBI希望获得一个TTY,所以StandardInput和StandardOutput选项将允许这一点。您也可以省略这些选项,并将-T标志传递给fbi,指定要使用的tty的编号。
该DefaultDependencies选项将覆盖systemd在启动过程中延迟启动服务的默认行为(因为大多数普通服务需要访问资源),并且该WantedBy选项将导致fbi在引导过程的早期加载,已经准备好了,通过
通过以root用户身份运行
systemctl enable splashscreen,使服务在引导时运行。
您现在可以通过
systemctl start splashscreen
以root用户身份运行,或只需重新启动Pi 即可测试。
删除黑色边框
您可能会碰到这样一个问题,那里似乎是一个黑色的边框画在闪屏旁边。这实际上是整个帧缓冲区周围的硬件级黑色边框,可以通过添加
disable_overscan=1
到/boot/config.txt来禁用。
动态开机画面
在我的情况下,上述过程工作正常,但是由于我已经将系统设置为自动启动到Kodi,并且Kodi在重新显示启动屏幕本身之前将屏幕黑白地短暂显示,这样会产生刺耳的效果。我的解决方案是用黑色背景上的简单加载屏幕替换第一个闪屏,从而为转换创造更平滑,更真实的感觉。但静态加载屏幕中的乐趣在哪里?
fbi不支持动画,我们将利用专门的,被低估的工具bannerd,不幸的是在存储库中不可用,因此必须从源代码编译。幸运的是,这似乎是很直截了当的:
git clone https://github.com/alukichev/bannerd.gitcd bannerd
然后将新创建的bannerd二进制文件复制到易于阅读的位置,如/ usr / local / bin / bannerd,并确保它是可执行的。
现在,我们需要将动画转换成一系列BMP文件。用GIF动画编辑器将视频生成GIF
然后用GIF分离器将动态图分离出许多的bmp文件。这些文件放在一个文件夹里上传到树莓派。
将BMP文件复制到易于访问的位置。
现在,可以通过更改ExecStart行来轻松调整来自较早版本的systemd服务:
ExecStart=/bin/sh -c '/usr/local/bin/bannerd/bannerd -vD /path/to/frames/*.bmp'
调用sh是扩展glob的必要条件。
如前所述,您可以通过运行
systemctl start splashscreen
或重新启动来测试启动屏幕。启动的演示视频可以到主页的视频里找到。
以上就是Raspberry Pi上的如何自定义动态开机画面,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/206595.html