Текущее время: 20 апр 2024, 11:34 • Часовой пояс: UTC + 3 часа
Сообщения без ответов | Активные темы

Драйвер для тюнера Behold TV T7 под Linux

Начать новую темуОтветить на тему Страница 2 из 22 [ Сообщений: 317 ] На страницу   Пред.  1, 2, 3, 4, 5 ... 22  След.
Версия для печати Пред. тема | След. тема
АвторСообщение
Сообщение Добавлено: 11 дек 2014, 12:53. Заголовок сообщения:  Re: Драйвер для тюнера Behold TV T7 под Linux
Beholder
Аватара пользователя
Зарегистрирован:
    19 авг 2004, 11:47
Сообщения: 190
Вот пример функции si2168_cmd_part_info
Код:
NTSTATUS si2168_cmd_part_info(tPART_INFO *part_info)
{
    NTSTATUS ntStatus;

    BYTE cmdBuffer[1] = {Si2168_PART_INFO_CMD};
    BYTE rspBuffer[13] = {0};

    ntStatus = si2168_cmd_rsp(cmdBuffer, sizeof(cmdBuffer), rspBuffer, sizeof(rspBuffer));
    if (ntStatus != STATUS_SUCCESS)
        return ntStatus;

    part_info->chiprev = rspBuffer[1] & 0x0F;
    part_info->part = rspBuffer[2];
    part_info->pmajor = rspBuffer[3];
    part_info->pminor = rspBuffer[4];
    part_info->pbuild = rspBuffer[5];
    part_info->serial = ((ULONG)rspBuffer[11] << 24) | ((ULONG)rspBuffer[10] << 16) | ((ULONG)rspBuffer[9] << 8) | ((ULONG)rspBuffer[8]);
    part_info->romid = rspBuffer[12];

    DBGPRINT(("CHIP REV   : %d\n", part_info->chiprev));
    DBGPRINT(("CHIP PART  : %d\n", part_info->part));
    DBGPRINT(("CHIP PMAJOR: %c\n", part_info->pmajor));
    DBGPRINT(("CHIP PMINOR: %c\n", part_info->pminor));
    DBGPRINT(("CHIP PBUILD: %d\n", part_info->pbuild));
    DBGPRINT(("CHIP SERIAL: %08X\n", part_info->serial ));
    DBGPRINT(("CHIP ROMID : %d\n", part_info->romid));

    return STATUS_SUCCESS;
}

Это проверочные константы:
Код:
#define Si2168A_ROM2_2_0_3_PART      68
#define Si2168A_ROM2_2_0_3_ROM      2
#define Si2168A_ROM2_2_0_3_PMAJOR   '2'
#define Si2168A_ROM2_2_0_3_PMINOR   '0'
#define Si2168A_ROM2_2_0_3_PBUILD   3

#define Si2168A_ROM3_3_0_2_PART      68
#define Si2168A_ROM3_3_0_2_ROM      3
#define Si2168A_ROM3_3_0_2_PMAJOR   '3'
#define Si2168A_ROM3_3_0_2_PMINOR   '0'
#define Si2168A_ROM3_3_0_2_PBUILD   2

#define Si2168B_ROM1_4_0_2_PART      68
#define Si2168B_ROM1_4_0_2_ROM      1
#define Si2168B_ROM1_4_0_2_PMAJOR   '4'
#define Si2168B_ROM1_4_0_2_PMINOR   '0'
#define Si2168B_ROM1_4_0_2_PBUILD   2
Профиль 
Сообщение Добавлено: 11 дек 2014, 13:15. Заголовок сообщения:  Re: Драйвер для тюнера Behold TV T7 под Linux
Зарегистрирован:
    31 дек 2013, 09:22
Сообщения: 147
ua0lnj, ты же приживлял мои диффы на другие исходники, от того же вендора, но более свежие. У тебя с ними да, патч микрокода грузился минуту, ты у меня ещё тогда уточнял этот момент.

На тех, “старых” исходниках, с которыми работал я, патч микрокода загружается 17-18 секунд.
По-видимому, разница в константе, задающей частоту квадратной шины.

Точнее сказать не могу. Я сейчас на фрилансе, в той конторе более не работаю. Под рукой больше нет ни той машины, где я возился с тюнером, ни самого тюнера, ни возможности нормально поработать с исходниками. Пишу всё по памяти.

Мне кажется, ты не совсем понял вот что: не может лечь произвольный патч микрокода на микрокод, уже находящийся внутри чипа в его ПЗУ и прошитый ещё на заводе.
Только патч, подходящий к имеющей версии микрокода не будет отвергнут чипом.
Именно так я кормил патчи от фирмвари LG. По одному, пока чип его не съел. :-)

В тех исходниках, с которыми работал я, хорошо виден алгоритм определения версии чипа, и подбора подходящего патча.
Впрочем, спасибо ещё раз BTVSoft, алгоритм уже опубликован в этом треде.
Профиль 
Сообщение Добавлено: 11 дек 2014, 17:05. Заголовок сообщения:  Re: Драйвер для тюнера Behold TV T7 под Linux
Зарегистрирован:
    14 ноя 2013, 04:42
Сообщения: 70
Не, я думал смысл как раз в том, что чип одинаковый, А30 ревизии, что в Бехольде что в ДВБСкае, но фирмваре от ДВБСкай не грузится в Бехольд. Т.е. версия микрокода одинакова.
Т.е. я предполагал, что чип одинаковый, разная обвязка и состояние регистров.

Возможно вот оно:

В линуховых дровах ревизия чипа определяется как
#define SI2168_A30 ('A' << 24 | 68 << 16 | '3' << 8 | '0' << 0)

т.е. chip version Si2168-A30
не учитывается билд

#define Si2168A_ROM3_3_0_2_PBUILD 2

Вопрос какой билд у Силабса.

На выходных буду переваривать инфу от BTVSoft.
Профиль 
Сообщение Добавлено: 12 дек 2014, 14:02. Заголовок сообщения:  Re: Драйвер для тюнера Behold TV T7 под Linux
Beholder
Аватара пользователя
Зарегистрирован:
    19 авг 2004, 11:47
Сообщения: 190
Патчи перебирать не нужно, получаем результат команды Si2168_PART_INFO_CMD, смотрим что за чип, в A20 грузим свой патч, в A30 свой, в B40 свой (part также проверяется на (68 or 69)). Это делается 1 раз, до следующего аппаратного сброса или до снятия питания. После загрузки патча, чип можно уводить в слип через команду Si2168_POWER_DOWN_CMD (статус CTS не проверяется), после чего выводить его обратно через команду Si2168_START_CLK_CMD (с параметром Si2168_POWER_UP_CMD_WAKE_UP_WAKE_UP) любое кол-во раз, при этом патч больше не требуется.

Нюансы:
1) пин MP_A используется как IF_AGC_OUT, его нужно переводить в Z состояние при переключении в аналоговый режим и возвращать в нормальное состояние при переключении в DVB режим.
2) Переключение пинов через команду Si2168_DD_EXT_AGC_TER_CMD требует последующего исполнения Si2168_DD_RESTART_CMD, иначе пин не переключится, после Si2168_DD_RESTART_CMD нужно выждать минимум 10мс.
3) Пин GPIO_0 чипа Si2168 на T7 используется для переключения RF свитча (селектор антенного входа).
Профиль 
Сообщение Добавлено: 12 дек 2014, 15:22. Заголовок сообщения:  Re: Драйвер для тюнера Behold TV T7 под Linux
Зарегистрирован:
    14 ноя 2013, 04:42
Сообщения: 70
Опять меня не поняли.
Драйвер на линухе у меня работает, я сделал переключение входов и индикатор уровня тоже. Остались только проблемы, которые я описал выше.

Я хочу понять следующее. В DVBSKY платах используется точно такой же чип с такой же ревизией А30, как у Бехольдера.
Почему в бехольдер не грузится патч от DVBSKY?
Я не могу проверить версию билда А30 у DVBSKY, у меня нет этой платы. Пытаюсь попросить это сделать разработчиком линуховых дров, пока только отговорки, никто реально не посмотрел версию билда.
Понятно что в А20, А30 и В40 грузятся свои патчи. Тут же А30 патч от DVBSKY не гузится в А30 чип от Бехольда. Вот это мне не понятно.
Профиль 
Сообщение Добавлено: 13 дек 2014, 15:38. Заголовок сообщения:  Re: Драйвер для тюнера Behold TV T7 под Linux
Зарегистрирован:
    31 дек 2013, 09:22
Сообщения: 147
ua0lnj, ЕМНИП, в исходниках DVBSky, которые были у меня, патчи были только под демодулятор ревизии A20.
PS:
Прямая ссылка именно на те исходники, с которыми я работал, ещё действует. :-) Посмотри сам:
http://members.quicknet.nl/pe63/dvbsky-v4l.tar.gz
Профиль 
Сообщение Добавлено: 13 дек 2014, 16:29. Заголовок сообщения:  Re: Драйвер для тюнера Behold TV T7 под Linux
Зарегистрирован:
    14 ноя 2013, 04:42
Сообщения: 70
Просто скачай текущий медиа_билд, и посмотри там :)
Про старые исходники ДВБСкая можно забыть.
Профиль 
Сообщение Добавлено: 13 дек 2014, 18:52. Заголовок сообщения:  Re: Драйвер для тюнера Behold TV T7 под Linux
Зарегистрирован:
    31 дек 2013, 09:22
Сообщения: 147
Значит, они пытаются лить в A30 неподходящий патч, либо у них баг в коде. Без вариантов.

Я тебе “старый” код привёл как доказательство того, что тогда, у DVBSky применялась ревизия A20. В этих исходниках больше нет никакого другого патча, кроме как для A20.

Патчи для RF тюнера не рассматриваем.
Профиль 
Сообщение Добавлено: 14 дек 2014, 16:53. Заголовок сообщения:  Re: Драйвер для тюнера Behold TV T7 под Linux
Зарегистрирован:
    14 ноя 2013, 04:42
Сообщения: 70
Возможно в медиа_билд А30 делали не на основе ДВБСкая, а какого-то другого тюнера, их сейчас с si2168 уже много развелось.
Может быть действительно у них там баг, но убедить их можно будет только когда ещё кто-нибудь пожалуется...
Профиль 
Сообщение Добавлено: 03 янв 2015, 15:57. Заголовок сообщения:  Re: Драйвер для тюнера Behold TV T7 под Linux
Зарегистрирован:
    14 ноя 2013, 04:42
Сообщения: 70
BTVSoft, подскажи если можно, как перевести saa7133 в 400 КГц режим i2c шины. Это делается непосредственно командой в любой момент, или нужна какая-то последовательность, или клиент на шине si2168 может дать команду перехода в этот режим?
Профиль 
Сообщение Добавлено: 13 янв 2015, 16:19. Заголовок сообщения:  Re: Драйвер для тюнера Behold TV T7 под Linux
Beholder
Аватара пользователя
Зарегистрирован:
    19 авг 2004, 11:47
Сообщения: 190
ua0lnj

SCL 100/400 на SAA713x переключается 1 регистром. Переключать нужно до старта любой транзакции.

Регистр 0x0182, бит (1<<6).
0: Slow
1: Fast
Профиль 
Сообщение Добавлено: 03 апр 2015, 12:16. Заголовок сообщения:  Re: Драйвер для тюнера Behold TV T7 под Linux
Зарегистрирован:
    04 июл 2011, 10:26
Сообщения: 9
писал(а):
Поскольку Бехольдер не стал помогать мне в доработке дров, я не смог объяснить разработчикам Linux Media тонкостей в работе тюнера, и скорее всего драйвер в ядро не попадёт. Я выкладываю патч, который получился с помощью патча Demoda, и в результате моего общения с Antti Palosaari. Если у кого-нибудь хватит умения, то он доведёт его до ядра, у меня на это нет времени и знаний.
....
Патч сделан на текущий media_build.


Пытаюсь сейчас поправить media_build в соответствии с diff'ом вручную, поскольку патчем он не наложился - видимо, media_build уже поменялся достаточно сильно.

Вопрос ещё такой: насколько данный патч применим для T8? Там будет достаточно несколько констант поменять в соответствии с соседним тредом или всё намного сложнее? Какие вообще тюнеры из выпускающихся лучше брать для цифрового тв под линуксом, Т8 или Cruise?
Профиль 
Сообщение Добавлено: 07 апр 2015, 02:06. Заголовок сообщения:  Re: Драйвер для тюнера Behold TV T7 под Linux
Зарегистрирован:
    14 ноя 2013, 04:42
Сообщения: 70
Последнее что делал я выкладываю тут http://linuxdvb.org.ru/wbb/index.php?pa ... eadID=1725
Состояние работоспособное, но не доделанное, сделать быструю загрузку фирмваре я пока не смог, из-за этого в ядро его не принимают.
Для Т8 не поможет, там другие чипы стоят, я даже не смотрел что получится.
Производитель официально линукс не поддерживает, поэтому все новые тюнера просто так не запустятся.
Если есть знания для разработки, пробуй написать патч сам, пиши на форуме вопросы, кто сможет подскажет.
Профиль 
Сообщение Добавлено: 17 май 2015, 05:48. Заголовок сообщения:  Re: Драйвер для тюнера Behold TV T7 под Linux
Зарегистрирован:
    17 авг 2013, 19:01
Сообщения: 106
ua0lnj
У меня установлен второй системой mint (17.1) mate 64,тюнер T7.
Увидел после перехода по ссылке два файла:
1.dvb-demod-si2168-30b20.fw.bz2 Фирмваре стандартно, кидать в /lib/firmware (ну я распакавал,переименовал и положил по указанному пути).
2.media_build-t7-250215.diff
Про второй файл ничего не написано,как я понял нужно делать компиляцию ядра.Нашёл где то как это сделать,два варианта с p и -p в командной строке,указав на этот diff.В варианте p непонятки,в варианте -p пишет укажите какой то файл.
Вот хотелось бы (если не сложно) более подробно чтобы был описан порядок действий (с нужными командами).Также,какой софт использовать (VLC?)
Behold TV T7,Behold TV Cruise
Профиль 
Сообщение Добавлено: 20 май 2015, 16:21. Заголовок сообщения:  Re: Драйвер для тюнера Behold TV T7 под Linux
Зарегистрирован:
    14 ноя 2013, 04:42
Сообщения: 70
http://linuxdvb.org.ru/wbb/index.php?pa ... #post26870
И читать нужно последние по дате сообщения, а не первые, а вообще неплохо все.
Обрати внимание на изменение названия файла фирмваре.
Профиль 
Показать сообщения за:  Поле сортировки:    
Начать новую темуОтветить на тему  Страница 2 из 22  [ Сообщений: 317 ]  На страницу   Пред.  1, 2, 3, 4, 5 ... 22  След.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения
Найти:  
Перейти: