arvdr + softdevice

  • Далее результат моих изысканий на тему вывода изображения через softdevice на телевизор, может кому пригодиться.


    Хочется смотреть фильмы на телевизоре, а SS1 увы нет и покупать не хочется.
    За основу был взят дистрибутив ArVDR 0.5
    (огромное спасибо x-free за проделанную работу!)
    К сожалению ArVDR позиционируется как дистрибутив для
    компьютеров с FF картой, хотя некоторое необходимое для
    пользователей с бюджетной картой присутствует.
    Были опробованы разные видеокарты:
    на NVIDIA Geforce2
    на NVIDIA Geforce4
    на ATI Radeon 9600
    на ATI Radeon 9200SE
    Matrox G400DH


    C картами на NVIDIA фреймбуффер работает только без акселерации,
    соответственно нужен достаточно быстрый процессор, у меня на
    Celeron 1.8 скорости не хватило. Качество вывода на TV было
    посредственное.
    ATI Radeon 9600 выводил только OSD, изображения не было.
    При включении Use StretchBlit получаем слайдшоу.
    ATI Radeon 9200SE заработал отлично, но увы, только на монитор,
    игры с atitvout не привели к успеху, сигнал на tvout был, но с
    неправильной синхронизацией, телевизор не показывал это.
    С Matrox G400 Dual head получилось выводить изображение
    как на телевизор, так и на монитор, качество вывода - отличное.


    Теперь небольшой how-to как запустить matrox g400dh под ArVDR:
    К сожалению в родном ядре все драйвера фреймбуффера вкомпилированны
    в ядро (надеюсь в следующем апдейте ядра или релизе ArVDR эта
    проблема будет исправлена) а для запуска tv-out требуется загрузка
    драйверов в определённой последовательности.
    Было взято ядро из ASPLinux 11 - 2.6.16-1.2115asp.
    В /boot/grub/grub.conf добавлена секция:


    --------------------------------------------------------
    title LinVDR 2.6.16 matrox
    root
    kernel /boot/vmlinuz-2.6.16-1.2115asp video=matroxfb root=/dev/hda1 acpi=force
    boot
    ---------------------------------------------------------


    /etc/init.d/runvdr дополнить так:
    ---------------------------------------------------------
    case "$1" in
    start)
    #-------- matrox -------------
    modprobe i2c-matroxfb
    modprobe matroxfb_Ti3026
    modprobe matroxfb_crtc2
    modprobe matroxfb_maven
    matroxset -f /dev/fb1 -m 0
    matroxset -f /dev/fb0 -m 3
    matroxset 1
    #brightness
    matroxset -f /dev/fb0 -c 0x980900 200
    #saturation
    matroxset -f /dev/fb0 -c 0x980902 100
    #-----------------------------


    ---------------------------------------------------------
    Нужно установить пакет fbset и matroxset
    (надеюсь они будут включены в следующий дистрибутив ArVDR).


    В /etc/vdr/config/softdevice.conf пишем:
    ---------------------------------------------------------
    #dfb
    PARAM="-L /usr/lib/vdr -vo dfb:"
    ---------------------------------------------------------


    В /etc/vdr/config/vdr.conf добавляем плугин softdevice:
    ---------------------------------------------------------
    PLUGINLIST=".... softdevice"
    ---------------------------------------------------------


    В /etc/directfbrc
    пишем:
    ---------------------------------------------------------
    # matrox
    mode=720x576-50
    depth=32
    primary-layer=2
    pixelformat=ARGB
    disable-module=lirc
    disable-module=keyboard
    ---------------------------------------------------------


    В /etc/fb.modes добавляем видеорежим:
    ---------------------------------------------------------
    mode "720x576-50"
    # D: 30.274 MHz, H: 37.701 kHz, V: 50.001 Hz
    geometry 720 576 736 576 32
    timings 33032 30 5 80 55 48 13
    vsync high
    bcast true
    accel true
    rgba 8/16,8/8,8/0,8/24
    endmode
    ---------------------------------------------------------


    Если нет родного кабеля - композит на 4 ножке, земля на 5-ой.
    Перезагружаемся и наслаждаемся изображением на TV.

  • Radeon 9600pro (Slackware, VDR 1.4.1-3)
    выводит картинку на ТВ, но!!!! под ОСД виден текст который на консоли в данный момент :( борюсь дальше...
    З.Ы, консоль в 50 герцах

  • так нету настроек :(
    стоит VDR 1.4.1-3 softdevice 0.2.3a комп грузится на 50 герцах - карта ловит подключеный телик - даже биос на телике.
    загружается консоль ./vdr -P "softdevice .... параметры"
    и на монере и на телике есть изображение.... только под ОСД видно все что выдает вдр на консоль :(
    чтобы видело телик сразу - пришлось впаять резистор в паралель кабелю к ТВ (100 Ом)

  • хм, интересно. У меня биос тож видно, но как только подгружается драйвер radeonfb, то tv-out сразу слетает :(

  • Цитата

    Со слов пользователя SergArb
    хм, интересно. У меня биос тож видно, но как только подгружается драйвер radeonfb, то tv-out сразу слетает :(


    Тоже самое было.

  • Цитата

    Со слов пользователя SergArb
    Ок, подождем, мож до выходных сам успею попробовать :)
    Вот простенькая схемка кодера RGB в Композит и s-video, может получиться ;)
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.


    Заказал кодер, т.к. микросхемы в наших краях не нашёт, через пару недель должна прийти.


    Нашёл такую вот желеку - конвертор vga->tv:
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.


    Область применения



    мультимедийные презентации
    вывод изображения с компьютера на телевизор/видеомагнитофон
    игры на большом экране телевизора

    Основные характеристики


    Компактный, портативный и легкий
    Подходит ко всем IBM PC/MAC с USB-портом
    Кнопки управления расположены прямо на базовом модуле
    Отсутствие блока питания - нужен только USB-порт
    Поддержка разрешений до 1024x768 (85Гц/PC, 75Гц/iMAC DV)
    8-ми битный A/D конвертер(16.7млн. цветов
    Ввод сигнала с видеокарты VGA или MAC
    - горизонтальная развертка: 31.5КГц - 106.3КГц
    - вертикальная развертка: 60Гц - 120Гц
    Вывод сигнала в формате S-Video, как обыкновенный композитный
    Вывод сигнала обратно на VGA-монитор

    Если смогут привезти местные фирмочки - закажу.

  • Вроде нашел как не поганить TV-Out на радеоне :) Должно работать, но только с vesafb. В ArVDR в ядре radeonfb, вот вычитал где-то:

    Console Framebuffer + ATI TV-Out

    IMPORTANT: ONLY compile in VESAFB. You might be tempted to compile in radeonfb, but it DOES NOT WORK.
    Compiling both vesafb and radeonfb will result in driver conflicts.
    MTRR support speeds things up.
    You must add video=vesafb:800x600-16@50 to the kernel line.
    Just adding video=vesafb or video=vesafb: does not work (the vesafb driver does not get loaded).


    Вот и не получается... Как убрать radeonfb? :) Пересобирать ядро чё-то не охото :(

  • Цитата

    Со слов пользователя SergArb
    Вроде нашел как не поганить TV-Out на радеоне :) Должно работать, но только с vesafb. В ArVDR в ядре radeonfb, вот вычитал где-то:

    You must add video=vesafb:800x600-16@50 to the kernel line.
    Just adding video=vesafb or video=vesafb: does not work (the vesafb driver does not get loaded).[/COLOR]


    Вот и не получается... Как убрать radeonfb? :) Пересобирать ядро чё-то не охото :(


    Что то странно! В vesa _нет_ установки частоты, только разрешение
    и глубина цвета, разве что в tng.


    Я взял другое ядро, из ASPLinux11, там модулями собраны видеодрайвера.

  • Разобрался как отключить radeonfb, надо прописать

    Исходный код
    video=radeonfb:off vga=0x315


    При таком раскладе radeonfb не грузится, TV-OUT работает.
    Но неработает softdevice :( При -vo dfb: - выдает что нет поддерживаемого устройства, если -vo fb: - бегает по кругу, в логах ошибок нет :( На 9-й консоли видно что-то типа: в софтовом режиме поддерживаются только 15/16 режимы и по кругу.


    Копаем дальше... X-ы принципиально нехочу ставить.

  • Цитата

    Со слов пользователя schs
    Что то странно! В vesa _нет_ установки частоты, только разрешение
    и глубина цвета, разве что в tng.


    Я взял другое ядро, из ASPLinux11, там модулями собраны видеодрайвера.


    У меня вобще неполучилось запустить этот vesafb, только "vga=...".
    Может напишеш какие параметры нужно для vesafb указать?

  • Запустил я TV-Out на Radeon, но только через "-vo fb:"


    HOW-TO:
    В /boot/grub/menu.lst пишем

    Исходный код
    video=radeonfb:off vga=0x314


    В /etc/vdr/config/softdevice.conf

    Исходный код
    PARAM="-L /usr/lib/vdr -vo fb:


    Проверял на Radeon9200SE & Radeon7000, на 7000 даже лучше работает :)
    Только загрузка процессора 90-95%(AthlonXP-3200+) и качество не очень.


    Надо попробовать через VIDIX, сразу вопрос: VIDIX будет без X-ов работать?

  • посмотрел у себя... у меня как-раз таки vesafb
    c directfb не завел... (у меня не авдр а ядро самосборное) DirectFB 0.9.25.1 - или другой лучше?
    а еще не комплится DFB++ может в этом дело? он нужен вообще этот ++?

  • Цитата

    Со слов пользователя Cyber_RAT
    посмотрел у себя... у меня как-раз таки vesafb
    c directfb не завел... (у меня не авдр а ядро самосборное) DirectFB 0.9.25.1 - или другой лучше?
    а еще не комплится DFB++ может в этом дело? он нужен вообще этот ++?


    Я DircetFB из CVS брал. DFB++ нужен, а почему не компилится то? У меня всё компилится.


    P.S. Седня буду мучать VIDIX :)

  • ++ сначала ругался что у меня не установлен сам DirectFB (оказалось что *.pc файлы он не туде куда все ложит... поправил, потом что-то он не нашел из библиотек).
    попробую собрать из CVS...
    а vidix где брал?

  • Цитата

    Со слов пользователя SergArb
    Разобрался как отключить radeonfb, надо прописать

    Исходный код
    video=radeonfb:off vga=0x315


    При таком раскладе radeonfb не грузится, TV-OUT работает.
    Но неработает softdevice :( При -vo dfb: - выдает что нет поддерживаемого устройства, если -vo fb: - бегает по кругу, в логах ошибок нет :( На 9-й консоли видно что-то типа: в софтовом режиме поддерживаются только 15/16 режимы и по кругу.


    Копаем дальше... X-ы принципиально нехочу ставить.


    Дак в /etc/fb.modes для выбранного разрешения измени глубину цвета.
    Примерно так:


    mode "800x600-60"
    # D: 40.00 MHz, H: 37.879 kHz, V: 60.32 Hz
    geometry 800 600 800 600 16
    timings 25000 88 40 23 1 128 4
    hsync high
    vsync high
    endmode


    Ну и fbset 800x600-60
    Безперспективно IMHO, слишком быстрый процессор для fb без акселерации нужен...

  • Цитата

    Со слов пользователя SergArb


    У меня вобще неполучилось запустить этот vesafb, только "vga=...".
    Может напишеш какие параметры нужно для vesafb указать?


    Я не указывал ядру не vga= не video=.
    Если указываешь vga= то vesafb и должен инициализоваться.
    Для модульного ядра нужно пересоздать initrd, если так хочется инициализации fb сразу. Я решил из runvdr подгружать модули и настраивать fb, пример для Matrox я приводил выше.

  • Цитата

    Со слов пользователя SergArb
    Надо попробовать через VIDIX, сразу вопрос: VIDIX будет без X-ов работать?


    Под vidix не зватает либы libvidix.so, забыли..
    # ldd /usr/lib/vdr/libsubvdr-softdevice-vidix.so.1.4.1
    linux-gate.so.1 => (0x0073f000)
    libvidix.so => not found
    libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x00b65000)
    libm.so.6 => /lib/tls/libm.so.6 (0x00aac000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x0038b000)
    libc.so.6 => /lib/tls/libc.so.6 (0x00111000)
    /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00740000)

  • Цитата

    Со слов пользователя schs
    Я не указывал ядру не vga= не video=.
    Если указываешь vga= то vesafb и должен инициализоваться.
    Для модульного ядра нужно пересоздать initrd, если так хочется инициализации fb сразу. Я решил из runvdr подгружать модули и настраивать fb, пример для Matrox я приводил выше.


    Да разобрался уже, выше же отписался... :)


    Что "libvidix.so => not found" я знаю, доставил из исходников, но free-x говорит, что без X-ов он работать небудет, посоветовал XineLibOutput, буду пробовать :)