4.20. Поддержка TV-выхода
Под 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.
Войдите в TVout и наберите ./compile.sh. Установите TVout/matroxset/matroxset куда-нидудь в ваши
PATH
.Если вы еще не имеете установленного fbset, поместите TVout/fbset/fbset куда-нибуть в ваши
PATH
.Еслы con2fb у вас еще не установлен, поместите TVout/con2fb/con2fb куда-нибуть в ваши
PATH
.Затем войдите в каталог TVout/ в исходниках MPlayer, и запустите ./modules от имени root. Ваша консоль из текстового режима переключится в режим фреймбуфера (обратно не получится!).
Затем, ОТРЕДАКТИРУЙТЕ и запустите скрипт ./matroxtv. Он покажет вам очень простое меню. Нажмите 2 и Enter. Теперь вы должны иметь одинаковую картинку на мониторе и TV. Если картинка на TV (PAL по-умолчанию) имеет некоторые странные полосы, значит скрипт не смог корректно установить разрешение (на 640x512 по-умолчанию). Попробуйте другие разрешения из меню и/или поэкспериментируйте с fbset.
Йоу. Следующая задача - убрать курсор с tty1 (или где он есть), и выключить гашение экрана. Запустите следующие команды:
echo -e '\033[?25l' setterm -blank 0
or
setterm -cursor off setterm -blank 0
Возможно вы захотите поместить вышеуказанное в скрипт, добавив очистку экрана. Чтобы вернуть курсор назад
echo -e '\033[?25h'
или
setterm -cursor on
Готово. Запускайте воспроизведение
mplayer -vo mga -fs -screenw 640 -screenh 512
filename
(Если используете X, переключитесь теперь в matroxfb при помощи, например Ctrl+Alt+F1.) Замените
640
и512
, если установили другое разрешение...Наслаждайтесь супер-быстрым, супер-навороченным выводом Matrox TV (лучше чем Xv)!
Создание кабеля Matrox TV-out. Никто не дает никаких гарантий и не несет никакой ответственности за возможное нанесение ущерба, вызванное выполнением инструкций, указанныех в этой документации.
Кабель для G400. Четвертый контакт CRTC2 коннектора - это композитный видео сигнал. Земля - шестой, седьмой и восьмой контакты. (информация получена от Balázs Rácz)
Кабель для G450. Первый контакт CRTC2 коннектора - это композитный видео сигнал. Земля - пятый, шестой, седьмой и пятнадцатый (5, 6, 7, 15) контакты. (информация получена от Balázs Kerekes)
Поддержка 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/
ПРЕАМБУЛА. Сейчас 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 процедуры.
Во-первых, вы ДОЛЖНЫ скачать закрытые драйверы с 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.
Чип 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].