내가 만든 임베디드 리눅스 시스템을 시작할 때 실행하려면 QT 앱을 만들어야합니다. 직렬 포트 ttySAC0를 통해 시스템에 액세스 할 수 있습니다. 내가 inittab에 응용 프로그램을 추가했는데, 실행되지만 tslib가 작동하지 않습니다. 아마도 사용자가 실행하는 /etc/.profile 파일에서 환경 변수를 설정하기 때문에 작동해야하는 환경 변수를 찾을 수 없기 때문입니다. 로그인. tslib가 작동하도록 환경 변수가 설정되거나 로그인하지 않고 환경 변수를 설정하는 방법으로 사용자를 자동 로그인해야합니다. 시스템은 buildroot 및 busybox로 이루어져 있습니다.busybox 자동 로그인으로 리눅스가 임베디드
답변
내가 그것을 알아 냈어요,이 쉘 스크립트를 만들어
tty1::once:/path/to/startup.sh
:
$chmod +x startup.sh
다음 inittab으로이 라인을 추가
이제 부팅 할 때 응용 프로그램이 tslib로 정상적으로 돌아가고 필요할 때마다 직렬 회선을 통해 액세스 권한을 얻었습니다.
필요한 모든 환경 변수를 정의하는 데 필요한 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
이 실행 파일로 만든 :
가 나는 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 변수가 아닌 것으로 설정되었습니다. –
수출이 터미널에 달려 있기 때문입니다. 그들은'.bashrc' 파일에 넣을 때 그대로 남아 있지 않습니다. – VivienG
안녕하세요 @ iah.vector, /etc/init.d/S99_your_script에 스크립트를 작성할 수 있습니다. 이 스크립트 내에서 환경 변수를 설정 한 다음 백그라운드 모드에서 Qt 애플리케이션을 호출 할 수 있습니다. –