Exigences de la cible d'exécution de Qt pour QNX
QNX Software Systems fournit des solutions logicielles pour la fabrication de dispositifs embarqués. Cela inclut la création d'images de démarrage du RTOS QNX Neutrino d'une manière très flexible. Même si QNX fournit plusieurs scripts de référence pour la création d'images de système d'exploitation, tôt ou tard vous aurez besoin de faire des changements ou vous pourriez décider de créer une image de système d'exploitation à partir de zéro. Qt s'appuie sur l'existence de plusieurs composants tiers et de certains services du système d'exploitation. De ce fait, les images de démarrage du RTOS QNX Neutrino pour un dispositif cible exécutant Qt doivent répondre aux exigences énumérées dans les sections suivantes afin de garantir que Qt fonctionne comme prévu.
Sous-système graphique d'écran QNX
Avant qu'une application Qt puisse être lancée, le sous-système graphique d'écran QNX (également appelé "Screen") doit fonctionner. Screen se compose d'un pilote et de plusieurs utilitaires et services utilisés par Qt. Cela inclut le traitement des événements de la souris et du clavier. Vous pouvez vous assurer que Screen est configuré et fonctionne correctement en vérifiant qu'une application graphique, comme gles2-gears, peut être lancée et fonctionner sans problème.
La plupart des exemples récents de scripts de construction de systèmes d'exploitation dans le SDP comprennent des sections avec tous les composants et les commandes de démarrage pour l'écran. Vous pouvez les utiliser comme référence.
Support IPv6
La pile réseau de Qt Network exige que le support IPv6 soit activé, indépendamment du fait que le réseau réel utilise IPv4 ou IPv6.
Attention : io-pkt-v6-hc doit être en cours d'exécution, et non io-pkt-v4.
Périphérique aléatoire /dev/random
Qt exige que /dev/random soit présent et fonctionnel. Démarrez-le avant de lancer une application Qt ou pendant le démarrage du système :
random -p waitfor /dev/random
Enregistreur système
QNX fournit le cadre de journalisation slog2 adapté aux spécificités des systèmes embarqués. Le principal avantage de ce système est qu'il est beaucoup plus performant qu'une sortie texte vers des fichiers. Qt utilise ce cadre par défaut pour toute sortie de journalisation passant par QDebug sur le RTOS QNX Neutrino. Le service slog2 doit être lancé lors du démarrage du système. Le service slog2 dépend également de l'existence du dossier /tmp qui doit également être configuré, par exemple :
[type=link] /tmp=/dev/shmem display_msg "Starting slogger2..." slogger2 -U1001:1000 & waitfor /dev/slog2
Variables d'environnement
Il existe un ensemble de variables d'environnement que vous devez définir lorsque vous démarrez une application Qt. La plupart d'entre elles ne sont pas spécifiques au RTOS QNX Neutrino. Elles sont tout de même mentionnées ici, car les connaître permet de gagner beaucoup de temps en cas de problème.
Note : setconf et getconf sont nécessaires pour accéder aux variables d'environnement POSIX, en particulier pour le nom de l'hôte et l'heure et la date.
Emplacement du moteur d'exécution de Qt Location
Si vous n'avez pas compilé Qt avec la variable d'environnement RPATH, vous pouvez placer les composants d'exécution de Qt dans n'importe quel dossier du système de fichiers. Les variables d'environnement suivantes doivent pointer vers des emplacements valides, en supposant que l'installation de Qt est située à l'adresse <Qt-install-path>:
LD_LIBRARY_PATHdoit contenir le chemin d'accès aux bibliothèques Qt dans<Qt-install-path>/lib.QT_PLUGIN_PATHdéfinit l'emplacement des plug-ins Qt. Elle doit avoir pour valeur<Qt-install-path>/plugins.QML2_IMPORT_PATHdéfinit l'emplacement des plug-ins Qt Quick. Il doit être défini sur<Qt-install-path>/qml.- Si Qt Location n'utilise pas fontconfig, vous devez soit fournir le chemin d'accès aux polices avec
QT_QPA_FONTDIR, soit placer les polices sous<Qt-install-path>/lib/fonts, qui est l'emplacement par défaut des polices. - Consultez
QT_QPA_QNX_DISPLAY_CONFIGpour connaître le nombre et l'ordre des écrans disponibles.
Taille physique de l'écran
Qt a besoin d'informations sur les dimensions physiques de l'écran connecté pour déterminer les valeurs DPI et définir ainsi des tailles de police correctes. En général, ces informations sont fournies par l'écran. Dans certains cas, vous pouvez voir une taille d'écran invalide telle que 0mmx0mm. Dans ce cas, Qt a besoin d'une variable d'environnement QQNX_PHYSICAL_SCREEN_SIZE réglée sur les valeurs appropriées pour obtenir les informations requises. Si les applications Qt sortent avec un message d'erreur indiquant que la taille physique de l'écran n'a pas pu être déterminée, définissez la variable comme suit avant de démarrer l'application Qt :
export QQNX_PHYSICAL_SCREEN_SIZE=150,100
pour informer Qt que l'écran a une largeur de 150 mm et une hauteur de 100 mm dans ce cas particulier. La taille physique de l'écran est mesurée en millimètres (mm) et doit correspondre à la taille physique réelle de l'écran dans la configuration finale.
Dépannage au premier démarrage d'une application Qt
Le seul inconvénient de la flexibilité offerte par le RTOS QNX Neutrino est le risque que l'environnement d'exécution soit légèrement différent sur votre cible de ce qui est attendu par Qt. C'est une raison fréquente pour laquelle une application Qt sur une nouvelle cible ne démarre pas. Quelques variables d'environnement génériques peuvent aider à localiser la cause première des problèmes :
- La définition de
QT_DEBUG_PLUGINSà1permet de comprendre pourquoi le plugin QPA ne peut pas se charger. - La définition de
LD_DEBUGà1permet de savoir où et comment les bibliothèques partagées sont chargées. Il peut être utilisé en combinaison avecQT_DEBUG_PLUGINSlorsqu'un plugin n'a pas réussi à se charger parce qu'il n'a pas pu charger d'autres bibliothèques partagées. - Le réglage de
QT_LOGGING_TO_CONSOLEforcera l'envoi de tous les messages de journalisation àstderrau lieu deslog2, ce qui est utile pour analyser les problèmes de démarrage de l'application, car vous n'avez pas besoin d'utiliser un autre outil pour voir les messages.
Qt utilise normalement fontconfig pour fournir un accès aux polices de caractères du système. Si un cache de polices n'a pas été créé auparavant, il sera créé au démarrage de la première application Qt. Selon la configuration, cela peut prendre beaucoup de temps et retarder considérablement le démarrage des applications. Si elle n'est pas nécessaire, la configuration des polices peut être désactivée avec -DFEATURE_fontconfig=OFF lors de la configuration.
Utiliser QCursor sur la plateforme QNX
QNX permet de changer la forme du curseur pour une fenêtre, mais vous devrez déployer et spécifier les images associées aux formes que vous souhaitez utiliser dans le fichier de configuration de l'écran, graphics.conf. Voir le paramètre de type de curseur de la sous-section Configurer l'affichage pour plus de détails. Outre le curseur par défaut, aucun curseur supplémentaire n'est fourni dans QNX. Par conséquent, tout graphique de curseur supplémentaire doit être fourni manuellement au format bitmap. Le tableau ci-dessous indique le nom du curseur utilisé dans graphics.conf pour chaque valeur de Qt::CursorShape.
| Qt::CursorShape Valeur | Nom de la configuration de l'écran QNX |
|---|---|
| Qt::ArrowCursor | flèche |
| Qt::CrossCursor | croix |
| Qt::WaitCursor | attendre |
| Qt::IBeamCursor | ibeam |
| Qt::PointingHandCursor | main |
| Qt::OpenHandCursor | saisir |
| Qt::ClosedHandCursor | saisir |
| Qt::DragMoveCursor | déplacer |
| Toutes les autres formes de curseur | flèche (par défaut) |
© 2026 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.