在 ts_calibrate 启动时启用 HDMI 屏幕帧缓冲区时出现问题

在 ts_calibrate 启动时启用 HDMI 屏幕帧缓冲区时出现问题

我在跑EGT在 SAMA5D4 Xplained 板上。它使用 KMS 输出到 HDMI 屏幕。我有一个触摸屏,需要在第一次使用时进行校准,我正在使用 tslib 中的 ts_calibrate。我有一个小脚本来检查屏幕是否已经校准,如果没有,它会尝试启用屏幕并运行 ts_calibrate。

当我正常登录时,该脚本工作正常,但在启动后由 crontab 调用时,我得到一个空白屏幕:

@reboot /usr/share/myProject/startEGT.sh

这是我的脚本:

#!/bin/sh
# Startup script to launch calibration settings for touchscreen & start application

CAL_FILE=/etc/pointercal

if [ ! -f "$CAL_FILE" ]; then
    echo "Didn't find screen calibartion file"
    
    # Force screen on
    echo "1" > /sys/class/graphics/fb0/state    
    echo "U:1024x600p-0" > /sys/class/graphics/fb0/mode
    until [ $(cat /sys/class/graphics/fb0/state) = "1" ]
    do
        echo "1" > /sys/class/graphics/fb0/state
        echo "U:1024x600p-0" > /sys/class/graphics/fb0/mode
        # cat /sys/class/graphics/fb0/state
        sleep 2
    done
    
    export TSLIB_FBDEVICE=/dev/fb0
    ts_calibrate

fi

echo "Calibration file found"
# TODO: Need to check if ts_uinput already running
ts_uinput -d -v
EGT_INPUT_DEVICES=libinput:/dev/input/touchscreen0 EGT_SCREEN_SIZE=1024x600 /usr/share/myProject/startEGTproject

我怀疑这个问题与未安装的文件系统或未准备好的东西有关,但这是一个猜测。有人有任何指点吗?

相关内容