Мне нужно сделать приложение QT для запуска при запуске встроенной системы Linux, которую я сделал. У меня есть доступ к системе через последовательный порт ttySAC0. Я попытался добавить приложение в inittab, оно запускается, но tslib не работает, вероятно, потому, что он не может найти необходимые ему переменные среды, потому что я устанавливаю эти переменные среды в файле /etc/.profile, который запускается после пользователя авторизоваться. Мне нужно автоматически войти в систему пользователя, чтобы переменные среды были установлены так, чтобы tslib работал, или способ установить эти переменные среды без входа в систему. Система сделана с помощью buildroot и busybox.
встроенный Linux с автоматическим входом в busybox
comment
Привет @ iah.vector, вы можете написать сценарий в /etc/init.d/S99_your_script. Переменные среды могут быть установлены внутри этого сценария, после чего вы можете вызывать приложение Qt в фоновом режиме.
- person Dien Nguyen   schedule 18.06.2012
Ответы (2)
Разобрался, сделал вот такой сценарий оболочки:
#!/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, и я все еще получаю доступ через последовательную линию, когда мне нужно.
person
Islam A. Hassan
schedule
19.06.2012
Напишите /etc/init.d/S99myapp
скрипт, который запускает ваше приложение после выполнения необходимых export VARIABLE=value
команд для определения всех необходимых вам переменных среды. Вы можете посмотреть, например, package/stunnel/S50stunnel
в источниках Buildroot для примера initscript.
person
Thomas Petazzoni
schedule
18.06.2012
Я написал сценарий rc с именем S99exportEnvVars, содержащий следующее: #! / Bin / sh # # Экспорт переменных среды для QT и TSLib # case $ 1 в начале) echo Экспорт переменных среды TSLib ... export TSLIB_TSDEVICE = / dev / touchscreen-1wire echo Экспорт QT переменные среды ... export QTDIR = / usr / lib / qt export QWS_MOUSE_PROTO = tslib: / dev / touchscreen-1wire ;; останавливаться) ;; перезапустить | перезагрузить) ;; *) эхо недействительно! exit 1 esac exit $? Когда я перезагрузился, я получил повторяющиеся строки, что означает, что скрипт работает, но когда я вошел в систему, я обнаружил, что env vars не установлены.
- person Islam A. Hassan; 19.06.2012
Это потому, что ваш экспорт зависит от терминала. Они не остаются такими, как когда вы помещаете их в свой
.bashrc
файл.
- person VivienG; 04.03.2014