Utiliser la résolution native 4K d'un écran branché en HDMI sur un laptop

Hello,

Avec mon nouveau laptop je n’arrive plus à utiliser la résolution native 4K de mon écran externe branché en HDMI.

Pourtant ça marchait très bien avec mon ancien laptop alors que c’était le même écran (et le même câble HDMI).

Dans les 2 cas la résolution de l’écran du laptop est de 1920x1080. Mais malheureusement sur mon nouveau laptop c’est aussi la résolution maximale que je peux avoir mon écran externe, alors qu’avec l’ancien laptop je pouvais bien monter en 4K.

Le fait de démarrer X avec l’écran du laptop fermé ne change rien (je tentais ça car avec un autre laptop du boulot sous Win10 c’était le seule moyen pour bénéficier du 4K sur mon écran externe).

Quelqu’un aurait déjà résolu ce genre de souci ? Apparemment il faut essayer de bidouiller avec xrandr ?

Merci, Vincent.

Pour utiliser xrandr, tu peux essayer comme suit:

  • Identifer la sortie correspondant à ton écran
    Pour cela tu fais simplement xrandr
    Cela t’affiche les sorties possibles et les modes correspondants

  • Creer le nouveau mode. Imagine que tu veuilles une résolution 4K 60Hz, tu invoques gtf qui te donnes

    ~]$ gtf 3840 2160 60

    # 3840x2160 @ 60.00 Hz (GTF) hsync: 134.10 kHz; pclk: 712.34 MHz Modeline « 3840x2160_60.00 » 712.34 3840 4152 4576 5312 2160 2161 2164 2235 -HSync +Vsync

  • Tu crees ce mode, par exemple

    xrandr --newmode 3840x2160 Modeline « 3840x2160_60.00 » 712.34 3840 4152 4576 5312 2160 2161 2164 2235 -HSync +Vsync

  • Tu le rajoutes à ta sortie (je suppose ici que c’est HDMI1, il faut adapter):

    xrandr --addmode HDMI1 3840x2160

  • et enfin tu le testes

    xrandr --output HDMI1 --mode 3840x2160 --right-of LVDS1

    (ici j’ai mis ton nouvel écran à droite de l’écran de ton portable (sortie LVDS1), adapte…).
    Bon, après il y a les inattendus qui arrivent, mais c’est la démarche générale

Que donne le retour de la commande xrandr quand ton écran est connecté ?
Il est possible que le processeur graphique ou la sortie HDMI ne gère pas cette résolution…

Je vais essayer les commandes de fran.b mais déjà voici ce que me sort xrandr:

Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 16384 x 16384
eDP-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
   1920x1080     60.01*+  60.01    59.97    59.96    59.93  
   1680x1050     59.95    59.88  
   1600x1024     60.17  
   1400x1050     59.98  
   1600x900      59.99    59.94    59.95    59.82  
   1280x1024     60.02  
   1440x900      59.89  
   1400x900      59.96    59.88  
   1280x960      60.00  
   1440x810      60.00    59.97  
   1368x768      59.88    59.85  
   1360x768      59.80    59.96  
   1280x800      59.99    59.97    59.81    59.91  
   1152x864      60.00  
   1280x720      60.00    59.99    59.86    59.74  
   1024x768      60.04    60.00  
   960x720       60.00  
   928x696       60.05  
   896x672       60.01  
   1024x576      59.95    59.96    59.90    59.82  
   960x600       59.93    60.00  
   960x540       59.96    59.99    59.63    59.82  
   800x600       60.00    60.32    56.25  
   840x525       60.01    59.88  
   864x486       59.92    59.57  
   800x512       60.17  
   700x525       59.98  
   800x450       59.95    59.82  
   640x512       60.02  
   720x450       59.89  
   700x450       59.96    59.88  
   640x480       60.00    59.94  
   720x405       59.51    58.99  
   684x384       59.88    59.85  
   680x384       59.80    59.96  
   640x400       59.88    59.98  
   576x432       60.06  
   640x360       59.86    59.83    59.84    59.32  
   512x384       60.00  
   512x288       60.00    59.92  
   480x270       59.63    59.82  
   400x300       60.32    56.34  
   432x243       59.92    59.57  
   320x240       60.05  
   360x202       59.51    59.13  
   320x180       59.84    59.32  
HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 608mm x 345mm
   1920x1080     60.00*   50.00    59.94    30.00    24.00    29.97    23.98  
   1680x1050     59.88  
   1600x900      60.00  
   1280x1024     75.02    60.02  
   1440x900      59.90  
   1280x800      59.91  
   1152x864      75.00  
   1280x720      60.00    50.00    59.94  
   1024x768      75.03    70.07    60.00  
   832x624       74.55  
   800x600       72.19    75.00    60.32    56.25  
   720x576       50.00  
   720x480       60.00    59.94  
   640x480       75.00    72.81    66.67    60.00    59.94  
   720x400       70.08  
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-2 disconnected (normal left inverted right x axis y axis)

C’est ma grosse crainte. Je serais bien dégoûté car je serai obligé de renvoyer le laptop alors que mis à part ça il est top !

Essaye

$ xrandr --newmode 3840x2160 Modeline « 3840x2160_60.00 » 712.34 3840 4152 4576 5312 2160 2161 2164 2235 -HSync +Vsync
$ xrandr --addmode HDMI-1 3840x2160
$ xrandr --output HDMI-1 --mode 3840x2160 --right-of LVDS1

Alors j’ai essayé ça:

xrandr --newmode "3840x2160_60.00" 712.34 3840 4152 4576 5312 2160 2161 2164 2235 -HSync +VSync
xrandr --addmode HDMI-1 3840x2160_60.00

Aucune erreur, puis:

xrandr --output HDMI-1 --mode 3840x2160_60.00 --right-of eDP-1

Mais ça n’a pas marché, l’affichage a disparu puis je suis revenu à mes résolutions d’origine avec cette erreur:

xrandr: Configure crtc 1 failed

Si ça peut simplifier ça ne dérange pas de sacrifier l’écran du laptop car ce que je veux absolument c’est un affichage 4K sur mon écran externe.

En mode verbose l’erreur est comme ceci:

screen 0: 5760x2160 1520x570 mm 96.25dpi
crtc 1: 3840x2160_60.00 60.00 +1920+0 « HDMI-1 »
xrandr: Configure crtc 1 failed
crtc 0: disable
crtc 1: disable
crtc 2: disable
screen 0: revert
crtc 0: revert
crtc 1: revert
crtc 2: revert

Sinon xrandr dans sa sortie parle de sorties DP-1 et de HDMI-2 (disconnected) sauf que concrètement sur mon portable je n’ai pas de sortie DP ni de 2e sortie à HDMI, sinon j’aurais bien tester !

Oui, ce sont des sorties qui existent sur le processeur graphique, mais qui ne sont pas câblées à un port physique, c’est fréquent sur un ordinateur portable. J’ai aussi vu des sorties HDMI qui était connectées à un port DP.

Cela me fait penser que mon laptop possède un GPU intégré en plus de celui de Nvidia.

Actuellement celui de Nvidia n’est utilisé qu’en positionnant les variables d’environnement (__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia). Mais si j’arrivais à forcer l’utilisation du GPU de Nvidia et à ne plus utiliser le GPU intégré d’Intel peut-être que cela pourrait m’aider pour mon problème de sortie HDMI ou cela n’a rien à voir ?

Si cela a à voir je pense, peut être est ce le NVIDIA qui supporte le 4K, sinon essaye en essayant les autres crtc, par exemple

xrandr --output HDMI-1 --mode 3840x2160_60.00 --crtc 2 --right-of eDP-1

(de ce que je me rappelle, les crtc correspondent en gros à des mémoires écrans, j’imagine que c’est plus compliqué que ça mais je crois que c’est à peu près ça)

Merci pour la suggestion mais quelque soit le crtc spécifié (0, 1 ou 2) c’est toujours pareil.

Peut-être qu’il faudrait tenter avec une fréquence plus basse ? Mais j’avoue que je suis un peu perdu avec les paramètres de xrandr.

Mais il n’y a aucun moyen de savoir si c’est possible ou pas physiquement d’avoir du 4K sur ma sortie HDMI ? En tout cas si ça n’était pas le cas ça serait extrêmement décevant en sachant que la résolution 4K est assez classique maintenant et qu’en plus le GPU intégré de mon vieux laptop le supportait très bien…

Juste pour voir je me suis fait une clé USB d’Ubuntu 22.04 pour faire une session « live » et j’étais également limité au 1920x1080 (j’aurais bien aimé voir sur Windows mais je n’ai pas et surtout je n’ai pas envie de l’installer).

Mon dernier espoir resterait donc de désactiver complètement le GPU intégré pour n’utiliser que celui de Nvidia mais c’est pas gagné cette histoire…

En lisant cette page et notamment cette phrase:

Asus and ASRock boards show HDMI 2.0 support with the qualifier « Only Intel 11th Core processors, support HDMI 2.0 with max. resolution of 4K@60Hz, others would only support HDMI 1.4 with max. resolution of 4K@30Hz »,

Je me dis que ça vaudrait sûrement le coup de tenter en 30 MHz. Sauf que je vois pas quelles valeurs exactes je devrais donner à xrand…

Je n’arrive pas bien à comprendre quel iGPU je possède exactement, c’est un sacré bazar dans les gammes d’Intel ! En tout cas en faisant lspci | grep VGA j’ai ça:

00:02.0 VGA compatible controller: Intel Corporation Comet Lake UHD Graphics (rev 04)

3840x2160 30 Hz donne

# 3840x2160 @ 30.00 Hz (GTF) hsync: 65.91 kHz; pclk: 339.57 MHz
Modeline « 3840x2160_30.00 » 339.57 3840 4080 4496 5152 2160 2161 2164 2197 -HSync +Vsync

3840x2160 40 Hz donne

# 3840x2160 @ 40.00 Hz (GTF) hsync: 88.40 kHz; pclk: 462.51 MHz
Modeline « 3840x2160_40.00 » 462.51 3840 4120 4536 5232 2160 2161 2164 2210 -HSync +Vsync

3840x2160 50 Hz donne

# 3840x2160 @ 50.00 Hz (GTF) hsync: 111.10 kHz; pclk: 586.61 MHz
Modeline « 3840x2160_50.00 » 586.61 3840 4136 4560 5280 2160 2161 2164 2222 -HSync +Vsync

3840x2160 60 Hz donne

# 3840x2160 @ 60.00 Hz (GTF) hsync: 134.10 kHz; pclk: 712.34 MHz
Modeline « 3840x2160_60.00 » 712.34 3840 4152 4576 5312 2160 2161 2164 2235 -HSync +Vsync

Sinon, tu dois pouvoir foecer la nvidia plutôt que l’Intel via un xorg.conf minimal genre

Section « Device »
Identifier « CarteNV »
Driver « nouveau » # <<<<<<<------- Là adapte
VendorName « NVIDIA Corporation »
BusID « PCI:1:0:0 » # <<--------- au pif, fais un lspci pour adapter
EndSection

Merci beaucoup fran.b. Je les ai toutes essayées et malheureusement j’ai toujours la même erreur.

Plus grave, j’ai réussi à forcer l’utilisation du driver nvidia mais ça ne marche toujours pas.

En plus de rajouter la section Device dans la conf d’Xorg, j’ai du rajouter les directives xrandr suivantes au démarrage de sddm (merci à cette page):
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
xrandr --dpi 96
Cela marche parfaitement, niveau 3D j’ai 38 fps au benchmark Valley d’Unigine, soit bien mieux que mon ancien laptop qui plafonnait à 28 fps, mais qui lui avait une putain de sortie en 4K !

C’est quand même sacrément frustrant, j’ai une Debian qui fonctionne à la perfection avec ce nouveau laptop (y compris le BT qui m’avait rendu fou avec l’ancien) mais je vais devoir le renvoyer à cause de ce petit problème… mais qui est tellement crucial à mes yeux, sans mauvais jeux de mot :frowning:

Sur la page descriptive de materiel.net où j’ai acheté le laptop il est juste indiqué qu’il a une sortie HDMI, mais sur la page du site officiel de MSI c’est bien indiqué: 1 x HDMI (4K @ 30Hz)

J’aurais du commencer par là !

Il est donc assez clair que ma sortie HDMI n’est pas 2.0, elle ne peut donc pas supporter du 4K à 60 Mhz, mais elle doit quand même pouvoir faire du 4K à 30 MHz !

Du coup je me dis que les paramètres que j’ai passés à xrandr pour le 4K@30MHz ne devaient pas être bons. Je peux te demander fran.b comment tu as fait pour « calculer » ceux que tu m’as indiqué ? A partir de la sortie sans argument de xrandr ? En tout cas j’avais suivi ta suggestion et j’avais donc tenté ça:

xrandr --newmode « 3840x2160_30.00 » 339.57 3840 4080 4496 5152 2160 2161 2164 2197 -HSync +Vsync`

C’est l’utilitaire gtf:

[~]$ gtf 3840 2160 30

# 3840x2160 @ 30.00 Hz (GTF) hsync: 65.91 kHz; pclk: 339.57 MHz
Modeline « 3840x2160_30.00 » 339.57 3840 4080 4496 5152 2160 2161 2164 2197 -HSync +Vsync

[~]$ gtf 3840 2160 25
# 3840x2160 @ 25.00 Hz (GTF) hsync: 54.77 kHz; pclk: 278.70 MHz
Modeline « 3840x2160_25.00 » 278.70 3840 4056 4464 5088 2160 2161 2164 2191 -HSync +Vsync

[~]$

Hz, pas MHz. Tu as fait l’erreur plusieurs fois, ce n’est donc pas une simple faute de frappe mais un problème de compréhension.
Et l’écran, il supporte 30 Hz ?

Quelle est la différence avec cvt et quand faut-il utiliser l’un ou l’autre ?

Ça c’est une bonne question, ça correspond à 2 standards différents pour effectuer les calculs je crois, les chiffres diffèrent peu. gtf est plus ancien que cvt je pense puisque je l’utilise depuis XFree86, peut être que cvt est mieux, je ne sais pas, gtf m’a toujours satisfait