树莓派自定义开机启动画面(新版本2017-4后的)

由于新版本2017-04版本树莓派stretch中的plymouth.ignore-serial-consoles会指定了tty1,从而导致了树莓派开机自定义图片显示时,不能跳转至tty3,可以根据设置plymouth.ignore-serial-consoles的主题风格,来到达我们想要的风格

sudo plymouth-set-default-theme -l

查看相关的主题
然后通过设置

sudo plymouth-set-default-theme details

设置相应的主题风格,从而到达开机屏蔽一切显示(只显示我们自己的图片的目的)

详细请看:

http://nerdlogger.com/2017/04/04/getting-the-most-out-of-plymouth-or-how-to-make-rasbian-jessie-to-boot-with-a-full-splash-screen/

1.通过将行添加
disable_splash=1到/boot/config.txt来禁用Raspberry Pi’颜色测试’ 。
2.通过添加
logo.nologo到/boot/cmdline.txt来禁用屏幕角落的Raspberry Pi标志。
在 rootwait 后面加入 quiet splash plymouth.ignore-serial-consoles

3.console=tty1改为console=tty3 在/boot/cmdline.txt末尾添加loglevel=3 从而跳转界面,屏蔽树莓派在初始化中的代码流显示。

示例cmdline.txt

dwc_otg.lpm_enable=0 console=tty3 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles logo.nologo loglevel=3 disable_overscan=1

设置启动屏幕

设计您的闪屏图像并将其放置在易于阅读的位置。
安装fbi,framebuffer图像查看器,以root身份运行。
sudo apt-get install fbi

在root权限下创建
/etc/systemd/system/splashscreen.service

注意网上有很多的教程是没有换行的这里service需要换行

[Unit]
Description=Splashscreen
DefaultDependencies=no
After=basic.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,使服务在引导时运行(开机自启动)
删除黑色边框
您可能会碰到这样一个问题,那里似乎是一个黑色的边框画在闪屏旁边。这实际上是整个帧缓冲区周围的硬件级黑色边框,可以通过添加
disable_overscan=1到/boot/config.txt来禁用。

相关指令说明(方便查看相关进程)
systemd-analyze //查看开机启动耗时
systemctl enable splashscreen //开启开机自启动
systemctl disable splashscreen //关闭开机自启动
systemctl status splashscreen //查看服务当前状态

当创建服务后,可以 systemctl start splashscreen(开启服务后),systemctl status splashscreen(查看相关服务的当前状态),systemctl stop splashscreen (停止相关的服务)

静态动画中主要的是开机显示图片的splashscreen.service
在root的权限中输入

systemctl list-unit-files

可以看到内部相关的进程等那些是自启动
WantedBy=sysinit.target 当执行到这个target是同时执行我们的splashscreen.service的服务,After=graphical.target在进入图形界面前

比如你想一上电的时候,你就可以运行的你开机画面的时候 你可将你的开机服务挂载到basic.target (WantedBy=basic.target)当basic.target启动时,你的开机也启动

有时候我们会发现,我们的服务并没有打开,这个时候我们可以

sudo raspi-config

打开 3.Boot Options 使能B3.Splash Screen
这样开机的时候,就会出现了你设置的开机图片,

详细关于Systemd的教程参考,以及service书写规格

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值