Не удается приостановить встроенный Linux, пока запущено приложение qt
В настоящее время я работаю над приложением Qt, работающим на встроенной платформе (i.MX53).
Моя проблема в том, что во время работы этого приложения я не могу заставить систему приостановить работу.
Я использую "busybox rtcwake" для администрирования функции приостановки, которую я хотел бы просто запустить из моего приложения Qt, так как это приложение является основной причиной для моей системы, но я не могу заставить систему перейти в режим ожидания при вызове rtc будить:
//From Qt app.
Qstring str = "/bin/busybox rtcwake -d /dev/rtc0 -m standby -s 15";
system(str.toAscii());
это просто получает мне это сообщение:
пробуждение из "режима ожидания" в ВС 24 июня 20:59:00 2012
PM: Синхронизация файловых систем... сделано.
что должно быть что-то вроде:
** Это не код, но каким-то образом я не мог представить это, потому что SO сказал, что это код.
wakeup from "standby" at Sun Jun 24 22:22:02 2012
PM: Syncing filesystems ... done.
Freezing user space processes ... (elapsed 0.01 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.01 seconds) done.
mxc_ipu mxc_ipu: Channel already disabled 9
mxc_ipu mxc_ipu: Channel already uninitialized 9
PM: suspend of devices complete after 28.942 msecs
suspend wp cpu=400000000
PM: late suspend of devices complete after 0.726 msecs
Потому что это то, что говорится, когда я запускаю команду busybox, когда приложение qt не запущено.
* Примечание: я использую Linux: 2.6.35.3-11.09.01
Кто-нибудь знает в чем может быть проблема?
1 ответ
Проблема в том, что приложение QT запускает консоль самостоятельно, в моем случае tty0, которая останавливает мой запрос на приостановку.
В моем случае, поскольку я не использую ввод с клавиатуры или мыши через QWS, я решил проблему, запустив приложение следующим образом:
qt_app_name -qws -nomouse -nokeyboard