On Wed, Aug 08, 2007 at 08:14:02AM +0500, Чернов Евгений wrote: > Вобщем поставился с двд версии(правда не я, отцу отдал он поставил). > Сразу возникла проблема с тв тюнером. Тюнер flytv prime 34 на чипе > saa7134. Модули подгрузились но с неправильными параметрами. Надо > сказать что в убунтах и федорах шестой версии тоже ничего не пошло. > Только ночью дошло залезть в винду и посмотреть в fly2000 какие чипы > стоят. Вобшем тв-тюнер TCL2002, ВЧ модуль Philips FM(Q)1216ME/I H-3(B/G, > D/K, I, L/L'). Чтение инета помогло найти нужные параметры при загрузке > модулей. Вобщем rmmod saa7134 && rmmod tuner после чего: > modprobe tuner secam=d && modprobe saa7134 card=2 tuner=38 > Тв я увидел правда качество почему-то чуть-чуть похуже чем в fly2000. > Ну ладно фиг с ним. Дальше qtradio не смогло ни одной станции поймать, > уровень сигнала везде единичка. Хотя руками на нужной частоте всё > ловится. Может что ещё надо передать модулю? И есть какое-нибудь > приложение для радио не такое страшное как qtradio? > Вот как видится эта карточка: > lspci -vvv -nn -xxx > 02:0c.0 Multimedia controller [0480]: Philips Semiconductors > SAA7134/SAA7135HL Video Broadcast Decoder [1131:7134] (rev 01) > Subsystem: Animation Technologies Inc. Unknown device [5168:0138] Для этого subsystem ID в модуле saa7134 из 2.6.18 есть запись: .vendor = PCI_VENDOR_ID_PHILIPS, .device = PCI_DEVICE_ID_PHILIPS_SAA7134, .subvendor = 0x5168, .subdevice = 0x0138, .driver_data = SAA7134_BOARD_FLYVIDEO3000, SAA7134_BOARD_FLYVIDEO3000 - это как раз card=2; однако описание этой платы в драйвере выглядит следующим образом: [SAA7134_BOARD_FLYVIDEO3000] = { /* "Marco d'Itri" */ .name = "LifeView FlyVIDEO3000", .audio_clock = 0x00200000, .tuner_type = TUNER_PHILIPS_PAL, .radio_type = UNSET, .tuner_addr = ADDR_UNSET, .radio_addr = ADDR_UNSET, .gpiomask = 0xe000, .inputs = {{ .name = name_tv, .vmux = 1, .amux = TV, .gpio = 0x8000, .tv = 1, },{ .name = name_tv_mono, .vmux = 1, .amux = LINE2, .gpio = 0x0000, .tv = 1, },{ .name = name_comp1, .vmux = 0, .amux = LINE2, .gpio = 0x4000, },{ .name = name_comp2, .vmux = 3, .amux = LINE2, .gpio = 0x4000, },{ .name = name_svideo, .vmux = 8, .amux = LINE2, .gpio = 0x4000, }}, .radio = { .name = name_radio, .amux = LINE2, .gpio = 0x2000, }, .mute = { .name = name_mute, .amux = TV, .gpio = 0x8000, }, }, Здесь задан тип тюнера TUNER_PHILIPS_PAL == 5, а вручную параметром tuner=38 задаётся тип TUNER_PHILIPS_FM1216ME_MK3. Описания этих тюнеров различаются довольно сильно: /* ------------ TUNER_PHILIPS_PAL - Philips PAL ------------ */ static struct tuner_range tuner_philips_pal_ranges[] = { { 16 * 168.25 /*MHz*/, 0x8e, 0xa0, }, { 16 * 447.25 /*MHz*/, 0x8e, 0x90, }, { 16 * 999.99 , 0x8e, 0x30, }, }; static struct tuner_params tuner_philips_pal_params[] = { { .type = TUNER_PARAM_TYPE_PAL, .ranges = tuner_philips_pal_ranges, .count = ARRAY_SIZE(tuner_philips_pal_ranges), .cb_first_if_lower_freq = 1, }, }; /* ------------ TUNER_PHILIPS_FM1216ME_MK3 - Philips PAL ------------ */ static struct tuner_range tuner_fm1216me_mk3_pal_ranges[] = { { 16 * 158.00 /*MHz*/, 0x8e, 0x01, }, { 16 * 442.00 /*MHz*/, 0x8e, 0x02, }, { 16 * 999.99 , 0x8e, 0x04, }, }; static struct tuner_params tuner_fm1216me_mk3_params[] = { { .type = TUNER_PARAM_TYPE_PAL, .ranges = tuner_fm1216me_mk3_pal_ranges, .count = ARRAY_SIZE(tuner_fm1216me_mk3_pal_ranges), .cb_first_if_lower_freq = 1, .has_tda9887 = 1, .port1_active = 1, .port2_active = 1, .port2_invert_for_secam_lc = 1, .port1_fm_high_sensitivity = 1, .default_top_mid = -2, .default_top_secam_mid = -2, .default_top_secam_high = -2, }, }; > Есть надежда получить работающее ис_каропки? К сожалению, в этом случае производитель использовал одинаковые subsystem ID для карт с различными типами тюнеров - из-за этого автоматическое определение невозможно, и все варианты карт с этим subsystem ID, кроме одного, будут требовать ручной настройки параметра tuner=N. Впрочем, разработчики драйвера saa7134 уже знают об этом: static void board_flyvideo(struct saa7134_dev *dev) { printk("%s: there are different flyvideo cards with different tuners\n" "%s: out there, you might have to use the tuner= insmod\n" "%s: option to override the default value.\n", dev->name, dev->name, dev->name); } (это сообщение можно наблюдать в dmesg при обнаружении карт от flyvideo). Вообще бардак с subsystem ID у тюнеров (либо полное их отсутствие, либо выпуск существенно разных устройств с совпадающими ID) - это сейчас скорее правило, и конца этому безобразию не видно.