psplash可以实现开机进度条,但是我编译完之后可以显示一个静态画面,进度条没有变化。请教哪位大侠用过,指点一下。
离线
psplash生成:
1.下载psplash:git clone git://git.yoctoproject.org/psplash
2.将图片转换成代码文件:./make-image-header.sh xxxlogo.png POKY,生成图片文件xxxlogo.c,xxxlogo.h
3.修改xxxlogo.c,将#include "psplash-poky-img.h"替换成#include "xxxlogo.h"
4.制作autogen.sh脚本,用于生成Makefile,如下
#!/bin/bash
aclocal
autoheader
automake --add-missing
autoconf
5.生成Makefile:./autogen.sh
6.配置交叉编译库:./configure --host=arm-linux CC=arm-linux-gnueabihf-g
7.执行make:生成psplash与psplash-write。
8.将psplash与psplash-write拷贝到根文件系统/usr/bin/目录下。
9.psplash.sh脚本在根文件系统/etc/init.d中,此项已经存在。
10.psplash.sh的链接在根文件系统/etc/rcS.d/目录下,用于开机启动。
---------------------
原文:https://blog.csdn.net/liming8754955/article/details/78506247
离线
终于稿明白了,启动psplash后,手动echo "PROGRESS 100" > /mnt/.psplash/psplash_fifo 可以直接看到效果,在每个启动任务启动的时候加上echo "PROGRESS $progress" > /mnt/.psplash/psplash_fifo 就可以以实现进度条变化了。
在/etc/init.d/rcS中增加如下:
startup_progress() {
# 当前进度大小=上一次的进度+上每次的进度的变化值
step=$(($step + $step_change))
if [ "$num_steps" != "0" ]; then
# 这里相当于重新计算当前step占进度条的百分比
progress=$((($step * $progress_size / $num_steps) + $first_step))
else
# 直接就是100%了
progress=$progress_size
fi
#echo "PROGRESS is $progress $runlevel $first_step + ($step of $num_steps) $step_change $progress_size"
#if type psplash-write >/dev/null 2>&1; then
# TMPDIR=/mnt/.psplash psplash-write "PROGRESS $progress" || true
#fi
# 将上面的progress的值写入fifo中去,echo的值是固定的。
if [ -e /mnt/.psplash/psplash_fifo ]; then
echo "PROGRESS $progress" > /mnt/.psplash/psplash_fifo
fi
}
---------------------
原文:https://www.cnblogs.com/zengjfgit/p/5116713.html
离线