*** Linuxiarze obchodzą w tym roku 10-lecie działalności! *** Dziękujemy za wspólnie spędzone lata i zapraszamy na kolejne! ***

Monitor w systemie Linux

Od dobrych kilku lat używam laptopa pod kontrolą systemu operacyjnego z rodziny GNU/Linux.
Na żadnym laptopie lub desktopie nie miałem problemu z monitorem, wszystkie były wykrywane automatycznie i ustawiane prawidłowo.
Aż do…

Aż do chwili, gdy zachciało mi się obejrzeć film z laptopa na telewizorze.
Telewizor podłączyłem do komputera za pośrednictwem łącza VGA.
Mój OS to Debian z gałęzi testowej „Jessie” z pulpitem LXDE.
Telewizor został wykryty, lecz ze złą rozdzielczością, co wyglądało fatalnie.

Pierwszym sposobem na ustawienie właściwej rozdzielczości jest użycie graficznej nakładki na RandR. W tym przypadku jest to nakładka dla środowiska LXDE, czyli LXRandR. W menu programów widoczny jest pod nazwą „Ustawienia wyświetlania”.

LXRandR

Niestety, największa możliwa rozdzielczość to 1024×768, co mnie nie satysfakcjonowało.

Co należy zrobić?
W pierwszej kolejności znaleźć specyfikację producenta dla swojego modelu telewizora/monitora i sprawdzić jaką maksymalną rozdzielczość można ustawić. W moim przypadku jest to 1366×768 px.

Następnie użyć XRandR – konsolowego narzędzia do konfiguracji rozszerzenia X.Org RandR.
xrandr -q
Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192
LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
   1366x768       60.0*+
   1360x768       59.8     60.0 
   1024x768       60.0 
   800x600        60.3     56.2 
   640x480        59.9 
VGA1 connected (normal left inverted right x axis y axis)
   1024x768       60.0 
   800x600        60.3     56.2 
   848x480        60.0 
   640x480        59.9 

DP1 disconnected (normal left inverted right x axis y axis)

XRandR wyświetlił wszystkie podłączone monitory – zwróć uwagę na właściwą numerację urządzeń – tutaj:
– LVDS1 – monitor laptopa
– VGA1 – telewizor/monitor podłączony przez VGA
– DP1 – niepodłączony

Teraz za pomocą polecenia ‚gtf’ wygeneruj linię ‚modeline’ dla ustawień serwera Xorg, która dostarcza serwerowi wyświetlania informacji o podłączonych monitorach/telewizorach i ich rozdzielczości, wg schematu:
gtf szerokość wysokość częstotliwość_odświeżania
W moim przypadku będzie to:

gtf 1366 768 60
 
  # 1368x768 @ 60.00 Hz (GTF) hsync: 47.70 kHz; pclk: 85.86 MHz
  Modeline "1368x768_60.00" 85.86 1368 1440 1584 1800 768 769 772 795 -HSync +Vsync

Teraz można ustawić właściwe parametry dla monitora, w moim przypadku będzie to:
xrandr --newmode "1368x768_60.00" 85.86 1368 1440 1584 1800 768 769 772 795 -HSync +Vsync
xrandr --addmode VGA1 1368x768_60.00
xrandr --output VGA1 --mode 1368x768_60.00
Właściwa rozdzielczość drugiego monitora została ustawiona.
Polecenie ‚xrandr -q’ oraz nakładka graficzna LXRandR potwierdzają nowe ustawienia.

LXRandR

 

Niestety po ponownym uruchomieniu komputera, nowe ustawienia nie są zapamiętywane.
Co należy zrobić, aby nie konfigurować za każdym razem wszystkiego od początku?

Utwórz plik o dowolnej nazwie w katalogu domowym, może być ukryty, np.:
.tele1
Wklej do niego ostatnie trzy polecenia xrandr, według wzoru:
#! /bin/bash
xrandr --newmode "1368x768_60.00" 85.86 1368 1440 1584 1800 768 769 772 795 -HSync +Vsync
xrandr --addmode VGA1 1368x768_60.00
xrandr --output VGA1 --mode 1368x768_60.00

Nadaj mu prawa wykonalności:

chmod a+x .tele1
Dodaj plik ‚.tele1’ do autostartu systemu za pomocą dostępnych narzędzi dla Twojego systemu/środowiska.
Możesz również zrobić to ręcznie, tworząc plik o nazwie, np:
 
tele1.desktop
w katalogu:
~HOME/.config/autostart/
do którego wklej tekst (zmień ‚user’ na swój nick):

[Desktop Entry]
Encoding=UTF-8
Name=Tele1
Comment=Mój telewizor 1
Exec=sh /home/user/.tele1
StartupNotify=true
Terminal=false

Po każdorazowym uruchomieniu komputera, właściwe ustawienia monitora będą ładowane.

Więcej informacji o XRandR uzyskasz wpisując polecenia:

xrandr --help
man xrandr

 

Powiązane wpisy

6 thoughts on “Monitor w systemie Linux

  • 30/08/2020 at 12:16 am
    Permalink

    Dzięki! 🙂 Jestem świeżakiem w Linuxie, a to była moja pierwsza operacja na terminalu. Zakończona sukcesem – bomba! Dziękuję bardzo.

    Reply

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *