嵌入式linux与busybox自动登录

时间:2012-06-14 18:37:21

标签: embedded-linux autologin busybox

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

2 个答案:

答案 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的示例。