Qt für QNX Runtime Target Anforderungen
QNX Software Systems liefert Software-Lösungen für die Herstellung von Embedded-Geräten. Dazu gehört auch die Erstellung von QNX Neutrino RTOS Boot-Images auf sehr flexible Weise. Obwohl QNX mehrere Referenzskripte für die Erstellung von Betriebssystem-Images zur Verfügung stellt, werden Sie früher oder später Änderungen vornehmen müssen oder Sie entscheiden sich, ein Betriebssystem-Image von Grund auf neu zu erstellen. Qt verläßt sich auf das Vorhandensein verschiedener Komponenten von Drittanbietern und ausgewählter Betriebssystemdienste. Aus diesem Grund müssen QNX Neutrino RTOS Boot-Images für ein Zielgerät, auf dem Qt läuft, die in den folgenden Abschnitten aufgeführten Anforderungen erfüllen, um sicherzustellen, dass Qt wie erwartet funktioniert.
QNX Bildschirm-Grafik-Subsystem
Bevor eine Qt-Anwendung gestartet werden kann, muss das QNX Screen Graphics Subsystem (auch einfach "Screen" genannt) laufen. Screen
besteht aus einem Treiber und mehreren Dienstprogrammen und Diensten, die von Qt verwendet werden. Dazu gehört auch die Verarbeitung von Maus- und Tastaturereignissen. Sie können sicherstellen, dass Screen
korrekt konfiguriert ist und läuft, indem Sie überprüfen, ob eine Grafikanwendung, wie gles2-gears
, gestartet werden kann und ohne Probleme läuft.
Die meisten der aktuellen Beispielskripte für die Erstellung von Betriebssystemen in der SDP enthalten Abschnitte mit allen Komponenten und Startbefehlen für den Bildschirm. Sie können diese als Referenz verwenden.
IPv6-Unterstützung
Der Netzwerkstack von Qt erfordert die Aktivierung der IPv6-Unterstützung, unabhängig davon, ob das eigentliche Netzwerk IPv4 oder IPv6 verwendet.
Achtung: io-pkt-v6-hc
muss ausgeführt werden, nicht io-pkt-v4
.
Zufälliges Gerät /dev/random
Qt erfordert, dass /dev/random
vorhanden und funktionsfähig ist. Starten Sie es vor dem Start einer Qt-Anwendung oder während des Systemstarts:
random -p waitfor /dev/random
System Logger
QNX stellt das slog2 Logging Framework zur Verfügung, das auf die Besonderheiten von eingebetteten Systemen zugeschnitten ist. Der Hauptvorteil dieses Frameworks ist eine viel bessere Performance als eine Textausgabe in Dateien. Qt verwendet dieses Framework standardmäßig für alle Logging-Ausgaben, die über QDebug auf QNX Neutrino RTOS laufen. Der slog2
Dienst sollte während des Systemstarts gestartet werden. slog2
ist auch auf das Vorhandensein des /tmp
Ordners angewiesen, der ebenfalls konfiguriert werden muss, zum Beispiel:
[type=link] /tmp=/dev/shmem display_msg "Starting slogger2..." slogger2 -U1001:1000 & waitfor /dev/slog2
Umgebungsvariablen
Es gibt eine Reihe von Umgebungsvariablen, die Sie beim Starten einer Qt-Anwendung setzen sollten. Die meisten von ihnen sind eigentlich nicht spezifisch für QNX Neutrino RTOS. Sie werden hier trotzdem erwähnt, da ihre Kenntnis im Falle von Problemen viel Zeit spart.
Hinweis: setconf
und getconf
werden benötigt, um auf POSIX-Umgebungsvariablen zuzugreifen, insbesondere für den Hostnamen sowie Zeit und Datum.
Qt Runtime Location
Wenn Sie Qt nicht mit gesetzter RPATH-Umgebungsvariable gebaut haben, können Sie die Qt-Laufzeitkomponenten in einem beliebigen Ordner im Dateisystem ablegen. Die folgenden Umgebungsvariablen sollten auf gültige Speicherorte verweisen, unter der Annahme, dass sich die Qt-Installation in <Qt-install-path>
befindet:
LD_LIBRARY_PATH
sollte den Pfad zu den Qt-Bibliotheken in<Qt-install-path>/lib
enthalten.QT_PLUGIN_PATH
definiert, wo sich die Qt-Plug-ins befinden. Er sollte auf<Qt-install-path>/plugins
gesetzt werden.QML2_IMPORT_PATH
definiert, wo sich die Qt Quick Plug-Ins befinden. Er sollte auf<Qt-install-path>/qml
gesetzt werden.- Wenn Qt fontconfig nicht verwendet, müssen Sie entweder den Pfad zu den Schriftarten mit
QT_QPA_FONTDIR
angeben oder die Schriftarten unter<Qt-install-path>/lib/fonts
platzieren, was der Standardspeicherort für Schriftarten ist. - Die Anzahl und Reihenfolge der verfügbaren Bildschirme/Displays finden Sie unter
QT_QPA_QNX_DISPLAY_CONFIG
.
Physikalische Bildschirmgröße
Qt benötigt Informationen über die physikalischen Abmessungen des angeschlossenen Bildschirms, um die DPI-Werte zu bestimmen und somit die korrekte Schriftgröße einzustellen. Normalerweise werden diese Informationen vom Bildschirm bereitgestellt. In einigen Fällen kann eine ungültige Bildschirmgröße wie 0mmx0mm angezeigt werden. In einem solchen Fall benötigt Qt eine Umgebungsvariable QQNX_PHYSICAL_SCREEN_SIZE
, die auf entsprechende Werte gesetzt ist, um die benötigten Informationen zu erhalten. Wenn Qt-Anwendungen mit einer Fehlermeldung beendet werden, die besagt, dass die physikalische Bildschirmgröße nicht ermittelt werden konnte, setzen Sie die Variable wie folgt, bevor Sie die Qt-Anwendung starten:
export QQNX_PHYSICAL_SCREEN_SIZE=150,100
um Qt mitzuteilen, dass der Bildschirm in diesem Fall eine Breite von 150mm und eine Höhe von 100mm hat. Die physikalische Größe des Bildschirms wird in Millimetern (mm) gemessen und sollte der tatsächlichen physikalischen Größe des Displays in der endgültigen Konfiguration entsprechen.
Fehlersuche beim ersten Start einer Qt-Anwendung
Der einzige Nachteil der Flexibilität, die QNX Neutrino RTOS bietet, ist das Risiko, dass die Laufumgebung auf Ihrem Zielsystem etwas anders ist als von Qt erwartet. Dies ist ein häufiger Grund, warum eine Qt-Anwendung auf einem neuen Target nicht startet. Ein paar generische Umgebungsvariablen können helfen, die Ursache für Probleme zu finden:
- Wenn man
QT_DEBUG_PLUGINS
auf1
setzt, kann man feststellen, warum das QPA-Plugin nicht geladen werden kann. - Das Setzen von
LD_DEBUG
auf1
hilft herauszufinden, wo und wie gemeinsam genutzte Bibliotheken geladen werden. Dies kann in Kombination mitQT_DEBUG_PLUGINS
verwendet werden, wenn ein Plugin nicht geladen werden kann, weil es andere gemeinsam genutzte Bibliotheken nicht laden konnte. - Das Setzen von
QT_LOGGING_TO_CONSOLE
erzwingt das Senden aller Logging-Meldungen anstderr
statt anslog2
. Dies ist nützlich für die Analyse von Problemen beim Anwendungsstart, da Sie kein anderes Tool verwenden müssen, um die Meldungen zu sehen.
Qt verwendet normalerweise fontconfig
, um den Zugriff auf Systemfonts zu ermöglichen. Wenn nicht schon vorher ein Font-Cache angelegt wurde, wird er beim Start der ersten Qt-Anwendung angelegt. Je nach Konfiguration kann dies sehr lange dauern und den Start von Anwendungen erheblich verzögern. Falls nicht benötigt, kann fontconfig mit -DFEATURE_fontconfig=OFF bei der Konfiguration deaktiviert werden.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.