我需要制作一个QT应用程序,以便在我创建的嵌入式Linux系统的启动时运行。我可以通过串口ttySAC0访问系统。我尝试将应用程序添加到inittab,它运行但是tslib不起作用,可能是因为它无法找到它需要工作的环境变量,因为我在/etc/.profile文件中设置了这些环境变量用户登录后运行。我需要自动登录用户,以便设置环境变量以便tslib工作,或者在不登录的情况下设置这些环境变量。系统由buildroot和busybox组成。
答案 0 :(得分:4)
我已经弄明白了,我制作了这个shell脚本:
#!/bin/sh
#
#Sets necessary environment variables and runs the desktop
#
export TSLIB_TSDEVICE=/dev/touchscreen-1wire
export TSLIB_TSEVENTTYPE=INPUT
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_PLUGINDIR=/usr/lib/ts/
export TSLIB_CONSOLEDEVICE=none
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_CALIBFILE=/etc/pointercal
export LD_LIBRARY_PATH=/usr/lib
export QTDIR=/usr/lib/qt
export QWS_MOUSE_PROTO=tslib:/dev/touchscreen-1wire
/path/to/application -qws
然后通过以下方式使其可执行:
$chmod +x startup.sh
然后将此行添加到inittab:
tty1::once:/path/to/startup.sh
现在,当我启动时,应用程序运行正常,使用tslib,我仍然可以通过串行线路访问。
答案 1 :(得分:1)
在执行必要的/etc/init.d/S99myapp
命令以定义所需的所有环境变量后,编写一个启动应用程序的export VARIABLE=value
脚本。您可以在Buildroot源代码中的package/stunnel/S50stunnel
查找示例,以获取initscript的示例。