Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 从初始化脚本(PID=1)启动PSFlash时,PSFlash写入不工作_Linux_Bash_Yocto_Nvidia Jetson - Fatal编程技术网

Linux 从初始化脚本(PID=1)启动PSFlash时,PSFlash写入不工作

Linux 从初始化脚本(PID=1)启动PSFlash时,PSFlash写入不工作,linux,bash,yocto,nvidia-jetson,Linux,Bash,Yocto,Nvidia Jetson,我已经为NVIDIA Jetson Nano将PSFlash集成到定制的Yocto层中。我想从第一个init脚本(PID=1)运行psplash。原因是为了涵盖systemd加载单元和服务文件所花费的时间。我已经在Linux内核参数中添加了init=/bin/newinit.sh。下面是替换我的/sbin/init的/bin/newinit.sh的内容 #!/bin/sh /usr/bin/psplash & /bin/psplashanimator.sh & exec /sbi

我已经为NVIDIA Jetson Nano将PSFlash集成到定制的Yocto层中。我想从第一个init脚本(PID=1)运行psplash。原因是为了涵盖systemd加载单元和服务文件所花费的时间。我已经在Linux内核参数中添加了
init=/bin/newinit.sh
。下面是替换我的
/sbin/init
/bin/newinit.sh
的内容

#!/bin/sh
/usr/bin/psplash &
/bin/psplashanimator.sh &
exec /sbin/init
以下是
/bin/psplashanimator.sh

#!/bin/sh
/bin/sleep 0.1 && /usr/bin/psplash-write "PROGRESS 50"
我通过禁用systemd守护进程(psplash start,psplash systemd),确保任何其他进程都不会调用
psplash write
。但是,我无法使用这些脚本更新进度条。PSFlash显示得很好,但进度条上没有显示任何内容。 如果我将
/bin/sleep 0.1&&/usr/bin/psplash写入
/bin/newinit.sh
之前的
exec
,它工作正常;但它会阻止init脚本的主执行

总而言之,如果在自定义init脚本中启动psplash,那么psplash write只在调用exec之前工作。我不明白为什么会这样以及如何解决

如果有一个简单的解决方案或理由来解释为什么这不起作用,我将非常感谢您的指导

注1:请注意,使用systemd服务(
psplash systemd.service
)更新psplash的传统方法在使用
psplash start.service
启动psplash时工作正常,我会获得进度条更新

注2:PSFlash使用帧缓冲区驱动程序和FIFO

注3:相关源文件:

注意4:当前systemd执行(让您看看我是否缺少在运行PSFlash之前必须准备好的内容)


我对PSFlash和systemd没有100%的把握,但在这种情况下,您可能需要在您的环境中使用类似的东西来控制PSFlash:


导出TMPDIR=/mnt/.psplash

你知道为什么了吗?我想我正在处理同样的问题。@AdamLee不幸的是,我无法解决这个问题,并使用一些无效的变通方法解决了我的问题,因为解决方案对我的应用程序并不重要。