8.5. Obsługa wyjścia TV

8.5.1. Karty Matrox G400

Pod Linuksem istnieją dwa sposoby uruchomienia wyjścia TV na karcie Matrox G400:

WAŻNE

instrukcje dla Matrox G450/G550 znajdują się w następnej sekcji!

XFree86

Używając sterownika oraz modułu HAL, dostępnego na stronie Matroksa. Będziesz miał X na TV.

Ten sposób nie daje Ci przyśpieszanego odtwarzania jak pod Windowsami! Drugie wyjście ma tylko bufor ramki YUV, BES (Back End Scaler, układ skalujący YUV na kartach G200/G400/G450/G550) tam nie działa. Windowsowy sterownik jakoś to obchodzi, prawdopodobnie używając silnika (engine) 3D do powiększania, a bufora ramki YUV do wyświetlania obrazu. Jeżeli na prawdę musisz używać X, użyj opcji -vo x11 -fs -zoom. Ostrzegam, że będzie to WOLNE i będzie miało włączone zabezpieczenie przed kopiowaniem Macrovision (Macrovision copy protection). (możesz "obejść" Macrovision używając tego skryptu perla).

Bufor ramki (framebuffer)

Używając modułów matroxfb w jądrach 2.4. 2.2 nie obsługują wyjścia TV, więc są do tego celu bezużyteczne. Musisz włączyć WSZYSTKIE specyficzne dla matroxfb podczas kompilacji (poza MultiHead) i skompilować je w moduły! Będziesz także potrzebował włączonego I2C.

  1. Wejdź do TVout i wpisz ./compile.sh. Zainstaluj TVout/matroxset/matroxset w jakimś katalogu znajdującym się w zmiennej PATH.

  2. Jeżeli nie masz zainstalowanego fbset, umieść TVout/fbset/fbset gdzieś w swojej zmiennej PATH.

  3. Jeżeli nie masz zainstalowanego con2fb, umieść TVout/con2fb/con2fb gdzieś w swojej zmiennej PATH.

  4. Następnie wejdź do katalogu TVout/ w źródłach MPlayera i uruchom ./modules jako root. Twoja konsola tekstowa wejdzie w tryb framebuffer (nie ma odwrotu!).

  5. Następnie, WYEDYTUJ i uruchom skrypt ./matroxtv. Ukaże Ci się bardzo proste menu. Naciśnij 2 i Enter. Teraz powinieneś mieć ten sam obraz na monitorze i TV. Jeżeli na obrazie TV (standardowo PAL) są jakieś paski, znaczy to, że skrypt nie był w stanie poprawnie ustawić rozdzielczości (standardowo na 640x512). Wypróbuj inne rozdzielczości z menu i/lub poeksperymentuj z fbset.

  6. Tiaa. Następnym zadaniem będzie sprawienie aby kursor na tty1 (lub innym) zniknął oraz aby wyłączyć wygaszanie ekranu. Wykonaj następujące polecenia:

    echo -e '\033[?25l'
    setterm -blank 0

    lub

    setterm -cursor off
    setterm -blank 0

    Możliwe, że chcesz umieścić to w skrypcie, a także wyczyścić ekran. Aby z powrotem włączyć kursor:

    echo -e '\033[?25h'

    lub

    setterm -cursor on

  7. Tiaa git. Rozpocznij odtwarzanie filmu przez:

    mplayer -vo mga -fs -screenw 640 -screenh 512 nazwa_pliku

    (Jeżeli używasz X, przełącz się teraz na matroxfb używając np. Ctrl+Alt+F1.) Zmień 640 oraz 512, jeżeli chcesz ustawić inną rozdzielczość...

  8. Ciesz się ultra-szybkim ultra-bajernym wyjściem TV Matroksa (lepsze niż Xv)!

Konstruowanie kabla TV-out do Matroksów.  Nikt nie bierze na siebie żadnej odpowiedzialności za zniszczenia spowodowane tą dokumentacją.

Kabel dla G400.  W złączu CRTC2 na czwartej nóżce (pin) jest sygnał composite video. Uziemienie jest na szóstej, siódmej i ósmej nóżce. (info dostarczone przez Balázs Rácz)

Kabel dla G450.  W złączu CTRC2 na pierwszej nóżce jest sygnał composite video. Ziemia jest na piątej, szóstej, siódmej i pietnastej (5, 6, 7, 15) nóżce. (info dostarczone przez Balázs Kerekes)

8.5.2. Karty Matrox G450/G550

Obsługa wyjścia TV dla tych kart została dodana dopiero niedawno i nie należy jeszcze do głównego drzewa jądra. . Z tego, co wiem, moduł mga_vid nie może być obecnie użyty ponieważ sterownik G450/G550 pracuje tylko w jednej konfiguracji: pierwszy układ CRTC (z wieloma możliwościami) na pierwszym ekranie (monitor) i drugi CRTC (bez BES - po objaśnienia do BES sięgnij do sekcji G400 wyżej) na TV. W chwili obecnej możesz więc używać tylko sterownika wyjścia fbdev MPlayera.

Obecnie pierwszy CRTC nie może być przekierowany na drugie wyjście. Autor sterownika jądra matroxfb - Petr Vandrovec - być może zrobi obsługę tego poprzez wyświetlanie wyjścia z pierwszego CRTC na obydwa złącza jednocześnie, jak to jest w tej chwili zalecane dla G400, patrz sekcja wyżej.

Potrzebną łatkę na jądro i dokładne HOWTO można ściągnąć z http://www.bglug.ca/matrox_tvout/

8.5.3. karty ATI

WSTĘP.  Obecnie ATI nie chce obsługiwać pod Linuksem żadnego z układów TV-out, z powodu ich licencjonowanej technologii Macrovision.

STAN KART ATI Z TV-OUT POD LINUKSEM

  • ATI Mach64: obsługiwane przez GATOS.

  • ASIC Radeon VIVO: obsługiwane przez GATOS.

  • Radeon oraz Rage128: obsługiwane przez MPlayera! Sprawdź sekcje sterownik VESA oraz VIDIX.

  • Rage Mobility P/M, Radeon, Rage 128, Mobility M3/M4: obsługiwane przez atitvout.

Na innych kartach używaj sterownika VESA, bez VIDIX. Potrzebny jest jednak potężny CPU.

Jedyna rzecz, którą musisz zrobić to: Mieć podłączony odbiornik TV przez uruchomieniem swojego PC, ponieważ video BIOS inicjalizuje się tylko podczas procedury POST.

8.5.4. nVidia

Najpierw MUSISZ ściągnąć sterowniki o zamkniętych źródłach z http://nvidia.com. Nie będę tutaj opisywał procesu instalacji i konfiguracji ponieważ nie jest to celem tej dokumentacji.

Jeżeli XFree86, XVideo i przyśpieszanie 3D już działa prawidłowo, przerób sekcję Device swojej karty w pliku XF86Config zgodnie z poniższym wzorcem (dostosuj do swojej karty/TV):

Section "Device"
        Identifier      "GeForce"
        VendorName      "ASUS"
        BoardName       "nVidia GeForce2/MX 400"
        Driver          "nvidia"
        #Option         "NvAGP" "1"
        Option          "NoLogo"
        Option          "CursorShadow"  "on"

        Option          "TwinView"
        Option          "TwinViewOrientation" "Clone"
        Option          "MetaModes" "1024x768,640x480"
        Option          "ConnectedMonitor" "CRT, TV"
        Option          "TVStandard" "PAL-B"
        Option          "TVOutFormat" "Composite"
EndSection

Oczywiście najważniejsza jest część TwinView.

8.5.5. NeoMagic

Układ NeoMagic można znaleźć w rożnych laptopach, niektóre wyposażone są w prosty analogowy koder TV, inne mają bardziej zaawansowaną wersję.

  • Układ analogowy: Doniesiono nam, że dobre wyjście TV można uzyskać używając -vo fbdev lub -vo fbdev2. Potrzebujesz wkompilowanego w jądro vesafb i przekazane do poleceń jądra: append="video=vesafb:ywrap,mtrr" vga=791. Powinieneś uruchomić X, następnie przełączyć się do konsoli używając np. CTRL+ALT+F1. Jeżeli nie wystartujesz X przed uruchomieniem MPlayera z konsoli obraz będzie powolny i będzie się ciął (mile widziane wytłumaczenie). Zaloguj się na konsoli, a następnie wykonaj następujące polecenie:

    clear; mplayer -vo fbdev -zoom -cache 8192 dvd://

    Powinieneś ujrzeć odtwarzany w konsoli film zajmujący około połowę ekranu LCD Twojego laptopa. Aby przełączyć się na TV naciśnij Fn+F5 trzy razy. Przetestowane na Tecra 800, jądro 2.6.15 z vesafb, ALSA v1.0.10.

  • Układ kodujący Chrontel 70xx: Obecny w IBM thinkpad 390E, a możliwe, że także w innych Thinkpadach lub notebookach.

    Dla trybu PAL musisz użyć -vo vesa:neotv_pal. Dla trybu NTSC - -vo vesa:neotv_ntsc. Zapewni to funkcjonowanie wyjścia TV w następujących trybach 16 bpp i 8 bpp:

    • NTSC 320x240, 640x480, być może także 800x600.

    • PAL 320x240, 400x300, 640x480, 800x600.

    Tryb 512x384 nie jest obsługiwany przez BIOS. Musisz przeskalować obraz do innej rozdzielczości aby aktywować wyjście TV. Jeżeli widzisz obraz na ekranie w rozdzielczości 640x480 lub 800x600, lecz nie w 320x240, lub w innych mniejszych rozdzielczościach, to musisz zamienić dwie tabele w vbelib.c. Więcej szczegółów znajdziesz w kodzie funkcji vbeSetTV. W tym przypadku skontaktuj się z autorem.

    Znane problemy: Tylko VESA, nie są zaimplementowane ustawienia obrazu takie jak jasność, kontrast, poziom czerni (blacklevel) i filtr migotania (flickfilter).