4.20. Поддержка TV-выхода

4.20. Поддержка TV-выхода

4.20.1. Matrox G400 карты

Под Linux есть два способа получить работающий TV выход на G400:

Важно

инструкции по TV-выходу для Matrox G450/G550, смотрите в следующем разделе!

XFree86

Используя драйвер и HAL модуль, доступный с сайта Matrox. Это даст вам X на TV.

Этот метод на дает ускоренного воспроизведения как под Windows! Второй выход имеет только YUV фреймбуфер, BES (Back End Scaler, модуль YUV масштабирования на картах G200/G400/G450/G550) на нем не работает! Драйвер windows как-то это обходит, возможно используя 3D движок для масштабирования, а YUV фреймбуфер - для вывода отмасштабированного изображения. Если вы действительно хотите использовать X, используйте опции -vo x11 -fs -zoom, но это будет МЕДЛЕННО, и будет иметь включенную защиту от копирования Macrovision (можно "обойти" Macrovision используя этот скрипт на perl).

Framebuffer

Используя модули matroxfb в 2.4 ядрах. 2.2 ядра не имеют в этих модулях возможности работы с TV-out, так что для нашего дела непригодны. Вы должны включить ВСЕ matroxfb-относящиеся возможности во время компиляции (кроме MultiHead), и скомпилировать их в модули! Вам также необходима задействованная I2C.

  1. Войдите в TVout и наберите ./compile.sh. Установите TVout/matroxset/matroxset куда-нидудь в ваши PATH.

  2. Если вы еще не имеете установленного fbset, поместите TVout/fbset/fbset куда-нибуть в ваши PATH.

  3. Еслы con2fb у вас еще не установлен, поместите TVout/con2fb/con2fb куда-нибуть в ваши PATH.

  4. Затем войдите в каталог TVout/ в исходниках MPlayer, и запустите ./modules от имени root. Ваша консоль из текстового режима переключится в режим фреймбуфера (обратно не получится!).

  5. Затем, ОТРЕДАКТИРУЙТЕ и запустите скрипт ./matroxtv. Он покажет вам очень простое меню. Нажмите 2 и Enter. Теперь вы должны иметь одинаковую картинку на мониторе и TV. Если картинка на TV (PAL по-умолчанию) имеет некоторые странные полосы, значит скрипт не смог корректно установить разрешение (на 640x512 по-умолчанию). Попробуйте другие разрешения из меню и/или поэкспериментируйте с fbset.

  6. Йоу. Следующая задача - убрать курсор с tty1 (или где он есть), и выключить гашение экрана. Запустите следующие команды:

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

    or

    setterm -cursor off
    setterm -blank 0

    Возможно вы захотите поместить вышеуказанное в скрипт, добавив очистку экрана. Чтобы вернуть курсор назад

    echo -e '\033[?25h'

    или

    setterm -cursor on

  7. Готово. Запускайте воспроизведение

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

    (Если используете X, переключитесь теперь в matroxfb при помощи, например Ctrl+Alt+F1.) Замените 640 и 512, если установили другое разрешение...

  8. Наслаждайтесь супер-быстрым, супер-навороченным выводом Matrox TV (лучше чем Xv)!

Создание кабеля Matrox TV-out.  Никто не дает никаких гарантий и не несет никакой ответственности за возможное нанесение ущерба, вызванное выполнением инструкций, указанныех в этой документации.

Кабель для G400.  Четвертый контакт CRTC2 коннектора - это композитный видео сигнал. Земля - шестой, седьмой и восьмой контакты. (информация получена от Balázs Rácz)

Кабель для G450.  Первый контакт CRTC2 коннектора - это композитный видео сигнал. Земля - пятый, шестой, седьмой и пятнадцатый (5, 6, 7, 15) контакты. (информация получена от Balázs Kerekes)

4.20.2. Matrox G450/G550 карты

Поддержка TV выхода для этих карт была добавлена недавно, и пока отсутствует в основном ядре. В данный момент mga_vid не может быть использован AFAIK, поскольку дрйвер G450/G550 работает только в одной конфигурации: первый чип CRTC (с наибольшим количеством возможностей) на первом экране (мониторе), и второй чип CRTC (без BES - для объяснения, что такое BES, смотрите раздел о G400 выше) на TV. Так что в настоящий момент вы можете использовать только драйвер вывода fbdev программы MPlayer.

Первый CRTC не может быть перенаправлен на второй выход на текущий момент. Автор драйвера ядра matroxfb - Petr Vandrovec - возможно добавит поддержку для этого, отображая вывод первого CRTC одновременно на два выхода, как в данный момент и рекомендуется для G400, смотрите раздел выше.

Необходимый патч для ядра и детальное HOWTO можно скачать с http://www.bglug.ca/matrox_tvout/

4.20.3. ATI карты

ПРЕАМБУЛА.  Сейчас ATI не хочет поддерживать ни один из ее TV-out чипов под Linux, по причине технологии лицензированной ими у Macrovision.

СТАТУС ПОДДЕРЖКИ TV-OUT ДЛЯ КАРТ ATI ПОД LINUX

  • ATI Mach64: поддерживается GATOS.

  • ASIC Radeon VIVO: поддерживается GATOS.

  • Radeon и Rage128: поддерживается MPlayer! Смотрите разделы VESA драйвер и VIDIX.

  • Rage Mobility P/M, Radeon, Rage 128, Mobility M3/M4: поддерживается atitvout.

Для других карт просто используйте VESA драйвер, без VIDIX. Конечно, требуется мощный CPU.

Единственная вещь, которую надо сделать - Иметь TV коннектор подключенным до загрузки вашего PC, поскольку видео BIOS инициализирует себя только один раз во время POST процедуры.

4.20.4. nVidia

Во-первых, вы ДОЛЖНЫ скачать закрытые драйверы с http://nvidia.com. Я не буду описывать процесс установки и настройки, поскольку это выходит за рамки данной документации.

После того, как XFree86, XVideo, и 3D ускорение заработает правильно, отредактируйте раздел Device для вашей карты в файле XF86Config, в соответствии с указанным ниже примером (адаптируйте к вашей карте/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

Конечно же важная часть - это TwinView.

4.20.5. NeoMagic

Чип NeoMagic найден на различных ноутбуках, некоторые из которых оснащаются простым аналоговым TV кодером, некоторые имеют более продвинутый.

  • Чип аналогового кодера: Сообщалось, что надежный TV выход можно получить, используя -vo fbdev или -vo fbdev2. Вам требуется иметь vesafb скомпилированный в вашем ядре и передать следующие параметры в командной строке ядра: append="video=vesafb:ywrap,mtrr" vga=791. Вам следует запустить X, затем переключитесь в консольный режим при помощи, например, Ctrl+Alt+F1. Если вы не запустите X до запуска MPlayer в консоли, видео станет медленным и дрожащим[choppy] (объяснения приветствуются). Залогиньтесь в консоли и запустите следующую команду:

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

    Теперь вы должны увидеть фильм, запущенный в консольном режиме, заполняющий примерно половину LCD экрана вашего ноутбука. Для переключения в TV нажмите Fn+F5 три раза. Тестировался на Tecra 8000, 2.6.15 ядре с vesafb, ALSA v1.0.10.

  • Chrontel 70xx чип кодирования: Найден на IBM Thinkpad 390E и, возможно, других Thinkpad или ноутбуках.

    Необходимо использовать -vo vesa:neotv_pal для PAL или -vo vesa:neotv_ntsc для NTSC. Это даст TV выход, работающий в следующих 16 bpp и 8 bpp режимах:

    • NTSC 320x240, 640x480 and maybe 800x600 too.

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

    Режим 512x384 не поддерживается в BIOS. Вы должны масштабировать изображение в другое разрешение для задействования TV выхода. Если вы видите изображение на экране в разрешении 640x480 или 800x600, но не 320x240 или другом меньшем разрешении, вам требуется заменить две таблицы в vbelib.c. Смотрите функцию vbeSetTV для подробностей. Пожалуйста, свяжитесь автором в этом случае.

    Известные проблемы: только VESA, не реализованы различные настройки, такие как яркость, контрастность, уровень черного, фильтр дрожания[flickfilter].