Jump to content

Поддержка DVB-T/T2/C USB TV-тюнеров.


Recommended Posts

Решил открыть тему для обсуждения поддержки DVB-T/T2/C USB TV-тюнеров на роутерах семейства Keenetic. В свете того, что сейчас в России, и не только, большими темпами идет внедрение цифрового эфирного вещания в стандарте DVB-T2, то думаю эта тема будет многим интересна и актуальна. По сути цель этой темы заключается в том, что бы наши кинетики могли принимать цифровое телевидение в стандарте DVB-T/T2/C и раздавать его под видом IPTV на различные медиа устройства, будь то планшетники, мобильники, ПК или различные медиаприставки с телевизорами. Мне это решение пригодилось на даче, смотрел футбол на планшетнике, когда готовил шашлыки :-). Конечно, уже существуют специализированные проекты типа OpenELEC для устройств, которые лучше справляются с подобными задачами, но ведь такие решения не требуют больших мощностей процессоров, почему бы это не реализовать на роутерах? Собственно это я и решил проверить на практике, полученные результаты сильно обнадежили и подтолкнули на идею создать эту тему. В прошивку роутера добавить эту поддержку пока не реально, да и во многие роутеры все не влезет физически, поэтому имеет смысл пропихнуть ее под видом opkg, как установку дополнительных пакетов. В данный момент я пока только опишу, чего мне удалось сделать и чего достичь. Т.к. в наших роутерах используется довольно старые ядра Linux, в которых отсутствует полноценная поддержка DVB донглов, особенно современных, то мне пришлось создать свой проект на GitHub'е - Backports Linux и привязать его к нашему ядру версии 3.4.ххх, с целью разогнать наше ядро до более современных версий 4.х, в конкретном случае до версии ядра 4.4.2, в которой вполне сносно поддерживаются DVB донглы после доработки. Естественно, мне так же пришлось перенести различные патчи и исправления из апстрима, что бы добиться стабильной работы и добавить новые устройства. Весь этот проект разрабатывается в рамках деволоперской версии прошивки 2.09, ниже работать не будет из-за специфики Backports Linux и новых дополнений в нашем ядре! В качестве подопытных DVB донглов я выбрал те, что продаются на AliExpresse по доступным ценам:
AstroMeta Digital TV USB ТВ-тюнер - AMDVBT2 BDA (VID_15F4_PID_0131)
AstroMeta Hybrid TV USB ТВ-тюнер - AMDVBT2 Hybrid (VID_15F4_PID_0135) - этот я добавил благодаря информации Андрея(Pаdavan).
GENIATECH MyGica T230/T230C USB ТВ-тюнер
GENIATECH MyGica PT360 USB ТВ-тюнер - для этого тюнера придется искать переходник.
В качестве сервера для IPTV использовался minisatip, а что бы еще раздавать через DLNA - xupnpd. В качестве клиентов VLC и Kodi, ну или любой другой, который поддерживает satip/http/rtsp потоки, либо DLNA. Список каналов я подготовил заранее в формате M3U - moscow_dvb-t2_satip.m3u, но в принципе это сделать не сложно с помощью утилиты w_scan на самом роутере.

IMG_20170127_180656.jpg Screenshot_20170226_122939.pngScreenshot_20170226_123233.png Screenshot_20170226_123352.pngIMG_20170226_130755.jpg IMG_20170226_130926.jpg

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

  • Thanks 8
Link to comment
Share on other sites

21 минуту назад, McMCC сказал:

AstroMeta Hybrid TV USB ТВ-тюнер

Как ими управлять? Через Web-интерфейс?

А так-то да, интересная штука...

Link to comment
Share on other sites

10 минут назад, vadimbn сказал:

Как ими управлять? Через Web-интерфейс?

А так-то да, интересная штука...

Никакого управления не требуется, даже настраивать ничего не нужно. Все находится в плейлисте, скачайте его и посмотрите. Для первого мукса, правда, потребуется дополнительно указать номер PLP, но только там, где он отличается от 0. Для создания этого списка я использовал утилиту w_scan, она умеет экспортировать в XSPF/M3U формат для VLC, этот же плейлист я подсунул xupnpd...

Link to comment
Share on other sites

Было бы интересно, принимал бы активное участие (DVB-C, Geniatech).

Только еще добавить в список популярный ранее Geniatech T220/T220A - не помню как со вторым в линуксе дела, но с первым сам на ixbt принимал активное участие в тестировании экспериментов CrazyCat69 и в итоге его поддержка тоже есть в V4L2. У самого есть и T220 и T230, и было бы интересно перевести оба свистка на с малины на роутер, чтобы использовать малину только в качестве медиаплеера и не держать включенной для работы второго плеера.

В идеале хотелось бы видеть умный режим с возможностью использования двух свистков - т.е. смотреть разные каналы с одного мультиплекса, принимаемые по одному свистку, либо до двух разных мультиплексов на двух донглах. Но это совсем уже мечты. Ах да, и конечно запись потока на подключенный HDD по расписанию! Впрочем, если будет реализована поддержка в ядре, дальше уже можно будет поставить TVheadened и делать все то же, что сейчас у меня на малине.

Edited by KorDen
Link to comment
Share on other sites

Если вы хотите смотреть разные каналы с одного донгла, то в рамках одного мультиплекса нет проблем, но при этом номер PLP тоже должен совпадать, а так, у нас в  России, первый мультиплекс разбит на 3 PLP, а второй мультиплекс весь в PLP0. Со вторым мультиплексом, как раз тот случай, когда не будет проблем, а вот с первым понадобится 3 донгла, итого 4 донгла для полноценного IPTV, что бы каждый в доме cмог смотреть свой канал не мешая другим, иначе, кто первый встал, того и тапки, особенно это касается каналов Россия 24 или Россия-1... Что касается других DVB донглов, то советую взять мою версию Backports Linux из git, сделать патч и прислать мне, если конечно это потребуется..

Link to comment
Share on other sites

По поводу PLP в курсе (активно интересовался еще когда первый мультиплекс на 4 PLP был разбит, хоть сейчас и подзабыл многое уже), меня в данном случае интересует DVB-C (провайдер не шифрует бОльшую часть каналов, и сгруппированы они более-менее адекватно).

По поводу патча - уже почти все позабыл, отойдя от активного программирования, но попробую вспомнить и разобраться. В любом случае жду реализации хотя бы для T230.

Link to comment
Share on other sites

T230 поддерживается в 2х версиях, с буковкой C и без. У меня как раз новая версия с буковкой C. Работает хорошо, но пришлось отключить в драйвере поддержку управления по ИК, вешается драйвер, к тому же еще существует аппаратная или программная проблема с USB-3.0 хостами, почему-то он не работает c ними, даже на обычном ПК с Linux. Если кто-то надумает покупать для этих целей DVB донгл, то советую выбрать из моего списка первые 2-а. Не смотря на то, что на них не указан производитель, его успешно вычислили, из плюсов - они не имеют проблем с USB-3.0 портами, а значит будут нормально работать с Giga-3 и Ultra-2, а из минусов - радио часть никак не защищена от помех, сэкономили на всем, чем смогли. Второй донгл, тот что идет под названием AstroMeta Hybrid TV USB ТВ-тюнер - AMDVBT2 Hybrid (VID_15F4_PID_0135), я добавил самостоятельно благодаря подкинутой мне информации Андреем(Padavan) на Conexant cx23102, так что его поддержки для Linux, кроме как у меня, нигде еще нет, но поддерживает он только работу цифрового телевидения, работу ИК управления попробую добавить чуть позже. Связываться с аналоговым телевидением в данном проекте не имеет смысла, поэтому рассматриваться не будет...

Link to comment
Share on other sites

Прикольное начинание, когда-то сам думал его развивать, да как-то всё было не досуг: было влом тянуть кабель от тарелки (DVB-S) или от телека (DVB-C).

20 часов назад, McMCC сказал:

В качестве сервера для IPTV использовался minisatip, а что бы еще раздавать через DLNA - xupnpd.

tvheadend помимо основного функционала по трансляции может служить DVR'ом с EPG для IPTV- и DVB-эфира одновременно. Плагины для получения программы передач российских каналов когда-то коллективно писали.

  • Thanks 1
Link to comment
Share on other sites

Tvheadend немного тяжеловат, хотя не вижу причин его не использовать, но это уже будет делом вкуса. Мне связки minisatip+xupnpd для экспериментов было достаточно, к тому же, там ничего настраивать не нужно, кроме подсунуть плейлист xupnpd. Я это решение чисто для дачи использовал, что бы можно было по wifi на участке смотреть TV, т.к. сигнал от ретранслятора слабый, пришлось ставить стационарную антенну на крыше дома, да еще и точно ее настраивать, ну, а функции записи меня не особо пока интересовали...

Link to comment
Share on other sites

Не знаю как с minisatip, но на tvheadend очень просто настраивать в частности DVB-C (в котором обычно минимум десяток мультиплексов, если не 20-30) - достаточно указать стартовую частоту поиска (на которой передается список других мультиплексов), и он сам подхватит и настроит все (и будет обновлять при необходимости), как и на обычных ТВ.

Link to comment
Share on other sites

@Александр Рыжов, не спорю, но что есть альтернативного, что будет корректно работать с парой клиентов (Kodi на OSMC и Android, можно еще ProgDVB подцепить) при наличии пары тюнеров и DVB-C на 20+ мультиплексов (150-200 каналов с EPG), с возможностью настроить запись с клиента, но записывать на роутере?

Под корректностью работы я понимаю адекватный разбор что на чем открывать (смотрят с одного мультиплекса - идет на одном тюнере, с разных - на двух, либо если запись, то если второй клиент попытается переключиться на другой мультиплекс, будет ошибка, а не перетягивание одеяла) и относительную простоту настройки в случае обновления списка каналов.

Link to comment
Share on other sites

Есть  MyGica PT360  можно будет попробовать, как решение для зон без интернета. Покупал сразу с переходниками на усб и нормальную антенну )) работет на компе и на телефоне отлично, правда греется сильно. Интересная тема, хотя эдемтв уже разленил , не сочтите за рекламу)) и используется как дома на тв, так и на телефоне повсеместно ))

  • Thanks 1
Link to comment
Share on other sites

4 часа назад, KorDen сказал:

@Александр Рыжов, не спорю, но что есть альтернативного, что будет корректно работать с парой клиентов (Kodi на OSMC и Android, можно еще ProgDVB подцепить) при наличии пары тюнеров и DVB-C на 20+ мультиплексов (150-200 каналов с EPG), с возможностью настроить запись с клиента, но записывать на роутере?

Под корректностью работы я понимаю адекватный разбор что на чем открывать (смотрят с одного мультиплекса - идет на одном тюнере, с разных - на двух, либо если запись, то если второй клиент попытается переключиться на другой мультиплекс, будет ошибка, а не перетягивание одеяла) и относительную простоту настройки в случае обновления списка каналов.

minisatip+xupnpd+w_scan вполне себе альтернатива Tvheadend, при этом гораздо меньше кушает процессор и память. Я пробовал все это запускать на Extra2 и смотреть на 4х клиентах одновременно разные каналы, в пределах одного мультиплекса, так вот, заняло это в памяти меньше 45% и процессор был нагружен менее 25%, что вполне считаю приемлемым для MT7628, скажем так, не самом быстром процессоре и железки в общем. На Giga2 и Giga3, так вообще не заметно. На счет конкретной работы, minisatip поддерживает работу нескольких донглов, но я не пробовал его в таком варианте, разруливать эти донглы можно с помощью плейлиста, либо это должно делаться динамически, так что тут я тоже не вижу особых проблем...

  • Thanks 1
Link to comment
Share on other sites

  • 1 month later...

@McMCC, можете привести пример порядка загрузки модулей для гениатечей, в частности T230? Или он не собирался в 2.09.A.5.0-1?

[Edit-2] Пока у меня навскидку начинается как-то так:

rmmod i2c_dev
rmmod i2c_core
insmod compat.ko
insmod media.ko
insmod dvb-core.ko
insmod rc-core.ko
insmod dvb-usb.ko
insmod si2168.ko
insmod dvb_usb_v2.ko
insmod dib0070.ko
insmod dvb-usb-cxusb.ko

(тут наверное лишнее, но пока пытаюсь разобраться что грузить..)

Edited by KorDen
Link to comment
Share on other sites

i2c вообще грузить не нужно, он интегрирован в модуль compat. Порядок загрузки в данном случае не пойдет, нужно использовать depmod и modprobe, без этого ничего работать не будет. Я создал репозиторий в рамках проекта Entware-ng-3x - https://github.com/Entware-for-kernel-3x/entware-dvb-3x , в нем есть kmod-ndms пакет, вот нужно его собрать и установить, тогда модули будут автоматически грузится...

Link to comment
Share on other sites

8 минут назад, McMCC сказал:

i2c вообще грузить не нужно, он интегрирован в модуль compat.

Так я выгружаю i2c, иначе compat не грузится.. Nevermind, раз сходу не удастся, значит уже следующей ночью буду играться со сборкой..

Link to comment
Share on other sites

В модулях имеются зависимости, из ядра дергают modprobe и грузят нужные модули демодуляторов и тюнеров, еще и прошивки нужны. Поэтому тупо через insmod не получится заставить работать тюнеры.

P.S. Скоро все необходимые модули будут доступны в выборе компонентов прошивок...

Link to comment
Share on other sites

Пакеты на тест мирно расположились: для mips (DSL,LTE,VOX) - здесь, и для mipsel (остальные) - здесь. В текущую синхронизацию с owrt/LEDE будут лежать по привычным путям (в основной репе).

+

пакет scan-s2 пересобран.

Edited by TheBB
+
  • Thanks 1
Link to comment
Share on other sites

После новости о появлении модулей для тюнеров в прошивке, решил опробовать свой свисток  MyGica PT360

Уставил 3 пакета minisatip_0.7_mipsel-3x.ipk, libdvbcsa_1.1.0-1_mipsel-3x.ipk и w_scan_20170107-1_mipsel-3x.ipk
Встали без проблем на entware-3x.

Попробовал запустить скрипт minisatip и получил ошибку.

~ # /opt/etc/init.d/S59minisatip start
 Starting minisatip...              failed.
~ #

Модули ядра стоят, пробовал перезагружать роутер - тот же эффект - ошибка.

В первом посте тюнер заявлен как поддерживаемый, подскажите, что-то ещё надо установить кроме этих программ и модулей?

Спасибо.
 

Link to comment
Share on other sites

10 минут назад, TheBB сказал:

Обновите пакет `opt-ndmsv2`

я обновлял перед установкой все пакеты. Сейчас специально перепроверил:

~ # opkg install opt-ndmsv2
Package opt-ndmsv2 (1.0-6b) installed in root is up to date.

Стоит последняя версия

Link to comment
Share on other sites

8 часов назад, plagioklaz сказал:

После новости о появлении модулей для тюнеров в прошивке, решил опробовать свой свисток  MyGica PT360

Уставил 3 пакета minisatip_0.7_mipsel-3x.ipk, libdvbcsa_1.1.0-1_mipsel-3x.ipk и w_scan_20170107-1_mipsel-3x.ipk
Встали без проблем на entware-3x.

Попробовал запустить скрипт minisatip и получил ошибку.


~ # /opt/etc/init.d/S59minisatip start
 Starting minisatip...              failed.
~ #

Модули ядра стоят, пробовал перезагружать роутер - тот же эффект - ошибка.

В первом посте тюнер заявлен как поддерживаемый, подскажите, что-то ещё надо установить кроме этих программ и модулей?

Спасибо.
 

Этого недостаточно. Нужно установить пакеты kmod-ndms, dvb-firmware, libdvbcsa, scan-s2 и minisatip - это основные базовые пакеты, можно конечно xupnpd, w_scan и далее по вкусу, но они уже будут не основными. После установки нужно вручную запустить скрипт /opt/etc/init.d/S00kmod_config без параметров, этот скрипт создаст директорию /opt/lib/modules/3.4.113, сделает линк на модули прошивки в директорию /opt/lib/modules/3.4.113/kernel и запустит depmod -a, что бы сгененрить базу зависимостей для modprobe. Вот после этого можно вставлять донгл в роутер и запускать поиск каналов, делается это тоже вручную, в начале нужно выполнить команду ldconfig, затем запустить scan-s2 -o m3u -M -H http://[ip роутера]:[порт, например 8080]  /opt/share/dtv-scan-tables/dvb-t/dvb-t2_All > /opt/root/playlist.m3u И наконец запустить minisatip -R /opt/share/minisatip/html , по умолчанию порт 8080, нужно другой, смотрите подсказки minisatip -h.

P.S. Сразу предупреждаю, я об этом писал выше, что MyGica T230/C и PT360 не работают с контроллером USB 3.0 xHCI, т.е. на всех роутерах с MT7621 без исключения. Если у вас Giga3 или UltraII, то вам придется приобрести другой донгл, я их выше упомянул...
P.P.S. В компонентах не выбирайте установку модулей для видео, поддержка UVC Video есть в модулях для DVB тюнеров, так же отметьте для установки модулей аудио, больше вам из этого ничего не нужно, главное что бы модулей видео не было, они конфликтуют с модулями для DVB. Не знаю, сделали ли проверку установки модулей, по идее выбрать модули видео и dvb вместе должны были запретить....

  • Thanks 1
Link to comment
Share on other sites

12 часа назад, McMCC сказал:

MyGica T230/C и PT360 не работают с контроллером USB 3.0 xHCI, т.е. на всех роутерах с MT7621 без исключения

У нового T230C, vid/pid насколько я понимаю, 0572:c688, как и у PT360? Или у старого T230 такие же? [EDIT: стоп, linuxtv говорит что у T230C 0572:c689...?] Похоже, планы запустить второй тюнер на роутере на этом завершились, я думал у меня старый T230 :(

Теперь кажется я понял, почему этот тюнер у меня BSOD на винде выдавал...

dvb-usb: found a 'Mygica T230 DVB-T/T2/C' in warm state.
dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
DVB: registering new adapter (Mygica T230 DVB-T/T2/C)
dvb-usb: recv bulk message failed: -145
si2168: probe of 0-0064 failed with error -140
dvb-usb: no frontend was attached by 'Mygica T230 DVB-T/T2/C'
dvb-usb: Mygica T230 DVB-T/T2/C successfully initialized and connected.

Реквестирую по возможности поддержку T220 (1f4d:d220, Sony CXD2820R / NXP TDA18271HD/C2 / Cypress CY7C68013A)

Edited by KorDen
Link to comment
Share on other sites

Цитата

MyGica T230/C и PT360 не работают с контроллером USB 3.0 xHCI, т.е. на всех роутерах с MT7621 без исключения. Если у вас Giga3 или UltraII, то вам придется приобрести другой донгл, я их выше упомянул...

похоже, везёт как утопленнику... У меня ультра2

Спасибо за столь подробные разъяснения. Сложу свой PT360 обратно в коробочку, да на полку....

Link to comment
Share on other sites

KorDen, да, это типичный лог с контроллером USB 3.0, у меня так же на Mygica T230, думаю с T220 будут те же проблемы, так как бридж то же от Cypress. Люди на форуме пишут, что это проблема USB стека Linux'а, типа под Windows все нормально работает, я пока не могу проверить эти данные, т.к. у меня Windows работает на компах, где нет USB 3.0...

 

Link to comment
Share on other sites

@McMCC, у меня получается так: T220 работает с DVB-C на Windows 7 нормально, T230 при установке драйвера выбивает BSOD. У других этот же тюнер с этим же драйвером работает. Материнка на чипсете Intel Z97. Первоначально связывал эти проблемы с причудами ОС, надо попробовать на ноуте, где только USB2.0, там практически ОС с теми же обновлениями.

Как будет возможность, попробую в разных комбинациях [Win/Linux] [T220/T230] [USB3.0/USB2.0@Z97/USB2.0 на обычном 2.0]

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...