我需要制作一个 QT 应用程序,以便在我制作的嵌入式 linux 系统启动时运行。我可以通过串口 ttySAC0 访问系统。我尝试将应用程序添加到 inittab ,它运行但 tslib 不工作,可能是因为它找不到它需要工作的环境变量,因为我在 /etc/.profile 文件中设置了这些环境变量,该文件在用户之后运行登录。我需要自动登录用户,以便设置环境变量以便 tslib 可以工作,或者在不登录的情况下设置这些环境变量。系统是用 buildroot 和 busybox 制作的。
问问题
6580 次
2 回答
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 上运行良好,并且我仍然可以在需要时通过串行线路访问。
于 2012-06-19T15:32:32.230 回答
1
编写一个/etc/init.d/S99myapp
脚本,在执行必要的export VARIABLE=value
命令来定义您需要的所有环境变量后启动您的应用程序。例如,您可以package/stunnel/S50stunnel
在 Buildroot 源代码中查看 initscript 的示例。
于 2012-06-18T13:29:44.477 回答