web-dev-qa-db-fra.com

Utiliser un EDID enregistré pour que Ubuntu démarre afin de corriger la résolution lorsque le téléviseur est éteint

J'ai un Intel NUC6i7KYK (Intel Graphics 580) et Ubuntu 16.04. J'essaie de résoudre le problème du démarrage d'Ubuntu avec une résolution différente s'il démarre lorsque le téléviseur est éteint.

Je sais qu'il existe une solution matérielle impliquant quelque chose comme Dr HDMI, détective HDMI, etc., mais j'essaie de voir s'il est possible de résoudre ce problème à l'aide d'un logiciel.

Voici ce que j'ai fait, qui selon différentes recherches - en particulier ce que j'ai trouvé sur ce lien https://wiki.archlinux.org/index.php/kernel_mode_setting - devrait fonctionner.

  1. J'ai installé le paquet read-edid, puis get-edid pour récupérer une copie de l'EDID de mon téléviseur lorsqu'il est branché et allumé. J'ai nommé cela "edid.bin".

  2. Je l'ai copié dans lib/firmware/edid /

  3. J'ai ajouté "drm_kms_helper.edid_firmware = DP-1: edid/edid.bin video = DP-1: e" à la ligne de commande du noyau.

  4. J'ai débranché le câble HDMI et redémarré.

Il semble que l'EDID se charge bien, et le bas du fichier journal Xorg montre qu'il reconnaît tous les différents modes pris en charge par le téléviseur qu'il doit avoir obtenus à partir de l'EDID. Cependant, aucun de ces modes n'apparaît dans les paramètres d'affichage d'Ubuntu. De plus, le panneau des paramètres d'affichage ne fonctionne pas correctement. Il affiche le téléviseur mais n'est pas sélectionné par défaut. vous devez cliquer dessus pour le sélectionner, puis faire glisser le commutateur On/Off sur On mais il ne donne alors aucun mode d’écran. Toute tentative de sauvegarde du profil génère une erreur. J'imagine qu'il a été désactivé car il n'y a pas de mode - ce que la sortie de xrandr sauvegarde également.

Il semble donc que, bien que mes modifications l’aient fait lire l’EDID, cela n’entraînait pas la configuration d’un moniteur valide avec les différents modes disponibles.

Qu'est-ce que j'oublie ici? Il doit y avoir une étape supplémentaire que je dois prendre?

J'ai inclus les journaux dmesg et Xorg, ainsi que la sortie de "xrandr --query", que le téléviseur soit allumé ou éteint, ainsi que la sortie EDID analysée.

Si quelqu'un pouvait m'éclairer ou m'aider à peaufiner mes réglages pour que cela fonctionne, je vous en serais reconnaissant.

Merci.

Oliver

https://www.dropbox.com/sh/mo3y3y25qmgb6zm/AAAFJlAbW7KC83cYH9gXcWTla?dl=

1
oviano

C'est un peu un bidouillage, mais j'ai géré une situation similaire en utilisant xrandr et en le tirant immédiatement après la connexion

Tiré de ma réponse S , bien que vous ayez besoin de l'adapter à votre DE - Je laisse réellement exécuter le script en tant qu'exercice pour l'utilisateur.

J'ai créé un script, comme mentionné précédemment, qui gère la création d'un nouveau mode d'écran. J'ai enregistré ceci sous le nom xrandr.sh et je me suis assuré qu'il était exécutable. J'ai utilisé gtf pour générer le modèle (gtf 1280 800 60.0 - résolution horizontale, résolution verticale et fréquence - la plupart des gens semblent le faire avec une décimale alors je l'ai fait) et je l'ai utilisé pour générer le script et une commande nue xrandr calculer le nom de la sortie

Cela crache quelque chose comme

[geek@phoebe ~]$ gtf 1280 800 60

  # 1280x800 @ 60.00 Hz (GTF) hsync: 49.68 kHz; pclk: 83.46 MHz
  Modeline "1280x800_60.00"   83.50  1280 1352 1480 1680  800 803 809 831   -HSync +Vsync

Ce qui est intéressant après modeline, c’est ce qui est intéressant - vous l’utilisez pour définir le mode.

J'ai enregistré ceci sous le nom xrandr.sh

xrandr --newmode  "1280x800_60.00"   83.50  1280 1352 1480 1680  800 803 809 831 -hsync +vsync 
xrandr --addmode HDMI1 "1280x800_60.00"
xrandr --output HDMI1 --mode 1280x800_60.00

Ceci génère un nouveau mode que vous pouvez utiliser n'importe où, puis indique à votre système de vous permettre d'utiliser ce mode pour la sortie HDMI1 et vous indique change les paramètres de résolution pour ce mode

Dans votre cas, vous pouvez l'exécuter au besoin ou l'automatiser d'une manière ou d'une autre.

1
Journeyman Geek