AM335X替换开机启动LOGO

    TI的Linux SDK从Processor SDK Linux 03_00开始,启用systemd启动式,默认就没有开启LOGO。但启动LOGO仍然存在,psplash,psplash-default,psplash-write在/usr/bin目录下仍能找到。

    psplash是linux下开源的应用程序,可以集成到linux中作开机启动使用。

1.使能开机LOGO

    添加开机LOGO方法参照:https://e2e.ti.com/support/processors/f/processors-forum/619919/linux-am3354-launching-qt-app-on-startup/2287228#2287228。按systemd开启动方式,先添加启动服务,然后用systemctl命令enable。启动后不能自行退出,还需要再添加关闭服务。这两个服务分别执行不能的应用程序。看功能应该是用共享内存通讯,LOGO程序读到QUIT指令后自动退出,更新进度条方法也是这样。

    启动服务在/lib/systemd/system/下添加文件psplash-start.service。内容如下:    

[Unit]
Description=Psplash Boot Screen
DefaultDependencies=no

[Service]
ExecStartPre=/bin/mount tmpfs -t tmpfs /mnt/.psplash -o,size=40k
ExecStart=/usr/bin/psplash

   停止服务在/lib/systemd/system/下添加文件psplash-stop.service。内容如下:   

[Install]
WantedBy=sysinit.target

psplash-stop.service
[Unit]
Description=Terminate Psplash Boot Screen
After=psplash-start.service

[Service]
Type=oneshot
ExecStartPre=/usr/bin/psplash-write "QUIT"
ExecStart=/bin/umount /mnt/.psplash
TimeoutSec=20s

[Install]
WantedBy=multi-user.target

   其中,关闭服务After可以往后调,不然开机LOGO显示时间比较短,不能撑到开机。我是调整到thttpd.service服务之后。

   然后通过systemctl enable psplash-start psplash-stop and systemctl daemon-reload使能psplash服务。重启后就能看到LOGO画面。

  如果添加失败,使用命令systemctl status查看错误信息排查问题。

2.替换开机LOGO

    psplash刷图片速度比较慢,我的板子是1280*800看到很慢的刷图片过程,1S左右,所以建议只做小LOGO。

   参考链接:https://e2e.ti.com/support/processors/f/processors-forum/325588/am335x-replacing-the-ti-splash-screen/1133908#1133908

   1)下载psplash源码

    http://git.yoctoproject.org/cgit/cgit.cgi/psplash/

  2)使用 ./make-image-header.sh脚本把图片转换成H头文件

   解压出源码包,把LOGO图片拷贝进源码包,后执行

   ./make-image-header.sh <path_to_image_file> <NAME>

   <path_to_image_file>替换成LOGO图片名称,<NAME>理论上可以取任意名字,但最好是用POKY,因为源码中有关图片尺寸的宏定义,都默认以POKY开头,自己任意定义,需要修改源码中各处宏定义名称。

   指令执行后会在当前目录下生成<your_logo_filename>-img.h文件

   把源码psplash.c中的 行#include "psplash-poky-img.h" 替换为 #include "<your_logo_filename>-img.h"

 

  如果执行失败,可能缺少安装库,执行sudo apt-get install libgdk-pixbuf2.0-dev即可。

  3)添加脚本文件

   在源码目录中添加脚本文件autogen.sh,内容如下:  

#!/bin/sh

autoreconf -v -i
./configure --host=arm-linux CC=arm-linux-gnueabihf-gcc

  4)修改背景颜色

    psplash-colors.h 文件中找到#define PSPLASH_BACKGROUND_COLOR 0xec,0xec,0xe1  把值全替换为0x00,背景黑色。

  5)去除进度条

  把psplash.c中有关函数psplash_draw_progress的部分全屏蔽,初始化部分调用psplash_fb_draw_image画进度条的地方也屏蔽。

   6)编译环境变量替换

   直接的方法   

export CROSS_COMPILE=arm-linux-gnueabihf-
export ARCH=arm
export PATH=$PATH:$HOME/ti-sdk-am335x-evm-06.00.00.00/linux-devkit/sysroots/i686-arago-linux/usr/bin

  简单方法

  找到自己的ti sdk开发板,进入/ti-processor-sdk-linux-am335x-evm-06.03.00.106/linux-devkit

 执行下面执行,直接把所有开发环境配置完

source environment-setup

 7)编译

  执行 ./autogen.sh生成makefile

  执行 make

  最后生成psplash,psplash-write替换掉/usr/bin目录下的文件即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值