1

我需要制作一个 QT 应用程序,以便在我制作的嵌入式 linux 系统启动时运行。我可以通过串口 ttySAC0 访问系统。我尝试将应用程序添加到 inittab ,它运行但 tslib 不工作,可能是因为它找不到它需要工作的环境变量,因为我在 /etc/.profile 文件中设置了这些环境变量,该文件在用户之后运行登录。我需要自动登录用户,以便设置环境变量以便 tslib 可以工作,或者在不登录的情况下设置这些环境变量。系统是用 buildroot 和 busybox 制作的。

4

2 回答 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 回答