web-dev-qa-db-fra.com

Comment définir la résolution native via xorg.conf en remplaçant l'EDID?

J'ai un moniteur avec une résolution native de 1680x1050 qui n'est pas détecté et ne peut donc pas être défini via les pilotes nvidia. J'ai essayé sans aucun résultat pour forcer la résolution avec xrandr, comme suggéré dans la documentation officielle d'ubuntu: https://wiki.ubuntu.com/X/Config/Resolution#Adding_undetected_resolutions J'essaie pour obtenir la résolution définie par un fichier xorg.conf généré manuellement dans/etc/X11, comme suggéré à la fin de la même page officielle.

J'ai réussi à créer un xorg.conf personnalisé pour définir la résolution native et, comme je peux le voir dans le journal xorg (/var/log/xorg.0.log), le fichier de configuration xorg.conf est en cours de chargement, mais la résolution personnalisée 1680x1050 est en cours. rejeté car il ne figure pas dans la liste "EDID": https://en.wikipedia.org/wiki/Extended_Display_Identification_Data

Comment remplacer l'étape Xorg qui compare la résolution custum avec les configurations répertoriées par EDID et élimine la résolution native pour ne pas être répertoriée? Des idées?

Voici la partie pertinente de xorg.0.log:


**[  3448.936] (==) Using config file: "/etc/X11/xorg.conf"**
[  3448.936] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[  3448.936] (==) ServerLayout "Layout0"
[  3448.936] (**) |-->Screen "Screen0" (0)
[  3448.936] (**) |   |-->Monitor "Monitor0"
[  3448.936] (**) |   |-->Device "Device0"
[  3448.936] (**) |-->Input Device "Keyboard0"
..........
..............
  3448.959] (II) Loading /usr/lib/xorg/modules/libwfb.so
[  3448.959] (II) Module wfb: vendor="X.Org Foundation"
[  3448.959]    compiled for 1.18.3, module version = 1.0.0
[  3448.959]    ABI class: X.Org ANSI C Emulation, version 0.4
[  3448.959] (II) Loading sub module "ramdac"
[  3448.959] (II) LoadModule: "ramdac"
[  3448.959] (II) Module "ramdac" already built-in
[  3448.959] (**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32
[  3448.959] (==) NVIDIA(0): RGB weight 888
[  3448.959] (==) NVIDIA(0): Default visual is TrueColor
[  3448.959] (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
[  3448.960] (**) NVIDIA(0): Option "NoLogo" "True"
**[  3448.960] (**) NVIDIA(0): Option "MetaModes" "1680x1050_60 +0+0"**
[  3448.960] (**) NVIDIA(0): Enabling 2D acceleration
[  3449.310] (II) NVIDIA(GPU-0): Display (Samsung SyncMaster (CRT-0)) does not support NVIDIA
[  3449.310] (II) NVIDIA(GPU-0):     3D Vision stereo.
[  3449.311] (II) NVIDIA(0): NVIDIA GPU GeForce 7050 PV / nForce 630a (C68) at PCI:0:18:0
[  3449.311] (II) NVIDIA(0):     (GPU-0)
[  3449.311] (--) NVIDIA(0): Memory: 524288 kBytes
[  3449.311] (--) NVIDIA(0): VideoBIOS: 05.67.32.26.00
[  3449.311] (--) NVIDIA(0): Interlaced video modes are supported on this GPU
[  3449.311] (--) NVIDIA(0): Valid display device(s) on GeForce 7050 PV / nForce 630a at PCI:0:18:0
[  3449.311] (--) NVIDIA(0):     Samsung SyncMaster (CRT-0) (connected)
[  3449.311] (--) NVIDIA(0):     DFP-0
[  3449.311] (--) NVIDIA(0): Samsung SyncMaster (CRT-0): 350.0 MHz maximum pixel clock
[  3449.311] (--) NVIDIA(0): DFP-0: 155.0 MHz maximum pixel clock
[  3449.311] (--) NVIDIA(0): DFP-0: Internal Single Link TMDS
[  3449.311] (**) NVIDIA(0): Using HorizSync/VertRefresh ranges from the EDID for display
[  3449.311] (**) NVIDIA(0):     device Samsung SyncMaster (CRT-0) (Using EDID frequencies
[  3449.311] (**) NVIDIA(0):     has been enabled on all display devices.)
**[  3449.312] (WW) NVIDIA(0): No valid modes for "1680x1050_60+0+0"; removing.**
**[  3449.312] (WW) NVIDIA(0): Unable to validate any modes; falling back to the default mode
[  3449.312] (WW) NVIDIA(0):     "nvidia-auto-select".**
[  3449.312] (WW) NVIDIA(0): 
[  3449.312] (II) NVIDIA(0): Validated MetaModes:
[  3449.312] (II) NVIDIA(0):     "CRT-0:nvidia-auto-select"
[  3449.312] (II) NVIDIA(0): Virtual screen size determined to be 1600 x 1200
[  3449.313] (WW) NVIDIA(0): Unable to support custom viewPortOut 1600 x 900 +0 +150
[  3449.313] (WW) NVIDIA(0): Unable to support custom viewPortOut 1600 x 900 +0 +150
[  3449.313] (--) NVIDIA(0): DPI set to (99, 98); computed from "UseEdidDpi" X config
[  3449.313] (--) NVIDIA(0):     option
[  3449.313] (--) Depth 24 pixmap format is 32 bpp
[  3449.318] (II) NVIDIA(0): Setting mode "CRT-0:nvidia-auto-select"
3
Nano

La façon de remplacer les configurations définies par EDID sur xorg.conf consiste à ajouter cette ligne dans la section "Périphérique":


Option "UseEdid" "False"

Il est donc toujours possible de définir la résolution d’affichage native dans Ubuntu en créant et en personnalisant un fichier de configuration pour XOrg. Voici un guide étape par étape:

1) CREEZ UN NOUVEAU fichier xorg.conf à placer dans le dossier de configuration "/ etc/X11". Si vous n'avez pas configuré ce fichier, il existe de nombreux exemples sur le Web, mais si vous avez un pilote nvidia, il est livré avec un outil pour en générer un. Il suffit de courir


Sudo nvidia-xconfig 

2) MODIFIEZ CE NOUVEAU FICHIER xorg.conf en personnalisant les sections "Écran" et "Écran" avec les paramètres de résolution native de votre écran. Vous devez exécuter "Sudo gedit" dans un terminal pour pouvoir enregistrer les modifications dans le dossier système/etc/X11. Ce sera plus facile si vous recherchez sur le Web des exemples et des options spécifiques à votre moniteur, tels que les taux de rafraîchissement horizontaux et verticaux. Je suggérerais de lancer une recherche sur "1680x1050" (ou votre résolution native) ET sur "xorg.conf". Voici un exemple de la section "Moniteur" pour un Syncmaster 2043NWX:


Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Samsung SyncMaster"
    HorizSync       30.0 - 81.0
    VertRefresh     56.0 - 75.0
    Option         "DPMS"
EndSection

3) AJOUTEZ UNE LIGNE POUR SUPPRIMER L'EDID, car votre configuration native ne figurait pas dans les données EDID récupérées par vos pilotes à partir de votre affichage, et vous forcerez cette résolution via xorg.conf. C'est la première ligne écrite dans cette réponse.

4) ENREGISTRER LE FICHIER ET SE DÉCONNECTER. Assurez-vous de sauvegarder xorg.conf dans/etc/X11 et de vous déconnecter de votre session Ubuntu. Si tout va bien, après la déconnexion, la résolution native doit être définie et fonctionner, même pour l'écran de connexion, car /etc/X11/xorg.conf est lu par X-Window chaque fois qu'il démarre ou redémarre. En cas d'erreur, vous pouvez renommer temporairement /etc/X11/xorg.conf en /etc/X11/_xorg.conf. Vous devriez alors pouvoir vous connecter avec la résolution par défaut. Vous pouvez consulter le journal X-window à l’adresse /var/log/xorg.0.log pour essayer de comprendre ce qui ne va pas avec vos paramètres.

Voici un exemple de xorg.conf, généré par nvidia-xconfig et personnalisé pour définir la résolution native d'un SyncMaster2043nwx:


# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 304.131  (buildmeister@swio-display-x64-rhel04-16)  Sun Nov  8 22:48:17 PST 2015

Section "ServerLayout"
    Identifier     "Layout0"
     Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Samsung SyncMaster"
    HorizSync       30.0 - 81.0
    VertRefresh     56.0 - 75.0
    Option         "DPMS"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "metamodes" "1680x1050_60 +0+0"
    Option         "NoLogo" "True"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 7050 PV 7 nForce 630a"
    Option         "UseEDID"        "FALSE"

EndSection

Permettez-moi de remercier toute la communauté Ubuntu pour m'aider à comprendre tout cela à travers de nombreux messages.

2
Nano