ЗАО «ЗЭО»

Техническая поддержка пользователей => ОС Linux, U-Boot => Тема начата: emc2 от 09 Февраля, 2010, 09:27:13

Название: Как сделать автозапуск приложения на Qt?
Отправлено: emc2 от 09 Февраля, 2010, 09:27:13
Добрый день.

Поместил в /etc/inittab строку следующего содержания:
tty0::respawn:./usr/qtopia/Test_qwt -qwsПриложение стартует автоматически, но не работает touchscreen. Если запускать из терминала вручную, то все в порядке.
Как правильно сделать автозапуск? Какую консоль использовать?
Название: Re: Как сделать автозапуск приложения на Qt?
Отправлено: asv от 09 Февраля, 2010, 14:01:45
Например OPIE запускается из /sbin/startup, перезапуск которого указан в /etc/inittab
#!/bin/sh

export QTDIR=/usr/qt
export OPIEDIR=/opt/QtPalmtop
export KDEDIR=$OPIEDIR
export LD_LIBRARY_PATH=$QTDIR/lib:$OPIEDIR/lib:$LD_LIBRARY_PATH
export PATH=$OPIEDIR/bin:$PATH
ROTATION=Transformed:Rot0 # Rotate display by 0 degree (90, 180, 270)
export QWS_DISPLAY=$ROTATION:EP93xx:/dev/fb0
export QWS_SW_CURSOR=0
export QWS_MOUSE_PROTO=IntelliMouse:/dev/input/mice

export TSLIB_PLUGINDIR=/lib/ts
export TSLIB_TSDEVICE=/dev/misc/ep93xx_ts
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_CONSOLEDEVICE=/dev/tty

# Use touch screen if /etc/pointercal not empty
if [ -s $TSLIB_CALIBFILE ] && [ -r $TSLIB_CALIBFILE ] ; then
export QWS_MOUSE_PROTO=TPanel:/dev/misc/ep93xx_ts
fi

if [ ! -d /sys/devices/platform/ep93xxfb ]; then
exec /bin/sh
fi

QPE=$OPIEDIR/bin/qpe
EXAMPLE=/usr/bin/example
if [ -x $QPE ]; then
# Use syslog                                   
exec $QPE -nodaemon 2>&1 | logger
elif [ -x $EXAMPLE ]; then
exec $EXAMPLE
else
exec /bin/sh
fi

Название: Re: Как сделать автозапуск приложения на Qt?
Отправлено: asv от 09 Февраля, 2010, 14:05:30
> Как правильно сделать автозапуск?

Если вы замените QPE на вашу QT программу то она будет запускаться.
Такой автозапуск меня устраивает. Обратите внимание на -nodaemon, если это собрано из Crater выложенного на нашем сайте.

> Какую консоль использовать?

Работало и на первой и на второй.
Название: Re: Как сделать автозапуск приложения на Qt?
Отправлено: emc2 от 09 Февраля, 2010, 15:09:03
Спасибо. Заработало.
Имеется еще один вопрос: какие библиотеки можно применить для отображения графиков. может есть какой то опыт успешного применения с QT?
Пробовал библиотеку QWT Uwe Rathmanna - компилируется, но при запуске на платформе выдает segmentation fault. Может у кого получилось портировать на ARM?
Библиотека embedded-widgets компилируется и запускается, но ограничена по возможностям (нет осей координат, легенды и много чего еще нет, что есть в Qwt)
Название: Re: Как сделать автозапуск приложения на Qt?
Отправлено: asv от 09 Февраля, 2010, 15:27:23
> Пробовал библиотеку QWT Uwe Rathmanna - компилируется, но при запуске на платформе выдает segmentation fault

Segfault не обязательно будет именно по причине библиотеки. Программа на host'е работает?

Вы сами собираете или в какой-то системе сборки?
Я Qwt (вроде без проблем) добавлял к Crater, пример (qt2 и qwt...) есть в wiki
http://www.zao-zeo.ru/dokuwiki/doku.php/linux#qt_qwt_матричная_клавиатура

Examples из самой Qwt тоже при желании собираются.
embedded-widgets не пробовал.
Название: Re: Как сделать автозапуск приложения на Qt?
Отправлено: emc2 от 09 Февраля, 2010, 15:43:10
При сборке Qwt использовал Qwt-5.2.0 + Qt4.5. Собрал сначала libqwt.so.5.2.0 и поместил в директорию /lib платформы, затем собрал примеры из QWT. dials, radio, sliders запускаются, остальные выдают segmentation fault. Интересует сборка именно под QT4, т.к. полностью разрабатываем на нем.
Само ядро линукса собрано без cratera, пропатчил стандартное ядро Вашим патчем. Может быть нужно слинковать статически библиотеку?