4.5. Obsługa wyjścia TV
Poprzedni | Rozdział 4. Urządzenia wyjścia video | Następny

## 4.5. Obsługa wyjścia TV

### 4.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)

### 4.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/

### 4.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.

### 4.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.

### 4.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).

Poprzedni | Początek rozdziału | Następny
4.4. Inny sprzęt do wizualizacji | Spis treści | Rozdział 5. Porty