Автор Гілка: Як встановити та налаштувати AverTV Studio 507UA  (Прочитано 48671 раз)

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3636
  • Карма: +3/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Інструкція зі встановлення драйверів для TV-тюнера AverTV Studio 507UA

Рік тому я придбав досить дешевий тюнер (близько 320 гр.) з досить якісним чипом приймача від Philips (saa7135) -- AverTV Studio 507UA (Зверніть увагу на дві останні літери!!!). Тюнер був у досить гарній упаковці, інструкція йшла до нього українською, та й драйвери до Windows (TM) були з українським перекладом (щоправда несумісні з SP2, втім були легко замінені на англомовні працюючі). Під Windows старі програми від AverMedia (R) пригальмовували під час запису у mpeg2 картинки 640х480 (Athlon XP Palomino 1600+), тому я перевантажився у Linux (на той час Mandriva 2006.0). Свого тюнера я у списку тюнерів не знайшов (на той час у контрольному центрі Mandriva можна було налаштувати ТБ-тюнер), тому обрав найближчу молодшу модель -- 307. Оскільки я був (і почасти залишаюся) чайником, я не знав, що він базується зовсім на іншому чипі, але по відсутності картинки у tvtime та зсунутості звуку у kradio зрозумів, що вибір помилковий.
Пошуки у інтернеті привели до якоїсь латки до ядра 2.6.18, яка була точнісінько злизана з характеристик 307-го, тому на час я припинив пошуки...
Декілька тижнів по тому з'явилася правильна латка для ядра 2.6.19 для ASP Linux від нашого співвітчизника Андрія Шевченка (велика йому за це дяка!). Я нашвидкоруч залатав ядро, перезібрав модулі, і все запрацювало як слід.

Змінивши нещодавно Mandriva 2006.0 на 2008.0 я був певен, що мій тюнер підтримується ядром, але ситуація виявилася трохи складнішою: встановлення номера тюнера 102 (AverTV Studio 507 -- зверніть увагу на відсутність UA) не призвело до бажаних наслідків: зображення було, але у більшості каналів без звуку.

Я знову залатав ядро, перезібрав модулі, замінив старі на нові, і все знову запрацювало як раніше, причому у Linux при запису ніякої суттєвої втрати кадрів не відбувалося.

Отже, якщо комусь цікаво, поділюся досвідом:

1. Якщо поки що немає планів завести AverTV Studio 507 (без UA), то для подальших кроків Вам знадобляться принаймі три ВЕЛИКИХ пакунки (після завершення операції їх можна буде прибрати). Це
а) kernel-source-2.6.22.9-1mdv вихідні тексти ядра, яке Ви обрали (можливі варіанти з 2.6.23 або мультимедіа (mm) ядром, laptop, та інше);
б) kernel-desktop-devel-2.6.22.9-1mdv головні файли Вашого ядра (ті самі варіанти)
в) gcc -- компілятор, яким зібрано Ваше ядро.

2. Після встановлення пакунків, Вам потрібно увійти (з правами адміністратора) до теки /usr/src/назва_Вашого_ядра/drivers/media/video/saa7134 (зауважте, що у потрібній теці мають бути не тільки файли з розширенням .h, але і файли з розширенням .c) і змінити у файлі saa7134.h рядки, що відповідають SAA7134_BOARD_AVERMEDIA_STUDIO_507 на такі:
       [SAA7134_BOARD_AVERMEDIA_STUDIO_507] = {
                /* Andy Shevchenko <andy@smile.org.ua> */
                .name           = "Avermedia AVerTV Studio 507UA",
                .audio_clock    = 0x00187de7,
                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3, /* Should be MK5 */
                .radio_type     = UNSET,
                .tuner_addr     = ADDR_UNSET,
                .radio_addr     = ADDR_UNSET,
                .tda9887_conf   = TDA9887_PRESENT,
                .gpiomask       = 0x03,
                .inputs         = {{
                        .name = name_tv,
                        .vmux = 1,
                        .amux = TV,
                        .tv   = 1,
                        .gpio = 0x00,
                },{
                        .name = name_comp1,
                        .vmux = 3,
                        .amux = LINE1,
                        .gpio = 0x00,
                },{
                        .name = name_svideo,
                        .vmux = 8,
                        .amux = LINE1,
                        .gpio = 0x00,
                }},
                .radio = {
                        .name = name_radio,
                        .amux = LINE2,
                        .gpio = 0x01,
                },
                .mute  = {
                        .name = name_mute,
                        .amux = LINE1,
                        .gpio = 0x00,
                },
        },
Все це можна зробити за допомогою програми Krusader у режимі адміністратора. Ті, кому хочеться повної відповідності, можуть скрізь (у всіх файлах згаданої теки змінити "507" (без лапок) на "507UA".

4. Копіювати файли Kbuild та Makefile з ІНШОЇ теки у /usr/src, що починається на linux.

5. Скомпілювати модулі командою, відданою від імені адміністратора у теці /usr/src/тека_в_якій_Ви_міняли_файл make modules (це не швидко -- встигнете прийняти ванну і чогось попоїсти)

6. Отримані модулі (те що з розширеннями ko у підтеці /drivers/media/video/saa7134) закинути до /lib/modules/Ваше_ядро/kernel/drivers/media/video/saa7134.
Там уже щось те саме валяється, але з розширеннями gz, витерти його і постискати всі модулі за допомогою gzip -f -9 *.

7. Налаштовуємо модулі у центрі керування Mandriva > Обладнання > Переглянути та налаштувати обладнання > Телевізійна карта > SAA7133/SAA7135 Video Brodcast Decoder > Кнопка внизу праворуч з написом "Set current driver options".
Я встановив:
card 102
alsa 1
i2c_scan 1
secam D
gbuffers 4

Або відредагувати /etc/modprobe.conf додавши туди рядок
options saa7134 secam=D alsa=1 card=102 gbuffers=4 i2c_scan=1
5. Перевірити все на точність:
#depmod -a
#modprobe saa7134
#lsmod|grep saa7134 ; має з'явитись щось на зразок:
saa7134_alsa           11744  1
saa7134               118412  2 saa7134_alsa
video_buf              20452  2 saa7134_alsa,saa7134
compat_ioctl32          1920  1 saa7134
ir_kbd_i2c              7504  1 saa7134
snd_pcm                69892  4 snd_pcm_oss,saa7134_alsa,snd_via82xx,snd_ac97_codec
ir_common              30468  2 saa7134,ir_kbd_i2c
videodev               27296  2 saa7134
v4l2_common            16064  3 tuner,saa7134,videodev
v4l1_compat            14308  2 saa7134,videodev
snd                    46212  18 snd_seq_oss,snd_seq,snd_pcm_oss,snd_mixer_oss,saa7134_alsa,snd_via82xx,snd_ac97_codec,snd_pcm,snd_timer,snd_mpu401_uart,snd_rawmidi,snd_seq_device
i2c_core               20224  6 via686a,i2c_isa,tuner,saa7134,ir_kbd_i2c,i2c_viapro

$dmesg|grep saa
# позначає команду від адміністратора, $ -- від Вашого звичайного користувача.
В результаті у виведенні має бути щось про наш тюнер.
Наприклад у мене:
saa7130/34: v4l2 driver version 0.2.14 loaded
saa7133[0]: found at 0000:00:14.0, rev: 209, irq: 10, latency: 32, mmio: 0xea002000
saa7133[0]: subsystem: 1461:a11b, board: Avermedia AVerTV Studio 507UA [card=102,insmod option]
saa7133[0]: board init: gpio is 0
input: saa7134 IR (Avermedia AVerTV St as /class/input/input2
saa7133[0]: i2c eeprom 00: 61 14 1b a1 ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 20: ff f1 f7 ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c scan: found device @ 0x86  [tda9887]
saa7133[0]: i2c scan: found device @ 0xa0  [eeprom]
saa7133[0]: i2c scan: found device @ 0xc2  [???]
saa7133[0]/audio: tvaudio thread scan start [1]
saa7133[0]/audio: scanning: B/G D/K I
tuner 1-0043: chip found @ 0x86 (saa7133[0])
tuner 1-0061: chip found @ 0xc2 (saa7133[0])
saa7133[0]: registered device video0 [v4l2]
saa7133[0]: registered device vbi0
saa7133[0]: registered device radio0
saa7134 ALSA driver for DMA sound loaded
saa7133[0]/alsa: saa7133[0] at 0xea002000 irq 10 registered as card -1
6. Якщо все гараз, ліземо до /etc/modprobe.preload і записуємо туди
evdev

7. Щоб користуватися пультом дистанційного керування треба встановити lirc. Запхати мій lircd до /etc/rc.d/init.d (оригінальний з певних причин не працює), поставивши права як у оригінального, а мій lirc.conf до /etc (там опис кнопок дистанційки, потім можна підглянути для налаштування команд). Переконатись, що Ваш номер пристрою (береться з рядка подібного до мого /class/input/input2 у виводі dmesg), співпадає з зазначеним event у lircd (у разі потреби підправити). Перезавантажитись.

8. Далі два шляхи:
а) (aka Я -- крутий пацан) Встановити MythTV (потрібен буде mysql). Це -- просто фантастика, будь-яка програма під Windows і за півкілометра не валялась: ти зможеш за розкладом дивитись, записувати, сортувати програми, записувати вирізаючи всі рекламні блоки, варити каву (ой, щось сплутав)... Але у разі, якщо все правильно налаштуєш.
б) (aka Та мені б тєлєк подивиться та позаписувати щонебудь цікавеньке) Встановлюємо tvtime. Запихуємо до ~ (Ваша тека /home/користувач) файл .lircrc(редагується за допомогою /etc/lirc.conf та власної збоченої фантазії), а до ~./tvtime файли з архіву ltv.tar.bz2 (там список каналів аналогового пакету "Волі-кабель", доведеться ручками вставити свої у statioslist.xml).
Є мій переклад tvtime (tvtime.mo запхати до /usr/share/locale/uk/LC_MESSAGES). Далі слід додати до автозапуску (тема ширшої розмови) програму irexec

Записуємо (потрібен mplayer+mencoder): редагуємо скрипт tv1.sh згідно з власними потребами, запускаємо у консолі(!). У той же час запускаємо з mplayer отриманий файл на програвання. Закінчуємо запис прибиванням скрипта (Ctrl-c).

Всі згадані мною файли запаковано у приєднаний архів (507UA.tar.bz2).

Радіо можете слухати за допомогою прослуховувача, що відповідає вашому менеджеру вікон (kradio або gnomeradio або щось інше).

Всього найкращого!

P.S. Любителям композитних менеджерів (compiz, beryl, metisse та інше) та компаніїї AMD (R): у останніх версіях пропрієтарних драйверів fglrx присутня помилка ( принаймі нераціональне рішення), що стосується характеру виведення відео-інформації. Тому запуск tvtime не призведе ні до чого хорошого. Щоб все запрацювало (нажаль, зі значним навантаженням на процесор, що на не досить потужних машинах, не дозволиль Вам насолодитися викривлянням Ваших вікон), потрібно у файлі /etc/X11/xorg.conf у розділ Device після рядка
Driver "fglrx" додати рядок Option "VideoOverlay" "on". (Рецепт для 8.40.4)
Спроба запустити xdtv призведе до чорного екрану. Потрібно вийти у консольний термінал (Ctrl-Alt-F1), а потім повернутися у X (Ctrl-Alt-F7).
Всі описані маніпуляції стосуються типової конфігурації програм. Якщо Ви з натури експериментатор, будь ласка, зберігайте резервні копії всього, що збираєтесь змінити!
« Змінено: 2007-10-26 07:42:30 від yurchor »
Try to reach you before winter comes
Always a place for you in my heart
You're not alone
All used up
I'd give anything to talk to you

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3636
  • Карма: +3/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Знімок екрану, вибачте за якість, насправді зображення у tvtime НАБАГАТО краще, його вдалося погіршити до такого стану лише завдяки моїм зусиллям та the GIMP... ;)
« Змінено: 2007-10-26 18:29:49 від yurchor »
Try to reach you before winter comes
Always a place for you in my heart
You're not alone
All used up
I'd give anything to talk to you

Відсутній magrex

  • Новачок
  • *
  • дописів: 8
  • Карма: +0/-0
  • I Love YaBB 2!
а докладніше можна? особливо про 2 і 4 пункти. не зовсім зрозуміло.

TuxRoot

  • Гість
...його вдалося погіршити до такого стану лише завдяки моїм зусиллям та the GIMP... ;)
А можна таке не скромне питання: Нащо вам для цього Gimp чи я тут не розумію чогось?

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3636
  • Карма: +3/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
...його вдалося погіршити до такого стану лише завдяки моїм зусиллям та the GIMP... ;)
А можна таке не скромне питання: Нащо вам для цього Gimp чи я тут не розумію чогось?
Звичайний png не влазив... :P
Try to reach you before winter comes
Always a place for you in my heart
You're not alone
All used up
I'd give anything to talk to you

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3636
  • Карма: +3/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
а докладніше можна? особливо про 2 і 4 пункти. не зовсім зрозуміло.
А можна конкретніше, що саме не зрозуміло? Причини дій чи самі дії?
Try to reach you before winter comes
Always a place for you in my heart
You're not alone
All used up
I'd give anything to talk to you

Відсутній magrex

  • Новачок
  • *
  • дописів: 8
  • Карма: +0/-0
  • I Love YaBB 2!
2. Після встановлення пакунків, Вам потрібно увійти (з правами адміністратора) до теки /usr/src/назва_Вашого_ядра/drivers/media/video/saa7134 (зауважте, що у потрібній теці мають бути не тільки файли з розширенням .h, але і файли з розширенням .c) і змінити у файлі saa7134.h рядки, що відповідають SAA7134_BOARD_AVERMEDIA_STUDIO_507 на такі , далі код

знайшов saa7134.h, що саме змінити у файлі? приклад
                #define SAA7134_BOARD_NOAUTO                       UNSET
                #define SAA7134_BOARD_UNKNOWN                           0
                #define SAA7134_BOARD_PROTEUS_PRO                     1
                #define SAA7134_BOARD_FLYVIDEO3000                     2
                ..................................................................
                #define SAA7134_BOARD_AVERMEDIA_STUDIO_507 102
після виділеної строки вставити вказаний код і зняти з неї коментування, чи як?

4. Копіювати файли Kbuild та Makefile з ІНШОЇ теки у /usr/src, що починається на linux.

5. Скомпілювати модулі командою, відданою від імені адміністратора у теці /usr/src/тека_в_якій_Ви_міняли_файл make modules (це не швидко -- встигнете прийняти ванну і чогось попоїсти)

6. Отримані модулі (те що з розширеннями ko у підтеці /drivers/media/video/saa7134) закинути до /lib/modules/Ваше_ядро/kernel/drivers/media/video/saa7134.
Там уже щось те саме валяється, але з розширеннями gz, витерти його і постискати всі модулі за допомогою gzip -f -9 *.

/usr/src/linux-2.6.22.13-0.3/drivers/media/video/saa7134 там 2 файли Kbuild та Makefile це їх треба копіювати? якщо так то куди? чи зовсім якісь другі файли?

в принціпі все інше поки зрозуміло

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3636
  • Карма: +3/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
1.
Цитата
знайшов saa7134.h, що саме змінити у файлі? приклад
               #define SAA7134_BOARD_NOAUTO                       UNSET
               #define SAA7134_BOARD_UNKNOWN                           0
               #define SAA7134_BOARD_PROTEUS_PRO                     1
               #define SAA7134_BOARD_FLYVIDEO3000                     2
               ..................................................................
               #define SAA7134_BOARD_AVERMEDIA_STUDIO_507 102
після виділеної строки вставити вказаний код і зняти з неї коментування, чи як?
Ні в якому разі!!! Це не коментування, це C :)
Треба лише змінити схожі визначення (починаються так само як текст, на який слід міняти[SAA7134_BOARD_AVERMEDIA_STUDIO_507] = { і далі... Ну хіба що з естетичних міркувань (як я і писав) Ви хочете, щоб було з UA. Тоді слід скрізь у цій теці після SAA7134_BOARD_AVERMEDIA_STUDIO_507 подописувати UA (в тому числі і в запропонованій вставці). Але, як і було зазначено, це суто косметична операція, її можна і не робити!
2.
Цитата
/usr/src/linux-2.6.22.13-0.3/drivers/media/video/saa7134 там 2 файли Kbuild та Makefile це їх треба копіювати? якщо так то куди? чи зовсім якісь другі файли?
Ні, це два файли з /usr/src/linux-2.6.22.13-0.3/
Try to reach you before winter comes
Always a place for you in my heart
You're not alone
All used up
I'd give anything to talk to you

Відсутній magrex

  • Новачок
  • *
  • дописів: 8
  • Карма: +0/-0
  • I Love YaBB 2!
виклади saa7134.h для зразка

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3636
  • Карма: +3/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Ух, помилився... :-[ Міняти слід було saa7134-cards.c. Його і викладаю. Дякую, що помітили помилку!
Try to reach you before winter comes
Always a place for you in my heart
You're not alone
All used up
I'd give anything to talk to you

Відсутній magrex

  • Новачок
  • *
  • дописів: 8
  • Карма: +0/-0
  • I Love YaBB 2!
раз пішла така розмова, є пропозиція розкласти і наступні кроки по полицям. Почнемо з 4 і 5, зауважте, ви розповідаєте - я поки що роблю. Можливо спільними зусиллями подолаємо налаштування 507UA





Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3636
  • Карма: +3/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
раз пішла така розмова, є пропозиція розкласти і наступні кроки по полицям. Почнемо з 4 і 5, зауважте, ви розповідаєте - я поки що роблю. Можливо спільними зусиллями подолаємо налаштування 507UA
Ну, припустимо, я вже подолав... ;)
Написати свої шляхи звідки і куди копіював (для прикладу)?
Try to reach you before winter comes
Always a place for you in my heart
You're not alone
All used up
I'd give anything to talk to you

Відсутній magrex

  • Новачок
  • *
  • дописів: 8
  • Карма: +0/-0
  • I Love YaBB 2!
так, а я свої "митарства" постараюся оформити скріншотами і вийде непогана інструкція, згода?

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3636
  • Карма: +3/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Трози змінив пункти 2-6:


2. Після встановлення пакунків, Вам потрібно увійти (з правами адміністратора) до теки /usr/src/назва_Вашого_ядра/drivers/media/video/saa7134 (зауважте, що у потрібній теці мають бути не тільки файли з розширенням .h, але і файли з розширенням .c) і змінити у файлі saa7134-cards.c рядки, що відповідають SAA7134_BOARD_AVERMEDIA_STUDIO_507 на такі:
       [SAA7134_BOARD_AVERMEDIA_STUDIO_507] = {
                /* Andy Shevchenko <andy@smile.org.ua> */
                .name           = "Avermedia AVerTV Studio 507UA",
                .audio_clock    = 0x00187de7,
                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3, /* Should be MK5 */
                .radio_type     = UNSET,
                .tuner_addr     = ADDR_UNSET,
                .radio_addr     = ADDR_UNSET,
                .tda9887_conf   = TDA9887_PRESENT,
                .gpiomask       = 0x03,
                .inputs         = {{
                        .name = name_tv,
                        .vmux = 1,
                        .amux = TV,
                        .tv   = 1,
                        .gpio = 0x00,
                },{
                        .name = name_comp1,
                        .vmux = 3,
                        .amux = LINE1,
                        .gpio = 0x00,
                },{
                        .name = name_svideo,
                        .vmux = 8,
                        .amux = LINE1,
                        .gpio = 0x00,
                }},
                .radio = {
                        .name = name_radio,
                        .amux = LINE2,
                        .gpio = 0x01,
                },
                .mute  = {
                        .name = name_mute,
                        .amux = LINE1,
                        .gpio = 0x00,
                },
        },
3. Все це можна зробити за допомогою програми Krusader у режимі адміністратора. Ті, кому хочеться повної відповідності, можуть скрізь (у всіх файлах згаданої теки змінити "507" (без лапок) на "507UA".

4. Копіювати файли Kbuild та Makefile з теки з файлами заголовків (у мене це /usr/src/linux-2.6.22.9-desktop-1mdv/) до теки з вихідними текстами ядра (у мене — /usr/src/linux-2.6.22.9-1mdv/). Це потрібно для того, щоб зібрані модулі в точності відповідали Вашій версії ядра. Інакше Вам не вдасться їх завантажити командою modprobe. (Справа в тому, що джерельні коди ядра типово збираються з суфіксом custom, а не, наприклад, desktop).

5. Скомпілювати модулі командою, відданою від імені адміністратора у теці /usr/src/тека_в_якій_Ви_міняли_файл (у мене /usr/src/linux-2.6.22.9-1mdv/) [code]make modules[\code] (це не швидко -- встигнете прийняти ванну і чогось попоїсти)

6. Отримані модулі (те що з розширеннями ko у підтеці /drivers/media/video/saa7134) закинути до /lib/modules/Ваше_ядро/kernel/drivers/media/video/saa7134.
Там уже щось те саме валяється, але з розширеннями gz, витерти його (попередньо зробивши резервну копію!!!) і постискати всі модулі за допомогою [code]gzip -f -9 *[\code].
Try to reach you before winter comes
Always a place for you in my heart
You're not alone
All used up
I'd give anything to talk to you

Відсутній magrex

  • Новачок
  • *
  • дописів: 8
  • Карма: +0/-0
  • I Love YaBB 2!
нажаль не поборов, під SUSE 10.3 make modules питає опції, а які я незнаю :'(