Co to jest crtc i ile wyjść mogę włączyć za pomocą xrandr?

19

Używam thinkpad Lenovo x220i z systemem Linux Crunchbang (który korzysta z menedżera okien Openbox). Laptop ma z boku wtyczkę DP i VGA.

Podłączając kable DP i VGA i działając xrandr, zauważam, że następujące wyjścia są dostępne / aktywne:

VGA1
DP1
LVDS1  <- the laptop screen

Jeśli spróbuję włączyć więcej niż 2 (przy użyciu dowolnej kombinacji), pojawia się błąd „nie można znaleźć crtc dla wyjścia dla [VGA1 / DP1 / LVDS1]”

Co to jest CRTC? Jak sprawdzić, ile jest dostępnych? Czy można dodać więcej w oprogramowaniu lub może za pomocą karty PCI?

Dzięki.

neildaemond
źródło

Odpowiedzi:

31

CRTC oznacza „Cathode Ray Tube Controller”, ale wikipedia woli „ Video Display Controller ”.

Nadal są często nazywane CRTC - warunki techniczne mogą czasem zmieniać się powoli.

Zawsze istnieje bardziej skomplikowane wytłumaczenie, ale odpowiednie podsumowanie jest takie, że każdy CRTC odpowiada buforowi wideo na karcie graficznej, który ma zostać wyprowadzony. Wybrałem to konkretne sformułowanie, aby podkreślić niektóre niuanse:

  • Ekran oprogramowania, taki jak ten używany dla bezgłowego serwera VNC, będzie używał pamięci RAM dla pamięci wideo i nie będzie miał nic wspólnego z kartą wideo, ani nie uzyska żadnego przyspieszenia sprzętowego z jednego. Nie wymaga CRTCc, ponieważ nie ma go na karcie graficznej.
  • Jeśli używasz karty graficznej do renderowania sceny, a następnie odzyskujesz bufor końcowego wyniku z powrotem do pamięci / dysku, nie występuje CRTC, ponieważ nie jest on przeznaczony do wyjścia, pomimo użycia pamięci karty wideo.
  • Karta graficzna może obsługiwać wysyłanie jednego CRTC do wielu wyświetlaczy. Muszą mieć tę samą rozdzielczość i mogą, ale nie muszą być tej samej częstotliwości. Po prostu użycie ustawień wyświetlania do „Pokaż ten sam ekran” na dwóch lub więcej ekranach prawdopodobnie nie skorzysta z tego i będzie odzwierciedlać końcowy bufor na dwóch CRTC. Zapewnienie klonowania pojedynczego CRTC na dwóch wyświetlaczach, jak dotąd, przekracza moje możliwości techniczne.

Aby odpowiedzieć na pozostałe pytania:

Jak dowiedzieć się, ile jest dostępnych [CRTC]?

$ xrandr --listproviders Providers: number : 1 Provider 0: id: 0x4d cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 4 outputs: 10 associated providers: 0 name:Intel

Zwróć uwagę, że podobnie jak ty mam więcej wyjść niż CRTC: crtcs: 4 outputs: 10istnieją dobre powody, aby wyjść było wiele, głównie sprowadzając się do portów wideo, które mają wiele wygody:

  • Złącze DisplayPort może mieć 2 lub 3 wyjścia związane z tym łańcuchem, jeśli obsługiwane jest łączenie łańcuchowe .
  • Złącze DVI-I można podzielić na komponenty cyfrowe i analogowe, aby obsługiwać jeden monitor każdego typu. Starym leniwym rozwiązaniem było sklonowanie ich w sprzęcie, ale obecnie urządzenia wideo mają zwykle DVI i wyjście VGA powiązane z takim portem.
  • Stacja dokująca do laptopa może z łatwością podwoić liczbę wyjść, a następnie niektórych, ponieważ chcą zaoferować wygodę dzięki licznym dodatkowym złączom w stacji dokującej.
  • Urządzenie wideo może mieć niezaimplementowane złącza, ponieważ zostało przyspieszone do produkcji lub ponieważ jest to ponowna implementacja innego urządzenia, ale niektóre złącza zostały pominięte.

Czy można dodać więcej [CRTC] w oprogramowaniu, czy może za pomocą karty PCI?

Ponieważ CRTC są dostarczane przez procesor graficzny, jedynym sposobem na uzyskanie większej liczby jest dodanie urządzenia wideo, które będzie działać jednocześnie z tym, które już masz. Wiem, że jest to możliwe i że istnieje wiele ograniczeń, ale nic więcej. Będziesz musiał zbadać wiele ustawień GPU, aby sprawdzić, czy jest to w ogóle możliwe.


PS Dużo się tego dzisiaj uczę i natknąłem się na twoje pytanie podczas moich własnych badań.

Wasilij Szarapow
źródło
2

crtcoznacza kontroler z lampą elektronopromieniową . W czasach starożytnych monitory używały raczej CRT(ciężkich szklanych urządzeń) niż LCDwspółczesnego wyświetlacza.

Axel Kemper
źródło
2
+1 za znajomość „czasów starożytnych”. Dlaczego jednak pojawia się wspomniany komunikat o błędzie, jeśli crt JEST faktycznie podłączony? Otrzymuję ten komunikat tylko wtedy, gdy próbuję aktywować 3. wyjście. edytuj: Ups, potrzebuję 15 punktów, aby głosować: /
neildaemond
1

Jestem pewien, że jest to ograniczenie sprzętowe w twoim urządzeniu wyświetlającym. Mam podobną sytuację - laptop (t430) ze stacją dokującą. Mogę używać równolegle 3 monitorów - 2 * DP i LVDS lub 3 * DP lub LVDS i DP i HDMI .. ale włączenie dowolnego monitora pokaże mi ten sam błąd jak twój.

niezdefiniować
źródło