Jak wykryć i skonfigurować wyjście za pomocą xrandr?

33

Mam monitor DELL U2410 podłączony do pulpitu Compaq 100B wyposażonego w zintegrowaną kartę graficzną AMD / ATI (AMD E-350). Zainstalowany system operacyjny to Ubuntu 10.04 LTS.

Komputer jest podłączony do monitora przez złącze DVI.

Problem polega na tym, że nie mogę ustawić rozdzielczości pulpitu na natywną 1920x1200. Maksymalna dozwolona rozdzielczość to 1600 x 1200.

Przeprowadzając badania, dowiedziałem się o xrandrużyteczności. Niestety, kiedy próbuję go użyć, nie mogę go skonfigurować do wymaganej rozdzielczości. Po pierwsze, nie zgłasza nazwy wyjściowej (która powinna być DVI-0), mówiąc defaultzamiast tego. Bez tego nie mogę skorzystać z tej --fbopcji.

Narzędzie EDID wydaje się dobrze identyfikować monitor. Oto dane wyjściowe z get-edid:

    # EDID version 1 revision 3
Section "Monitor"
    # Block type: 2:0 3:ff
    # Block type: 2:0 3:fc
    Identifier "DELL U2410"
    VendorName "DEL"
    ModelName "DELL U2410"
    # Block type: 2:0 3:ff
    # Block type: 2:0 3:fc
    # Block type: 2:0 3:fd
    HorizSync 30-81
    VertRefresh 56-76
    # Max dot clock (video bandwidth) 170 MHz
    # DPMS capabilities: Active off:yes  Suspend:yes  Standby:yes

    Mode    "1920x1200" # vfreq 59.950Hz, hfreq 74.038kHz
        DotClock    154.000000
        HTimings    1920 1968 2000 2080
        VTimings    1200 1203 1209 1235
        Flags   "-HSync" "+VSync"
    EndMode
    # Block type: 2:0 3:ff
    # Block type: 2:0 3:fc
    # Block type: 2:0 3:fd
EndSection

ale xrandr -qpolecenie zwraca:

Screen 0: minimum 640 x 400, current 1600 x 1200, maximum 1600 x 1200
default connected 1600x1200+0+0 0mm x 0mm
   1600x1200       0.0* 
   1280x1024       0.0  
   1152x864        0.0  
   1024x768        0.0  
   800x600         0.0  
   640x480         0.0  
   720x400         0.0  

Kiedy próbuję ustawić rozdzielczość, otrzymuję:

$ xrandr --fb 1920x1200
xrandr: screen cannot be larger than 1600x1200 (desired size 1920x1200)

$ xrandr --output DVI-0 --auto
warning: output DVI-0 not found; ignoring

Jak ustawić rozdzielczość ekranu na 1920x1200? Dlaczego nie xrandridentyfikuje DVI-0wyniku?

Pamiętaj, że ten sam komputer z systemem Ubuntu wyższym niż 10.04 wykrywa prawidłową rozdzielczość bez żadnych problemów. Na tym komputerze nie mogę dokonać aktualizacji z powodu niektórych starszych problemów ze zgodnością sprzętu.

Ponadto nie widzę żadnych opcjonalnych sterowników ekranu dostępnych w oknie dialogowym Sterowniki sprzętu.

----

AKTUALIZACJA :

po odpowiedzi na to pytanie uzyskałem pewien postęp. Teraz wymagany tryb znajduje się na xrandr -qliście, ale nie mogę przejść do tego trybu. Za pomocą apletu Monitory (który teraz pokazuje nowy tryb) otrzymuję odpowiedź, że:

The selected configuration for displays could not be applied. Could not set the configuration to CRTC 262.

Z wiersza poleceń wygląda to tak:

$ cvt 1920 1200 60
# 1920x1200 59.88 Hz (CVT 2.30MA) hsync: 74.56 kHz; pclk: 193.25 MHz
Modeline "1920x1200_60.00"  193.25  1920 2056 2256 2592  1200 1203 1209 1245 -hsync +vsync

$ xrandr --newmode "1920x1200_60.00"  193.25  1920 2056 2256 2592  1200 1203 1209 1245 -hsync +vsync

$ xrandr -q
Screen 0: minimum 640 x 400, current 1600 x 1200, maximum 1600 x 1200
default connected 1600x1200+0+0 0mm x 0mm
   1600x1200       0.0* 
   1280x1024       0.0  
   1152x864        0.0  
   1024x768        0.0  
   800x600         0.0  
   640x480         0.0  
   720x400         0.0  
  1920x1200_60.00 (0x120)  193.0MHz
        h: width  1920 start 2056 end 2256 total 2592 skew    0 clock   74.5KHz
        v: height 1200 start 1203 end 1209 total 1245           clock   59.8Hz

$ xrandr --addmode default 1920x1200_60.00

$ xrandr -q
Screen 0: minimum 640 x 400, current 1600 x 1200, maximum 1600 x 1200
default connected 1600x1200+0+0 0mm x 0mm
   1600x1200       0.0* 
   1280x1024       0.0  
   1152x864        0.0  
   1024x768        0.0  
   800x600         0.0  
   640x480         0.0  
   720x400         0.0  
   1920x1200_60.00   59.8  

$ xrandr --output default --mode 1920x1200_60.00
xrandr: Configure crtc 0 failed

Kolejna informacja (jeśli to pomaga komukolwiek):

$ sudo lshw -c video
  *-display UNCLAIMED     
       description: VGA compatible controller
       product: ATI Technologies Inc
       vendor: ATI Technologies Inc
       physical id: 1
       bus info: pci@0000:00:01.0
       version: 00
       width: 32 bits
       clock: 33MHz
       capabilities: pm pciexpress msi bus_master cap_list
       configuration: latency=0
       resources: memory:c0000000-cfffffff(prefetchable) ioport:f000(size=256) memory:feb00000-feb3ffff

----

AKTUALIZACJA 2 : Oto zaktualizowana lshwlista:

$ sudo lshw -numeric -c video
  *-display UNCLAIMED     
       description: VGA compatible controller
       product: ATI Technologies Inc [1002:9802]
       vendor: ATI Technologies Inc [1002]
       physical id: 1
       bus info: pci@0000:00:01.0
       version: 00
       width: 32 bits
       clock: 33MHz
       capabilities: pm pciexpress msi bus_master cap_list
       configuration: latency=0
       resources: memory:c0000000-cfffffff(prefetchable) ioport:f000(size=256) memory:feb00000-feb3ffff
tak
źródło
Jeśli sprawdziłem to poprawnie, masz monitor LED - ale twoje oprogramowanie „xrandr” chce skonfigurować „crtc” - który jest monitorem katodowym. Nie wiem, co teraz robić - ale może znajdziesz jakieś ustawienie, które możesz zmienić, aby próbowało rozmawiać z monitorem LED. Mam nadzieję, że to trochę pomoże. Przepraszam.
Peterling,
@ Peterling - zauważyłem, że jest to komunikat cykliczny dla innych osób zgłaszających ten błąd, ale prawdą jest, że jest dziwny. Nie mam pojęcia, co z tym zrobić.
ysap
1
Teraz „crtc” to tylko termin. Piksele są nadal taktowane w liniach i pikselach, a crtc jest mechanizmem zegarowym w logice wideo, który wytwarza prawidłowe taktowanie dla określonej rozdzielczości. Po wprowadzeniu tego terminu „crtc” był rzeczywistym indywidualnym układem scalonym, a wyświetlacz mógł być tylko CRT.
John S Gruber,
Jakiego sterownika wideo używasz?
John S Gruber,
@JohnSGruber - jak to powiedzieć?
ysap

Odpowiedzi:

9

Myślę, że gdzieś się dostaniesz, kiedy to zwiększysz:

Ekran 0: minimum 640 x 400, prąd 1600 x 1200, maksymalnie 1600 x 1200    
                                                  ⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑
 

Myślę, że wtedy będziesz w stanie zmusić xrandr do korzystania z trybu niestandardowego, którego nauczyłeś się definiować (jeśli nadal potrzebujesz go po rozwiązaniu podstawowego problemu).

Zwiększ wirtualny rozmiar ekranu

[Ten] [1] artykuł sugeruje dodanie linii wirtualnej do sekcji Ekran pliku konfiguracyjnego xorg.conf w celu ustawienia maksymalnego rozmiaru ekranu. To sprzed kilku lat. xrandr -qJednak podczas testowania nie byłem w stanie ustawić linii wirtualnej poza maksymalnym rozmiarem ekranu podanym przez . Jednak z moim sterownikiem i sprzętem ta wartość była już dość duża 8192 x 8192.

Możesz eksperymentować, dodając to jako /etc/X11/xorg.conf, na przykład:

Sekcja „Ekran”
    Identyfikator „Mój ekran”
    Podsekcja „Wyświetlanie”
        Wirtualny 2048 2048
    EndSubSection
EndSection

Prawdopodobnie nie zobaczysz pliku /etc/X11/xorg.conf, ponieważ dzisiejsze sterowniki wideo podejmą próbę ustalenia rozsądnych wartości domyślnych dla wszystkiego, a nowoczesne dystrybucje pomijają ten plik. Zostanie jednak użyty, jeśli jest obecny.

Jeśli masz już plik /etc/X11/xorg.conf, możesz spróbować dodać powyższą linię wirtualną do podsekcji Wyświetlanie w sekcji Ekran

Sugeruję przetestowanie tego za pomocą edytora wiersza poleceń, ponieważ istnieje szansa, że ​​zepsuje to możliwość logowania się za pomocą interfejsu GUI Ubuntu i może być konieczne wykonanie Alt-Ctrl-F1, zalogowanie się i edycja (lub usunięcie) pliku za pomocą narzędzi wiersza poleceń. Wszelkie błędy powinny znajdować się w /var/log/Xorg.0.log lub /var/log/Xorg.1.log.

W rzeczywistości możesz i powinieneś przetestować to, logując się do dodatkowego identyfikatora użytkownika w systemie (bez wylogowywania się ze zwykłego identyfikatora użytkownika) i sprawdzając z nowej sesji, w ten sposób możesz użyć Alt-Ctrl-F7, aby wrócić do pracy GUI, jeśli występują problemy. W przypadku używania dodatkowego identyfikatora użytkownika do logowania bez wylogowania z pierwszego odpowiedniego dziennika będzie /var/log/Xorg.1.log. Nie wylogowuj się z sesji roboczej ani nie uruchamiaj komputera, dopóki nie masz działającego pliku xorg.conf lub go ponownie usunąłeś.


Użyj innego sterownika grafiki

Inny artykuł, który przeczytałem rozwiązał ten problem, zmieniając sterowniki, ale z twojego pytania wynika, że ​​program Dodatkowe sterowniki nie daje żadnych alternatyw. (Zakładam, że to właśnie masz na myśli, gdy wspominasz o „oknie dialogowym Sterowniki sprzętu”. O ile nie zmienisz sterowników za pomocą programu Dodatkowe sterowniki, użyjesz sterownika, który jądro uzna za odpowiednie dla twojej karty graficznej lub logiki wideo na płycie głównej.

W przypadku OP, z tego, co opisałeś w swoich komentarzach powyżej, wydaje się, że twój system powinien używać sterownika radeon, ale tak nie jest. Używam sterownika radeon i często ustawiam rozdzielczość poziomą na 1920 (maks. Dla sterownika / karty to 8192). Sterowniki vesa i fb to bardzo podstawowe sterowniki dla starego sprzętu - wystarczająco stare, że monitory z tamtej epoki nie miały bardzo dużych wyświetlaczy.


Zaktualizuj Ubuntu

Jeśli używasz komputera nowszego niż zainstalowana wersja Ubuntu, a zwłaszcza jądro Linuksa, jest całkowicie możliwe, że jądro nie rozpozna twojej karty graficznej. W takim przypadku musisz zaktualizować oprogramowanie Ubuntu, które zawiera obsługę twojego sprzętu.

Ponieważ nie może uruchomić fglrx, niestety tak jest w przypadku ysap. Ze względu na nowość tego sprzętu w stosunku do wydania, w którym działa ysap, nie ma obsługi [1002.9802] w jądrze Linuksa Lucid (lub Maverick albo). Pierwsze wsparcie dla tego sprzętu pojawiło się w jądrze Natty 2.6.38. Aby sprawdzić obsługę określonego urządzenia w modułach jądra, możesz przejść do pliku / lib / modules / kernel-version /module.alias i poszukać wartości adaptera. Do tego sprzętu:

grep v00001002d00009802 /lib/modules/2.6.38-10-generic/modules.alias

Aby sprawdzić obsługę jądra Natty. Odpowiada:

alias pci:v00001002d00009802sv*sd*bc*sc*i* radeon

W ramach testu możesz spróbować uruchomić dysk CD na żywo w systemie i ustawić żądaną rozdzielczość w tym środowisku (kliknij Wypróbuj Ubuntu, a nie Instaluj).

Uzyskanie odpowiedniej obsługi sterowników może również umożliwić nowoczesne urządzenia graficzne, takie jak bezpośrednie renderowanie i obsługa OpenGL, znacznie poprawiając wydajność i estetykę.

W przypadku komputera osobistego możesz również użyć zaktualizowanego jądra, jeśli kompatybilne jest dostępne dla twojej wersji Ubuntu. W przypadku komputera produkcyjnego może być konieczne uaktualnienie Ubuntu do nowszej wersji, jeśli jest dostępna, ze względu na niezawodność i solidność.

John S Gruber
źródło
1
Dziwne jest to, że nie mam xorg.confnigdzie w systemie plików. Ale, jeśli dobrze rozumiem, we współczesnym gnomie ten plik jest przestarzały i nie jest wymagany. Znalazłem xorg.conf.dprogram i odpowiednią stronę podręcznika.
ysap
/etc/X11/xorg.conf nie jest już potrzebny w przypadku sprzętu większości systemów, ale nie jest przestarzały - możesz podać jeden, aby ustawić potrzebne szczegóły. Tak próbowałem wyżej. Te szczegóły można również umieścić w pliku dodanym do katalogu /etc/X11/xorg.conf.d/. Dodaję przykład.
John S Gruber,
Zobaczmy, czy to jest jaśniejsze. Daj mi znać, jeśli nie.
John S Gruber,
Dzięki, John. Przetestowałem opublikowany plik xorg.conf i rzeczywiście zepsuł mi się ekran po zmianie konta, więc musiałem go usunąć.
ysap
W systemie Ubuntu 10.04 w menu System / Administracja znajduje się aplet „Napędy sprzętowe”. Ten aplet nie zawiera alternatywnych sterowników. Jednak właśnie zdałem sobie sprawę, że dany komputer nie jest obecnie podłączony do Internetu (jesteśmy obecnie w wersji demonstracyjnej), więc możliwe jest, że gdy wrócimy do biura, zobaczę alternatywę dla sterownika ATI. Niejasno pamiętam z przeszłości, że zastrzeżone sterowniki nie rozwiązały problemu i nigdy nie byłem w stanie uzyskać tej rozdzielczości z 10.04.
ysap
15

Zetknąłem się również z tym problemem (kiedyś miał ekran Dell 23 ")

Najpierw określ, który interfejs jest podłączony do twojego wyświetlacza:

$ xrandr -q

Dane wyjściowe polecenia będą:

mukolla@pk:~$ xrandr -q

Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192

LVDS connected (normal left inverted right x axis y axis)
   1366x768       60.0 +
   1280x720       59.9  
   1152x768       59.8  
   1024x768       59.9  
   800x600        59.9  
   848x480        59.7  
   720x480        59.7  
   640x480        59.4  

HDMI-0 disconnected (normal left inverted right x axis y axis)

VGA-0 connected ......

   1024x768       75.1     60.0  
   800x600        75.0     60.3  
   640x480        75.0     60.0  
   720x400        70.1  

Zewnętrzny wyświetlacz jest podłączony do portu VGA-0 . Należy to zauważyć.

Teraz dodaj nowy tryb do wyświetlenia:

$ xrandr --newmode "1920x1080_60.00"  172.80  1920 2040 2248 2576  1080 1081 1084 1118  -HSync +Vsync
$ xrandr --addmode VGA-0 1920x1080_60.00
$ xrandr --output VGA-0 --mode 1920x1080_60.00
Микола Ткачук
źródło
To nie działa na zmianę wbudowanego ekranu, prawda?
KhoPhi,
Błąd BadMatch z np .: xrandr --addmode "DVI-I-1" "1280x800_60.00"jakiś pomysł? (DVI-I-1 jest podłączony)
Aquarius Power
@AquariusPower Spróbuj DVI-1-1zamiastDVI-I-1
WinEunuuchs2Unix
6

Dzień dobry. Miałem ten problem podczas łączenia się z systemem Ubuntu, który nie ma ekranu (kiedyś miał ekran Dell 24 ", ale był potrzebny gdzie indziej). Nie jestem wystarczająco bystry, aby wiedzieć, dlaczego to działa, ale oto seria poleceń co działa dla mnie - nie wymaga edycji pliku.

Uwaga: podczas ponownego uruchamiania musisz je uruchomić ponownie. Sugeruję skrypt powłoki.

gtf 1920 1200 60 -x
xrandr --newmode "1920x1200_60.00"  193.16  1920 2048 2256 2592  1200 1201 1204 1242  -HSync +Vsync
xrandr --addmode VGA1 1920x1200_60.00
xrandr --output VGA1 --mode 1920x1200_60.00
użytkownik202431
źródło
Działa to niesamowicie dobrze!
Folkert van Heusden
4

Dodałem powyższe wiersze (otrzymałem nieco inne dane wyjściowe od polecenia gtf) do pliku .xprofile w moim katalogu domowym. Pracował jak sen. Patrz poniżej.

gtf 1920 1080 60 -x

xrandr --newmode "1920x1080_60.00"  172.80  1920 2040 2248 2576  1080 1081 1084 1118  -HSync +Vsync

xrandr --addmode Virtual1 1920x1080_60.00

xrandr --output Virtual1 --mode 1920x1080_60.00

Używam Vmware Player, stąd nazwa wyjścia.

Tim
źródło
2

spróbuj zainstalować arandr, aby skonfigurować konfigurację xrandr z GUI .

sudo apt install arandr

następnie ustaw rozdzielczość, orientację i pozycję wyświetlaczy, a następnie zapisz konfigurację.

widać, że jego wynikiem jest skrypt powłoki (.sh) zwykle w ~ / .screenlayout

mwm
źródło