Jak změnit rozlišení obrazovky při špatné detekci displeje

18. 6. 2014 13:50 (aktualizováno) Jan Kulhánek

Rozhodl jsem se podělit o zkušenost při řešení potíží s nastavením rozlišení displeje, snad to někomu ušetří čas a nervy. Před lety jsem zakoupil notebook s grafikou od Intelu (pro přesnost GMA 3500, což ale není až tak důležité, podobné potíže mohou nastat i u jiných typů), nainstaloval tehdy Ubuntu 10.10 a radoval se, že vše jede „out-of-the-box“. Trochu mi bylo divné, že výrobce udává rozlišení 1600×900 a mě Linux nabízí „jen“ 1440×768, ale nevadilo mi to. Při upgrade systému ale přišlo rozčarování – nespustil se režim obrazu 16:9 a v nabídce byla samá nízká rozlišení.
Když jsem nenašel žádný vhodný návod, zkusil jsem jinou distribuci – se stejným výsledkem. Nakonec jsem se smířil s tím, že soudruzi od Intelu udělali někde v ovladačích pro Linux chybu, vrátil jsem zpět Ubuntu 10.10 a dva roky na něm fungoval. Při nové verzi distribuce jsem s naději startoval systém z usb se stejně špatným výsledkem.

Pak mi to znovu nedalo a začal se znovu snažit. Prošel jsem toho hodně, updatoval ovladače, znovu vracel a upravoval soubor xorg.conf, nic nepomáhalo.

Mimochodem, s těmi aktuálními ovladači to není zase tak mimo – na zmíněném zařízení to sice nezlepšilo detekci a nabídku správného rozlišení, ale zrychlilo to přehrávání videa. Obecně se tvrdí, že linuxové jádro obsahuje aktuální ovladače na grafiku od Intelu. Pokud ale koupíte nějakou počítačovou novinku, může se stažení nejnovějších driverů hodit.

Ovladače na grafické karty od Intelu:

https://01.org/linuxgraphics – respektive https://01.org/linuxgraphic­s/downloads

Stáhnete balíček, nainstalujete a samotná detekce, stažení ovladače a jeho instalace pak probíhá automaticky.

Nakonec jsem narazil na řešení, které funguje a navíc je docela jednoduché. Sestává z několika kroků:

1. Detekce parametrů ke zvolenému rozlišení (které musí podporovat jak karta, tak displej)
K tomu slouží příkaz cvt:

cvt 1600 900

# 1600×900 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz Modeline „1600×900_60.00“  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync

nebo případně

cvt 1368 768

# 1600×900 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz Modeline „1600×900_60.00“  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync

2. Nnapíšete skript, ve kterém využijete výstup z cvt (od uvozovek):

#!/bin/sh

xrandr –newmode „1600×900_60.00“  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync

xrandr –addmode VGA1 1600×900_60.00

xrandr –output VGA1 –mode 1600×900_60.00

Nebo druhá varianta – jiné rozlišení:

#!/bin/sh

xrandr –newmode „1368×768_60.00“   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync

xrandr –addmode VGA1 1368×768_60.00

xrandr –output VGA1 –mode 1366×768_60.00

Soubor jsem pojmenoval res.sh

3. Umístění skriptu s právy ke spuštění někam, kde ho bude systém pouštět automaticky při startu
Tady může nastat potíž, existuje totiž několik možností, některé z nich ovšem nespouští skript přímo, ale zvládnou pustit zástupce.
Zástupcem je obyčejný textový soubor s koncovkou .desktop, který může vypadat třeba takto:

[Desktop Entry]

Type=Application

Name=res.desktop

Exec=cesta k vašemu souboru res.sh

Name[cs_CZ]=Rozlišení

Icon=grandr

Než dáte systému povel k automatickému spouštění res.sh nebo res.desktop, vyzkoušejte ho. Pak je možné využít V Ovládacím centru aplikaci Relace a spuštění nebo něco podobného podle vaší distribuce. Také je možné skript umístit do složky /etc/xdg/autostart (mělo by to fungovat, mě to zlobilo).

A je to.

Sdílet