2012-06-14 4 views
1

내가 만든 임베디드 리눅스 시스템을 시작할 때 실행하려면 QT 앱을 만들어야합니다. 직렬 포트 ttySAC0를 통해 시스템에 액세스 할 수 있습니다. 내가 inittab에 응용 프로그램을 추가했는데, 실행되지만 tslib가 작동하지 않습니다. 아마도 사용자가 실행하는 /etc/.profile 파일에서 환경 변수를 설정하기 때문에 작동해야하는 환경 변수를 찾을 수 없기 때문입니다. 로그인. tslib가 작동하도록 환경 변수가 설정되거나 로그인하지 않고 환경 변수를 설정하는 방법으로 사용자를 자동 로그인해야합니다. 시스템은 buildroot 및 busybox로 이루어져 있습니다.busybox 자동 로그인으로 리눅스가 임베디드

+0

안녕하세요 @ iah.vector, /etc/init.d/S99_your_script에 스크립트를 작성할 수 있습니다. 이 스크립트 내에서 환경 변수를 설정 한 다음 백그라운드 모드에서 Qt 애플리케이션을 호출 할 수 있습니다. –

답변

4

내가 그것을 알아 냈어요,이 쉘 스크립트를 만들어

tty1::once:/path/to/startup.sh 
:
$chmod +x startup.sh 

다음 inittab으로이 라인을 추가

이제 부팅 할 때 응용 프로그램이 tslib로 정상적으로 돌아가고 필요할 때마다 직렬 회선을 통해 액세스 권한을 얻었습니다.

1

필요한 모든 환경 변수를 정의하는 데 필요한 export VARIABLE=value 명령을 실행 한 후 응용 프로그램을 시작하는 스크립트를 작성하십시오. /etc/init.d/S99myapp initscript의 예를 보려면 Buildroot 소스에서 package/stunnel/S50stunnel을 찾아 볼 수 있습니다. 그런 다음

#!/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 

이 실행 파일로 만든 :

+0

가 나는 rc 스크립트를 작성이 포함 된 이름 S99exportEnvVars! #/빈/SH # QT에 대한 # 수출하여 환경과 TSLib 환경 변수를 내보내기 TSLib # 경우 시작에서 "$ 1") 에코 "... " 수출 TSLIB_TSDEVICE =/디바이스/터치 스크린 1wire 에코"QT 환경 변수 내보내기 ... " 수출 QTDIR =/USR/LIB/QT 수출 QWS_MOUSE_PROTO = tslib/디바이스/터치 스크린 1wire ; 중지) ; restart | reload) ;; *) echo "invalid!" exit 1 esac exit $? 재부팅 할 때 스크립트가 작동한다는 의미의 에코 라인이 있는데 로그인했을 때 env 변수가 아닌 것으로 설정되었습니다. –

+0

수출이 터미널에 달려 있기 때문입니다. 그들은'.bashrc' 파일에 넣을 때 그대로 남아 있지 않습니다. – VivienG