Raspberry pi 3 : Gérer les résolutions exotiques

En général, démarrer une carte Raspberry pi sur un moniteur branché sur son port HDMI est la plus simple des choses, mais quand le moniteur possède une résolution native exotique, le résultat n’est pas toujours satisfaisant!

Il m’est arrivé récemment de devoir brancher une carte Raspberry pi 3 sur un moniteur très large (3440×1440 px) afin de s’en servir comme écran d’information / de supervision.

Si vous branchez un tel moniteur et démarrez simplement, vous avez de fortes chances de vous retrouver avec une résolution “standard” full HD de 1920x1080px, autant dire que vous ne profitez pas du tout de la largeur exotique de votre moniteur !

Voici alors ce qu’il vous faudra préciser dans le fichier /boot/config.txt de la carte SD de votre Raspberry pi. Notez que vous pouvez très certainement adapter ce qui suit à une autre résolution particulière :

hdmi_cvt=3440 1440 30 8 0 0 1   # On configure le mode n°87 (personnalisable) en  
                                # 3440x1440@30Hz ratio 64:27
hdmi_group=2                    # On se place dans le groupe 2 (DMT) car le mode 87 
                                # s'y trouve
hdmi_mode=87                    # On utilise le mode 87 que l'on vient de personnaliser
hdmi_drive=2                    # Le mode 87 nécessite que l'on soit en mode HDMI 
                                # (et non DVI)
hdmi_force_mode=1               # on s'assure que le mode 87 sera le seul utilisé

max_framebuffer_width=3440      # On redéfinie ensuite la taille du buffer afin que 
max_framebuffer_height=1440     # la sortie vidéo utilise tout l'espace disponible
framebuffer_width=3440          #
framebuffer_height=1440         #

La connectique HDMI peut fonctionner selon deux normes distinctes, celle des TV (CEA) et celle des moniteurs (DMT). Dans chacune d’elle, il existe des modes de fonctionnement prédéfini qui vont couvrir la plupart configurations possibles des écrans. Cependant le mode qui nous intéresse est particulier, en effet la norme des moniteurs (DMT) possède le mode n°87 qu’il est possible de personnaliser.

hdmi_cvt=3440 1440 30 8 0 0 1

Cette ligne permet de définir comment se comportera le mode personnalisable n°87 : une résolution de 3440px par 1440px à 30Hz, ratio 64:27 (8), pas de marges, pas d’entrelacement et un masquage réduit.

hdmi_group=2

Permet d’utiliser la norme DMT qui possède le mode N°87 que l’on viens de redéfinir.

hdmi_mode=87

On se place officiellement en mode 87.

hdmi_drive=2

On précise également que l’on utilise le moniteur en mode DVI (pas de sons, par opposition au mode HDMI) pour que le mode 87 fonctionne.

hdmi_force_mode=1

Je vous laisse tester si celle ci est vraiment utile, elle permet de s’assurer que le mode 87 sera le seul utilisé.

Si l’on s’arrête ici pour la configuration, on remarquera que la résolution est respectée et que le moniteur affichera qu’il est bien en 3440x1440px. Cependant, l’image ne prend pas tout l’écran !

max_framebuffer_width=3440
max_framebuffer_height=1440
framebuffer_width=3440
framebuffer_height=1440 

Les cartes et pilotes graphiques fonctionnent généralement avec un buffer, un espace mémoire où il est possible de construire la prochaine image à afficher.
Celle-ci est par défaut trop petite pour couvrir toute notre résolution et les lignes ci-contre permettent de redéfinir la taille.

Références

La plupart des informations rassemblées ici proviennent de forums et notamment de la documentation officielle concernant les options vidéos.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *