Форум Beholder
http://beholder.ru/bb/

Тюнер X7
http://beholder.ru/bb/viewtopic.php?f=11&t=8323
Страница 1 из 14

Автор:  Linux [ 26 авг 2009, 07:09 ]
Заголовок сообщения:  Тюнер X7

Начата поддержка тюнер Х7 под ОС Linux.

На текущий момент работает аналоговое ТВ и пульт дистанционного управления. Патч отправлен на включение в репозиторий video4linux.

Просьба попробовать и отписать по результату в эту тему.

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

Код:
diff -r 28f8b0ebd224 linux/drivers/media/video/saa7134/saa7134-cards.c
--- a/linux/drivers/media/video/saa7134/saa7134-cards.c   Sun Aug 23 13:55:25 2009 -0300
+++ b/linux/drivers/media/video/saa7134/saa7134-cards.c   Wed Aug 26 08:52:37 2009 +1000
@@ -32,6 +32,7 @@
 #include <media/tveeprom.h>
 #include "tea5767.h"
 #include "tda18271.h"
+#include "xc5000.h"
 
 /* commly used strings */
 static char name_mute[]    = "mute";
@@ -5182,6 +5183,34 @@
          .amux   = LINE1
       } },
    },
+   [SAA7134_BOARD_BEHOLD_X7] = {
+      /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
+      .name           = "Beholder BeholdTV X7",
+      .audio_clock    = 0x00187de7,
+      .tuner_type     = TUNER_XC5000,
+      .radio_type     = UNSET,
+      .tuner_addr     = ADDR_UNSET,
+      .radio_addr     = ADDR_UNSET,
+      .inputs         = { {
+         .name = name_tv,
+         .vmux = 2,
+         .amux = TV,
+         .tv   = 1,
+      }, {
+         .name = name_comp1,
+         .vmux = 0,
+         .amux = LINE1,
+      }, {
+         .name = name_svideo,
+         .vmux = 9,
+         .amux = LINE1,
+      } },
+      .radio = {
+         .name = name_radio,
+         .amux = TV,
+      },
+   },
+
 };
 
 const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
@@ -6295,6 +6324,12 @@
       .subvendor    = 0x185b,
       .subdevice    = 0xc900,
       .driver_data  = SAA7134_BOARD_VIDEOMATE_S350,
+   }, {
+      .vendor       = PCI_VENDOR_ID_PHILIPS,
+      .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
+      .subvendor    = 0x5ace, /* Beholder Intl. Ltd. */
+      .subdevice    = 0x7595,
+      .driver_data  = SAA7134_BOARD_BEHOLD_X7,
    }, {
       /* --- boards without eeprom + subsystem ID --- */
       .vendor       = PCI_VENDOR_ID_PHILIPS,
@@ -6418,11 +6453,20 @@
    return -EINVAL;
 }
 
-#if 0
+#if 1
 static int saa7134_xc5000_callback(struct saa7134_dev *dev,
                int command, int arg)
 {
    switch (dev->board) {
+   case SAA7134_BOARD_BEHOLD_X7:
+      if (command == XC5000_TUNER_RESET) {
+      /* Down and UP pheripherial RESET pin for reset all chips */
+         saa_writeb(SAA7134_SPECIAL_MODE, 0x00);
+         msleep(10);
+         saa_writeb(SAA7134_SPECIAL_MODE, 0x01);
+         msleep(10);
+      }
+      break;
    default:
       saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x06e20000, 0x06e20000);
       saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x06a20000, 0x06a20000);
@@ -6533,7 +6577,7 @@
          return saa7134_tda8290_callback(dev, command, arg);
       case TUNER_XC2028:
          return saa7134_xc2028_callback(dev, command, arg);
-#if 0
+#if 1
       case TUNER_XC5000:
          return saa7134_xc5000_callback(dev, command, arg);
 #endif
@@ -6788,6 +6832,7 @@
    case SAA7134_BOARD_BEHOLD_M63:
    case SAA7134_BOARD_BEHOLD_M6_EXTRA:
    case SAA7134_BOARD_BEHOLD_H6:
+   case SAA7134_BOARD_BEHOLD_X7:
       dev->has_remote = SAA7134_REMOTE_I2C;
       break;
    case SAA7134_BOARD_AVERMEDIA_A169_B:
diff -r 28f8b0ebd224 linux/drivers/media/video/saa7134/saa7134-input.c
--- a/linux/drivers/media/video/saa7134/saa7134-input.c   Sun Aug 23 13:55:25 2009 -0300
+++ b/linux/drivers/media/video/saa7134/saa7134-input.c   Wed Aug 26 08:52:37 2009 +1000
@@ -854,6 +854,7 @@
    case SAA7134_BOARD_BEHOLD_M63:
    case SAA7134_BOARD_BEHOLD_M6_EXTRA:
    case SAA7134_BOARD_BEHOLD_H6:
+   case SAA7134_BOARD_BEHOLD_X7:
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 30)
       snprintf(ir->c.name, sizeof(ir->c.name), "BeholdTV");
       ir->get_key   = get_key_beholdm6xx;
diff -r 28f8b0ebd224 linux/drivers/media/video/saa7134/saa7134.h
--- a/linux/drivers/media/video/saa7134/saa7134.h   Sun Aug 23 13:55:25 2009 -0300
+++ b/linux/drivers/media/video/saa7134/saa7134.h   Wed Aug 26 08:52:37 2009 +1000
@@ -294,6 +294,7 @@
 #define SAA7134_BOARD_BEHOLD_609RDS_MK3     167
 #define SAA7134_BOARD_BEHOLD_609RDS_MK5     168
 #define SAA7134_BOARD_VIDEOMATE_S350        169
+#define SAA7134_BOARD_BEHOLD_X7             170
 
 #define SAA7134_MAXBOARDS 32
 #define SAA7134_INPUT_MAX 8

Автор:  ks5 [ 26 авг 2009, 21:55 ]
Заголовок сообщения: 

Приветствую Вас!
Так Х7 в Linux пока не поддерживается?!? Не знал...(((
(Зря обменял в магазине 609 модель на Х7 - захотелось модель с аппаратным кодеком)
P.S. В Windows все вроде нормально...
...а в Linux (Ubuntu 9.04 i386) - второй раз переустанавливаю систему...
609 модель по крайней мере в TVtime показывала каналы кабельного телевидения.. (((

И просьба - попроще описывайте пож. технологию подключения/захвата/трансляции в Linux, т.к. хоть и имеются базовые познания в ОС, но большинство купивших тюнер - все-же являются больше пользователями, а не мантейнерами...

Автор:  Linux [ 27 авг 2009, 08:03 ]
Заголовок сообщения: 

В Windows все и должно быть нормально. Постепенно будет все нормально и в Linux.

С приведенным патчем tvtime будет нормально работать и с Х7.

Материалов по установке/настройке/использованию в сети довольно много в т.ч. и на русском языке. На конкретные вопросы отвечаем, в т.ч. это делают более опытные пользователи.

Автор:  ks5 [ 28 авг 2009, 00:24 ]
Заголовок сообщения: 

Патч к ядру?
Я так понял, что в указанный репозиторий указанный патч был выложен для мантейнеров, которые его должны внедрить в очередное ядро (30?) В текущей версии Ubuntu 9.04 - пока ядро ...28

А вообще не совсем понятно, с какой стати Вы отсылаете за инструкциями с сайта производителя конкретного продукта в Интернет??? По крайней мере это звучит странно!

На данном форуме, к великому сожалению (и уже здесь кто-то отписывался на эту тему) нет системного и четкого описания использования продуктов Beholder в отличных от Windows ОС...

Автор:  WiseLord [ 28 авг 2009, 01:52 ]
Заголовок сообщения: 

писал(а):
Если Вам не хочется этим заниматься (поддержкой), то просто не нужно морочить пользователям голову о якобы имеющейся поддержке в других ОС

А что вам не нравится? Поддержка на уровне драйверов есть для всех моделей, кроме пары самых новых, и, как можно видеть, самые новые тоже вскоре будут поддерживаться.
Жаль, конечно, что родного ПО под линукс нет, но и без него смотреть/записывать ТВ и радио вполне можно родными Linux-программами.

У других производителей и этого нет.

Автор:  Tim [ 28 авг 2009, 16:03 ]
Заголовок сообщения: 

Я бы предложил администрации создать на сайте wiki-раздел, в котором будет содержаться информация как по поддержке на уровне ядра, так и по приложениям для работы с тюнерами. А то на форуме действительно не очень удобно, когда нужная информация разбросана по разным темам, и надо ещё из нескольких вариантов выбирать более актуальный на данный момент.

Автор:  Linux [ 01 сен 2009, 02:07 ]
Заголовок сообщения: 

Поймите, что ресурсы на поддержку ограничены и если стоит выбор доработать драйвера или разбираться со сторонними программами для работы с радио или ТВ то выбор производителя это доработка драйверов. Так же не вижу смысла терять время на объяснение базовых вещей по Линукс когда это все уже по сто раз разжевано на соответствующих форумах, надо просто не ленится искать. В драйверах для Линукс не смотря на то, что что-то уже написано сообществом, еще много чего надо дописывать и доделывать.

Что-то вроде WiKi для помощи в настройки наполненный в том числе пользователями Линукс будет.

Для проверки работы и сбора статистики нужны тестеры с Х7. Основные требования – опыт по работе с основными инструментами для сборки. Волонтёров прошу написать в личку адрес эл.почты для связи.

Автор:  vc24 [ 01 сен 2009, 16:31 ]
Заголовок сообщения:  Re: Тюнер X7

писал(а):
Начата поддержка тюнер Х7 под ОС Linux.

На текущий момент работает аналоговое ТВ и пульт дистанционного управления. Патч отправлен на включение в репозиторий video4linux.

Скажите, пожалуйста, а аппаратное кодирование работает?

Автор:  Linux [ 02 сен 2009, 01:42 ]
Заголовок сообщения: 

2vc24: В настоящий момент нет. Сначало будет добавлена поддержка FM радио, затем DVB-T. Запуск аппаратного кодировщика будет не простым.

Автор:  Linux [ 02 сен 2009, 04:40 ]
Заголовок сообщения: 

Добавлена поддержка FM радио. Патч отправлен на принятие в репозиторий.

Для нетерпеливых:

Код:
diff -r 28f8b0ebd224 linux/drivers/media/common/tuners/xc5000.c
--- a/linux/drivers/media/common/tuners/xc5000.c   Sun Aug 23 13:55:25 2009 -0300
+++ b/linux/drivers/media/common/tuners/xc5000.c   Wed Sep 02 06:32:12 2009 +1000
@@ -747,14 +747,11 @@
    return ret;
 }
 
-static int xc5000_set_analog_params(struct dvb_frontend *fe,
+static int xc5000_set_tv_freq(struct dvb_frontend *fe,
    struct analog_parameters *params)
 {
    struct xc5000_priv *priv = fe->tuner_priv;
    int ret;
-
-   if (xc5000_is_firmware_loaded(fe) != XC_RESULT_SUCCESS)
-      xc_load_fw_and_init_tuner(fe);
 
    dprintk(1, "%s() frequency=%d (in units of 62.5khz)\n",
       __func__, params->frequency);
@@ -834,6 +831,67 @@
 
    return 0;
 }
+
+static int xc5000_set_radio_freq(struct dvb_frontend *fe,
+   struct analog_parameters *params)
+{
+   struct xc5000_priv *priv = fe->tuner_priv;
+   int ret = -EINVAL;
+
+   dprintk(1, "%s() frequency=%d (in units of khz)\n",
+      __func__, params->frequency);
+
+   priv->freq_hz = params->frequency * 125 / 2;
+
+   priv->rf_mode = XC_RF_MODE_AIR;
+
+   ret = xc_SetTVStandard(priv,
+      XC5000_Standard[FM_Radio_INPUT1].VideoMode,
+      XC5000_Standard[FM_Radio_INPUT1].AudioMode);
+
+   if (ret != XC_RESULT_SUCCESS) {
+      printk(KERN_ERR "xc5000: xc_SetTVStandard failed\n");
+      return -EREMOTEIO;
+   }
+
+   ret = xc_SetSignalSource(priv, priv->rf_mode);
+   if (ret != XC_RESULT_SUCCESS) {
+      printk(KERN_ERR
+         "xc5000: xc_SetSignalSource(%d) failed\n",
+         priv->rf_mode);
+      return -EREMOTEIO;
+   }
+
+   xc_tune_channel(priv, priv->freq_hz, XC_TUNE_ANALOG);
+
+   return 0;
+}
+
+static int xc5000_set_analog_params(struct dvb_frontend *fe,
+              struct analog_parameters *params)
+{
+   struct xc5000_priv *priv = fe->tuner_priv;
+   int ret = -EINVAL;
+
+   if (priv->i2c_props.adap == NULL)
+      return -EINVAL;
+
+   if (xc5000_is_firmware_loaded(fe) != XC_RESULT_SUCCESS)
+      xc_load_fw_and_init_tuner(fe);
+
+   switch (params->mode) {
+   case V4L2_TUNER_RADIO:
+      ret = xc5000_set_radio_freq(fe, params);
+      break;
+   case V4L2_TUNER_ANALOG_TV:
+   case V4L2_TUNER_DIGITAL_TV:
+      ret = xc5000_set_tv_freq(fe, params);
+      break;
+   }
+
+   return ret;
+}
+
 
 static int xc5000_get_frequency(struct dvb_frontend *fe, u32 *freq)
 {

Автор:  ks5 [ 28 сен 2009, 00:02 ]
Заголовок сообщения: 

Имею тюнер X7 под Ubuntu 9.04
Команда lspci выдает:
02:01.0 Multimedia controller: Philips Semiconductors SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (rev d1)

что согласуется с описанием на тюнер ( http://www.nix.ru/autocatalog/tv_tuners ... 83665.html )

В патчах, же приведенных выше, фигурирует чип SAA7134,

Это так и должно быть?

И по поводу патча - что-то пока его не видно на http://linuxtv.org/hg/v4l-dvb

Автор:  Alexryba [ 28 сен 2009, 04:24 ]
Заголовок сообщения:  Re: Тюнер X7

писал(а):
Начата поддержка тюнер Х7 под ОС Linux.

На текущий момент работает аналоговое ТВ и пульт дистанционного управления. Патч отправлен на включение в репозиторий video4linux.

Просьба попробовать и отписать по результату в эту тему.

Доброго времени суток.
Ubuntu 9.0.4. Ядро 28. Взяты свежие исходники.
Beholder-ы в нем все предыдущие есть. Крайний:

[SAA7134_BOARD_BEHOLD_H6] = {
/* Igor Kuznetsov <igk> */
.name = "Beholder BeholdTV H6",
.audio_clock = 0x00187de7,
.tuner_type = TUNER_PHILIPS_FMD1216ME_MK3,
.radio_type = UNSET,
.tuner_addr = ADDR_UNSET,
.radio_addr = ADDR_UNSET,
.tda9887_conf = TDA9887_PRESENT,

Попробовал накатить патч. Вылетает в процессе наката с ошибкой.

Запустил с вербозой:

Hmm... Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff -r 28f8b0ebd224 linux/drivers/media/video/saa7134/saa7134-cards.c
|
|
|--- a/linux/drivers/media/video/saa7134/saa7134-cards.c Sun Aug 23 13:55:25 2009 -0300
|
|
|+++ b/linux/drivers/media/video/saa7134/saa7134-cards.c Wed Aug 26 08:52:37 2009 +1000
|
|
--------------------------
Patching file linux/drivers/media/video/saa7134/saa7134-cards.c using Plan A...
patch: **** malformed patch at line 17:


Что ему не нравится - ума не приложу...
Я уже лист вдоль и поперек прошарил...
ну пытается он добавить .name, и что ему не так-то?

Кстати, FM-патч вылетает с такой же ошибкой по 23 строке.

Господа, подскажите, плиз, куда рыть дальше. Может у меня после дачи помутнение рассудка, и срочно требуется исправление в генетическом коде...

Автор:  Linux [ 28 сен 2009, 09:10 ]
Заголовок сообщения: 

2ks5: первый патч включен, см тут http://linuxtv.org/hg/v4l-dvb/rev/632aed299270

Второй патч + доработка майнтейнером v4l2 драйвера xc5000 + еще один патч будет добавлен видимо на этой неделе.

Текущее состояние: работает аналоговое ТВ, FM-радио, ИК пульт.

2Alexryba: патчи надо накладывать на свежескачанный video4linux репозиторий. Как взять его свежий хорошо описано здесь: http://www.linuxtv.org/wiki/index.php/H ... _Mercurial

Волонтеры для тестов все еще ищутся...

Автор:  Tim [ 28 сен 2009, 09:49 ]
Заголовок сообщения: 

Цитата:
Волонтеры для тестов все еще ищутся...

А у себя нельзя протестировать? Или вы имеете в виду цифровое ТВ, а у вас его не ловит?

Автор:  Linux [ 28 сен 2009, 10:17 ]
Заголовок сообщения: 

Да, нужны в основном для проверки DVB-T. С ним проблемы, не везде есть.

Страница 1 из 14 Часовой пояс: UTC + 3 часа