Покажи Публикации - ltrifonov
* Виж публикациите на потр. | Виж темите на потр. | Виж прикачените файлове на потр
Страници: [1]
1  Linux секция за начинаещи / Настройка на хардуер / Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN -: Aug 15, 2011, 10:43
мерси, ще разгледам и това ;)
аз всъщност от доста време се опитвам да измисля начин как или да стриймвам кодирани канали от рутера, които да декодирам при клиента, или да декодирам още върху рутера и да стриймвам.

За нормален (i686) линукс не е  трудно да се направи разкодирането, но мен ме гложди идеята да подкарам всичко това върху рутерчето, то така и така е включено денонощно, процесора му (400 Mhz MIPS) е съизмерим с този на dreambox, но имам проблеми с подкарването на FFDesca (Software descrambler) за този процесор.
2  Linux секция за начинаещи / Настройка на хардуер / Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN -: Aug 12, 2011, 15:36
Продължавам с работата по OpenWRT, сега ще ви покажа как да си направите IPTV headend домашна станция върху рутерчето (TP-LINK 1043).
Предпоставките са: да имате работещ USB DVB адаптер - вижте по-горе за af9015.
Аз имам 2 адаптера едновременно - DVB-T af9015 и DVB-S lmedm04 (QQBOX)


1. TVHEADEND - успях с малки компромиси да компилирам работеща версия за OpenWRT - https://docs.google.com/leaf?id=0B8oQFOm_9mQ3NTI5YjVjNjctYjBmOC00MzU3LTg1NTYtZjZjZWQ1OGRjYmNh&hl=en_US
Вътре в този ipk пакет има един изпълним файл - "tvheadend".
Поставил съм  го в / (ако го сложите на друго място - просто променете реда в скрипта по-долу)

стартиращ скрипт: /etc/init.d/tvheadend
Код:
#!/bin/sh /etc/rc.common
# Example script
# Copyright (C) 2007 OpenWrt.org

START=92
STOP=15





# This method starts tvheadend

start_cam ()
{
 /usr/sbin/killall -9  tvheadend
 mkdir /dev/dvb
 mkdir /dev/dvb/adapter0
 ln -s /dev/dvb0.demux0 /dev/dvb/adapter0/demux0
 ln -s /dev/dvb0.dvr0 /dev/dvb/adapter0/dvr0
 ln -s /dev/dvb0.frontend0 /dev/dvb/adapter0/frontend0
 
 sleep 1
 /tvheadend  -f -u tv -g root  -s
 sleep 1
}
# This method stops tvheadend


 

start() {

start_cam
       

}

stop() {

sleep 1
/usr/bin/killall -9 tvheadend

}



как се използва:
Първоначално трябва да се направи един потребител на OS,
от чието име да се стартира процеса tvheadend.

аз го правя, чрез ръчно добавяне на ред в /etc/passwd:
 
Код:
tv:*:111:0:TV:/etc/tv:/bin/false

След това трябва да направите 1-во стартиране така:
Код:
/tvheadend -C

по този начин ще се стартира процеса, ще започне да изписва в конзолата какви адаптери е намерил и т.н и ще осигури пълен достъп без парола до web interface.

влизаме от WEB Browser на http://ip.na.openwrt:9981
желателно е веднага да отидем в configuration, access control и да си добавим например достъп само от вътре.

След това, отиваме на configuration, tv adapters и избираме от падащото меню DVB адаптера. Отиваме на multiplexes, add manual, въвеждаме ръчно параметрите на приемане (за София - 3 мултиплекса, с параметри : Freq: 818000; bandwidth 8, всичко останало на "auto". Натискаме Add, след което само променяме Freq на 626000, натискаме Add, след това променяме на 490000 и пак add)

Съхраняваме промените (Save changes).

Сега тънък момент:
конфигурацията се е генерирала във /root/.hts/....
спраме процеса от друга конзола със:
Код:
 killall -9 tvheadend 

местим конфигурацията:
Код:
mkdir /etc/tv
cp -r /root/.hts /etc/tv/
chown -R tv:nogroup /etc/tv

и накрая стартираме окончателно:
Код:
/etc/init.d/tvheadend start

по този начин процеса tvehadend се стартира от името на потребител tv

Ако всичко е нормално, отиваме на web интерфейса,
configuration, tv adapters, services и трябва да открием доста канали.
При мен се наложи ръчно да им задам channel name.

От тук нататък - щом канала си има име - той е готов за streaming.
Можем да гледаме от Configuration, Channels - play;
или от бутончето watch TV когато сме извън Configuration.

Така направена системата, на моя TP-LINK 1043 работи със натоварване около 20-30 % CPU докато гледам канал (повече е от варианта с mumudvb, но имам странното чувство, че каналите се възпрозивеждат по-добре, а и има една интересна подробност - за DVB-S има възможност за изпозване на OSCAM чрез newcamd протокол, или чрез dvbapi capmt_so.

това е само лирично отклонение, но ефекта е такъв (с oscam работещ на същия рутер):
Цитат
2011/08/12 14:12:18 5CDB10 c dvbapi: new program number: 03F8 (Discovery Channel Bulgaria)
2011/08/12 14:12:18 5CDB10 c dvbapi: new program number: 03F8 (0000:03F8 unknown)
2011/08/12 14:12:18 5CDB10 c dvbapi: [ADD PID 0] CAID: 5581 ECM_PID: 0D51 PROVID: 000000
2011/08/12 14:12:18 5CDB10 c dvbapi: [ADD PID 1] CAID: 5501 ECM_PID: 0C89 PROVID: 000000
2011/08/12 14:12:18 5CDB10 c dvbapi: [ADD PID 2] CAID: 0604 ECM_PID: 0CED PROVID: 000000
2011/08/12 14:12:18 5CDB10 c dvbapi: new program number: 03F8 (Discovery Channel Bulgaria)
2011/08/12 14:12:19 5CDB10 c localuser (5581&000000/03F8/4F:B998): rejected group (1 ms) (of 0 avail 0) (no matching reader)
2011/08/12 14:12:19 5CDB10 c localuser (5501&000000/03F8/3E:DCBA): rejected group (1 ms) (of 0 avail 0) (no matching reader)
2011/08/12 14:12:19 5CDB10 c dvbapi: Found 2 IRDETO ECM CHIDs
2011/08/12 14:12:19 5CDB10 c dvbapi: Start descrambling PID #2 (CAID: 0604) 1
2011/08/12 14:12:19 5CDB10 c localuser (0604&000000/03F8/34:1C36): cache1 (0 ms) by fausto (of 1 avail 1)
2011/08/12 14:12:23 5CDB10 c dvbapi: [ADD PID 0] CAID: 5581 ECM_PID: 0D51 PROVID: 000000
2011/08/12 14:12:23 5CDB10 c dvbapi: [ADD PID 1] CAID: 5501 ECM_PID: 0C89 PROVID: 000000
2011/08/12 14:12:23 5CDB10 c dvbapi: [ADD PID 2] CAID: 0604 ECM_PID: 0CED PROVID: 000000
3  Linux секция за начинаещи / Настройка на хардуер / Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN -: Mar 01, 2011, 12:36
луд умора няма... да продължа темата!  ;D
намерих в амазон смешно евтин USB DVB-S приемник - 6 лири...
TechnoTrend Connect S-1200 USB 1.1, DVB-S
http://www.amazon.co.uk/gp/product/B002KQ9RPG/ref=oss_product

този приемник е доста стар модел, по протокол 1.1 което значи, че ще се затруднява при стрийм на цял транспондер, но със активиран PID Filtering би трябвало да няма проблеми за 1-2 канала едновременно.


естествено веднага го поръчах и компилирах модул за него за OpenWRT.
Драйвера е известен на линукс кернела като ttusb-budget, съществува си стандартно.

За компилацията е нужно да се добави във dvb.mk (от предишните постове) следното:

Цитат

define KernelPackage/dvb-ttusb-budget
  SUBMENU:=$(DVB_MENU)
  TITLE:=Technotrend/Hauppauge Nova-USB devices
  KCONFIG:= CONFIG_DVB_TTUSB_BUDGET \
        CONFIG_DVB_CX22700 \
        CONFIG_DVB_TDA1004X \
        CONFIG_DVB_VES1820 \
        CONFIG_DVB_TDA8083 \
        CONFIG_DVB_STV0299 \
        CONFIG_DVB_STV0297 \
        CONFIG_DVB_LNBP21
  DEPENDS:=+kmod-dvb-core
  FILES:= $(LINUX_DIR)/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/dvb/frontends/cx22700.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/dvb/frontends/tda1004x.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/dvb/frontends/ves1820.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/dvb/frontends/tda8083.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/dvb/frontends/stv0299.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/dvb/frontends/stv0297.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/dvb/frontends/lnbp21.$(LINUX_KMOD_SUFFIX)
endef

define KernelPackage/dvb-ttusb-budget/description
 Say Y here to support the Technotrend/Hauppauge Nova-USB devices.
The following modules will be compiled for this device :  dvb-ttusb-budget cx22700 tda1004x ves1820 tda8083 stv0299 stv0297 lnbp21

endef



$(eval $(call KernelPackage,dvb-ttusb-budget))


Преди да пристигне няма как да знам дали работи :) но чакам.
Ако стане, openwrt рутерчето TP-LINK 1043 ще удари в земята и дримбоксове и всякакви там боклуци :)

компилираният пакет за backfire 10.03.1-rc4 се намира на:
kmod-dvb-ttusb-budget_2.6.32.25-1_ar71xx.ipk

компилирах и версия за backfire 10.03:
kmod-dvb-ttusb-budget_2.6.32.10-1_ar71xx.ipk
4  Linux секция за начинаещи / Настройка на хардуер / Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN -: Jan 16, 2011, 12:21
@kip

Получи се, точно както го бях описал.
Всъщност има няколко неща за доизчистване, по алгоритъма:

1. теглим си от svn целия toolchain за билдване
2. make menuconfig - селектираме си video support, dvb-usb-af9015
3. make V=2 (zза да изтегли, компилира всички инструменти, кернел и т.н)
4. пачваме - в тази точка, освен че пачваме кернела който е вече изтеглен, трябва да изтрием разните вече компилирани неща във media/dvb и media/common за да предизвикаме нова компилация. Аз тази сутрин няколко пъти пускам make, получавам пакети, инсталирам и кернела се държи като непачнат: tuner id: 179 not supported. Като минах и изтрих ръчно компилираните боклуци, след това си се компилира нормално.

А цялата идея да постна процедурата, а и ти да напишеш скрипт е, да може да се прилага при следващи версии на кернела :) иначе теглиш готовите пакети  и то си работи
5  Linux секция за начинаещи / Настройка на хардуер / Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN -: Jan 15, 2011, 20:42
И аз ще си играя още да си билдна читав firmware с luci. После може да скалъпим един цялостен скрипт, който генерира всичко от край докрай.  :)

за luci - трябва да дръпнеш сорса, и Makefile - както се прави за mumudvb

обаче няма голям смисъл - при 1-вото влизане след флашване - ssh не пуска защото няма парола на root, но се оказа че телнета си работи и влизаш направо в root shell

та: след 1-во флашване - telnet 192.168.1.1
passwd xxxxxxx

след това настройваш на ръка wan Интерфейса (той си тръгва на dhcp по подразбиране)

след това пишеш
opkg update
opkg install luci
/etc/init.d/uhttpd enable
/etc/init.d/uhttpd start

и си готов - работещо luci

ПП: нищо друго не е необходимо за пълната компилация, само горните уточнения

6  Linux секция за начинаещи / Настройка на хардуер / Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN -: Jan 15, 2011, 20:16
ltrifonov ето до къде стигнах и аз с рутера под ръка:
1. Направих си този скрипт за билдване. Процеса на компилация минава успешно, но ето какво виждам в лога
Код:
WARNING: kmod-dvb-usb-af9015 is not available in the kernel config
което обяснява липсата на пакети.Все пак успях да подкарам стииминга на рутера, като използвах твоите пакети и билднатия от мен firmware.При пускането на mumudvb (както на firmware от OpenWRT, така и на билднатия от мен) на рутерчето ревеше, че липсва /lib/libpthread.so.0.След като, го качих, с моя билд на firmware-а и твоите пакети стриима тръгна.Днес пак  не ми остана време да проверя какво се дъни та да не се компилират  kmod-dvb-* пакетите.Ще трябва да си поиграя още с билдването на firmware, защото видях, че на моя firmware липсва luci.

@kip
аз започнах да си билдвам 10.03.1-rc4 защото в 10.03 така и не успях да направя extroot...

та докато правих гореописаната от мен процедура наново, забелязах още няколко пропуска:

1. Ако не се селектира video support - изобщо не се билдва video for linux частта от кернела - трябва да се селектира при make menuconfig.

2. libpthread - пропуснал съм да кажа, но то е в изискванията за mumudvb - може да се инсталира от готовите пакети

може и да има още пропуски - сега като билдна (ако успея) ще допълня :)

7  Linux секция за начинаещи / Настройка на хардуер / Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN -: Jan 14, 2011, 14:48
Открих последната липсваща част!

отново се извинявам, но толкова много пъти преправях и започвах отначало, че това съм го пропуснал.

значи, в  dvb.mk модула трябва да се направят 2 промени преди компилацията:

Цитат
define KernelPackage/dvb-usb-af9015
  SUBMENU:=$(DVB_MENU)
  TITLE:=Afatech AF9015 DVB-T USB2.0 support
  KCONFIG:= \
        CONFIG_DVB_USB_AF9015 \
        CONFIG_DVB_AF9013 \
        CONFIG_DVB_PLL \
        CONFIG_MEDIA_TUNER_MT2060 \
        CONFIG_MEDIA_TUNER_QT1010 \
        CONFIG_MEDIA_TUNER_TDA18271 \
        CONFIG_MEDIA_TUNER_TDA18218 \
        CONFIG_MEDIA_TUNER_MXL5005S
  DEPENDS:=@USB_SUPPORT +kmod-dvb-core +kmod-dvb-usb +kmod-usb-core +kmod-i2c-core
  FILES:= \
        $(LINUX_DIR)/drivers/media/dvb/frontends/dvb-pll.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/dvb/dvb-usb/dvb-usb-af9015.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/dvb/frontends/af9013.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/common/tuners/mt2060.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/common/tuners/qt1010.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/common/tuners/mc44s803.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/common/tuners/tda18271.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/common/tuners/tda18218.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/common/tuners/mxl5005s.$(LINUX_KMOD_SUFFIX)
endef


dvb.mk се тегли от: http://gitweb.braice.net/gitweb?p=mumudvb;a=blob_plain;f=openwrt/package/kernel/modules/dvb.mk;hb=HEAD

в него се променят горните редове в червено.

актуализирал съм моите пакети, вече се съдържат всички необходими модули!
може да ги изтеглите от тук: https://docs.google.com/leaf?id=0B8oQFOm_9mQ3OGVlYzIzOTYtZDZkYi00YjNhLTllOGMtMjc4NTNlODQ2ZjRm&hl=en

8  Linux секция за начинаещи / Настройка на хардуер / Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN -: Jan 13, 2011, 10:34

@kip


Това със скрипта ще е доста полезно, може да го пуснеш и във форумите на openwrt.
Аз забелязах един пропуск понеже си рефлашнах рутера и правих повечето стъпки отначало.
един от модулите за кернела, който е необходим на dvb-usb-af9015.ko, не присъства в ipk пакета
това е файла: mc44s803.ko

Понеже правих поне към 20-30 прекомпилирания докато всичко ми се напасне, и в началото си местих самите  *.ko файлове на ръка във /lib/modules/ на рутера, та не съм забелязал липсата му.

По начина както съм описал, този файл ще липсва. Аз сега ще го добавя към готовите файлове, но ще остане за ръчно копиране. Файлът mc44s803.ko трябва да се копира във /lib/modules/2.6.32.10/ където са и останалите.

Ако някой успее да навлезе навътре във toolchain системата, вероятно ще разбере какво и в кой скрипт трябва да се пипне, за да се включи и този модул към готовите ipk



За липсващите ipk модули - нали правим така:
теглим си dvb.mk от сайта който е посочен по-преди,
там има версии на dvb.mk за доста версии на кернела.
Аз си изтеглих  за 2.6.32.
този dvb.mk определя менюто dvb във make menuconfig, и в него са зависимостите:

make menuconfig:
...................................
 избираме
Kernel modules,
  DVB Support,
     af9015

при избирането на af9015[M], при мен авточматично се поставя [M] и на най-горните модули
dvb-core и dvb-usb

след това при компилацията си се се получават ?! Поне при мен беше така, няколко пъти съм трил и започвал от начало, проблема ми беше единствено, че не се компилираше tda18218.c

Качил съм липсвашия модул тук:
https://docs.google.com/leaf?id=0B8oQFOm_9mQ3MDkyZmU4ZmQtOWVjZi00MGFiLTkyN2ItMTM5YmFkM2IxY2M5&hl=en


9  Linux секция за начинаещи / Настройка на хардуер / Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN -: Jan 10, 2011, 13:10
ltrifonov прекрасно howto.На моя "мощен" Debian компирацията отне 40 минути.Опитах да пачна кернела с пача от поста ти, но видях, че трябва малко да се преработи спрямо кернел 2.6.32.10. Довечера ще си поиграя малко с пача и ще компилирам наново.Чакам с интерес продължението на темата ти :)

Здрасти, ами май е време да пусна продължението :)

При пачването има няколко особености, ще кажа как го направих при мен:

1. изтеглих си сорсовете на dvb както в 1-ви пост:
cd /usr/src
mkdir af9015
cd af9015
hg clone -r 0f41fd7df85d http://linuxtv.org/hg/~anttip/af9015/

към него се прилага точно определен пач:
https://patchwork.kernel.org/patch/82494/raw/
пачът се прилага така: patch -p1 < ../път_до_изтегления_patch

това беше точно както от 1-ви пост.
След като приложим пача, има малко ръчна работа:

Пача всъщност създава 3 файла за драйвера TDA18218 във linux/driver/media/common/tuners
и добавя разни препратки към този драйвер в още няколко файла.

обшо се модифицират 7-8  файла.
целта е да открием модифицираните файлове и да ги копираме върху сорса на кернела във toolchain-а за openwrt
при мен пътищата са:

вземаме пачнатите файлове от: /usr/src/af9015/linux/

и местим във: /usr/src/openwrt/backfire_10.03/build_dir/linux-ar71xx/linux-2.6.32.10/




това са:
в drivers/media/common/tuners
Kconfig
Makefile
tda18218.c
tda18218.h
tda18218_priv.h

в drivers/media/dvb/dvb-usb
af9015.c
dvb-usb-ids.h

и в drivers/media/dvb/frontends
af9013.c
af9013.h
af9013_priv.h

Има една особеност - в повечето от тези файлове има ред:
#include "compat.h"

или трябва да махнем този ред, защото във toolcain за openwrt няма такъв,
или във всяка от горните директории да си направим по един празвн compat.h

Последна модификация:
отваряме
  media/dvb/dvb-usb/Kconfig

и добавяме реда от по-долу в червено:
Цитат
config DVB_USB_AF9015
        tristate "Afatech AF9015 DVB-T USB2.0 support"
        depends on DVB_USB
        select DVB_AF9013
        select DVB_PLL              if !DVB_FE_CUSTOMISE
        select MEDIA_TUNER_MT2060   if !MEDIA_TUNER_CUSTOMISE
        select MEDIA_TUNER_QT1010   if !MEDIA_TUNER_CUSTOMISE
        select MEDIA_TUNER_TDA18271 if !MEDIA_TUNER_CUSTOMISE
       select MEDIA_TUNER_TDA18218 if !MEDIA_TUNER_CUSTOMISE
        select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMISE
        select MEDIA_TUNER_MC44S803 if !MEDIA_TUNER_CUSTOMISE
        help

Това е всичко - пускаме си пак:
make V=2

и след доста по-кратко от преди време ще получим:
/usr/src/openwrt/backfire_10.03/bin/ar71xx/packages
със готови компилирани модули за инсталиране *.ipkg

ако направим тази директория достъпна през web, може да кажем на opkg.conf
да изтегли packages направо от там.

Сега, за самото разпознаване на USB стикчето, тези модули трябва да се инсталират:
аз си направих един файл:

/etc/modules.d/91-dvb:
Цитат
dvb-core
dvb-usb force_pid_filter_usage=1
dvb-pll
mxl5005s
tda18271
qt1010
mt2060
af9013
mc44s803
tda18218
dvb-usb-af9015

за зареждане на модулите в този ред след рестарт

може и ръчно с insmod в този ред
ако всичко е ок, в dmesg виждаме:
Цитат
dvb-usb: found a 'Afatech AF9015 DVB-T USB2.0 stick' in warm state.
dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
dvb-usb: pid filter enabled by module option.
DVB: registering new adapter (Afatech AF9015 DVB-T USB2.0 stick)
af9013: firmware version:4.65.0
DVB: registering adapter 0 frontend 0 (Afatech AF9013 DVB-T)...
NXP TDA18218 successfully identified.
dvb-usb: Afatech AF9015 DVB-T USB2.0 stick successfully initialized and connected.
usbcore: registered new interface driver dvb_usb_af9015


пропуснах да кажа, но трябва да поставим изтегления фирмуер на съответното място:
/lib/firmware/dvb-usb-af9015.fw

след това се прави точно както е описано в сайта на mumudvb за openwrt:

Цитат
mkdir /dev/dvb
mkdir /dev/dvb/adapter0
ln -s /dev/dvb0.demux0 /dev/dvb/adapter0/demux0
ln -s /dev/dvb0.dvr0 /dev/dvb/adapter0/dvr0
ln -s /dev/dvb0.frontend0 /dev/dvb/adapter0/frontend0

Конфигурацията на самото mumudvb при мен е: (за софия)
направих си 3 скрипта в /etc/init.d
направих си и 3 конфигурации за всеки от 3-те транспондера в софия
давам пример с 1-вия скрипт за 818 Mhz

останалите скриптове се различават само по иметно на конф. файла в зелено по-долу:
/etc/init.d/dvbtv818:
Цитат
#!/bin/sh /etc/rc.common
# Example script
# Copyright (C) 2007 OpenWrt.org

START=92
STOP=15


PIDS=`pidof mumudvb`


# This method starts mumudvb

start_cam ()
{
 kill -9  $PIDS
 mkdir /dev/dvb
 mkdir /dev/dvb/adapter0
 ln -s /dev/dvb0.demux0 /dev/dvb/adapter0/demux0
 ln -s /dev/dvb0.dvr0 /dev/dvb/adapter0/dvr0
 ln -s /dev/dvb0.frontend0 /dev/dvb/adapter0/frontend0
 mkdir /var/run/mumudvb
 sleep 1
 mumudvb  -c /etc/mumdvb/mumdvb818.conf &
sleep 1
}
# This method stops mumudvb
stop_cam ()
{
kill -9  $PIDS
sleep 1
}




start() {

start_cam


}

stop() {
#echo "[SCRIPT] $1: $CAMNAME"
stop_cam

}


ето и самите конфигурации:
/etc/mumdvb/mumdvb818.conf:
Цитат
freq=818
dont_send_sdt=1
multicast=0
unicast=1
port_http=1234
ip_http=0.0.0.0
sap=1
autoconfiguration=0

channel_next
name=bnt1
pids=266 256 257

channel_next
name=nova
pids=38 36 37

channel_next
name=btv
pids=282 272 273

channel_next
name=tv7
pids=314 304 305

channel_next
name=thevoice
pids=330 320 321


на останалите транспондери доколкото гледах, се излъчва едно и също на всичките 2 х 8 канала (но се надявам да ги напълнят)
прилагам и техните конфигурации, но при тях съм настроил само по един канал

 /etc/mumdvb/mumdvb490.conf
Цитат
freq=490
dont_send_sdt=1
multicast=0
unicast=1
port_http=1234
ip_http=0.0.0.0
sap=1
autoconfiguration=0

channel_next
name=490-1
pids=5131 5132 5133



 /etc/mumdvb/mumdvb626.conf
Цитат
freq=626
dont_send_sdt=1
multicast=0
unicast=1
port_http=1234
ip_http=0.0.0.0
sap=1
autoconfiguration=0

channel_next
name=ch_09
pids=5331 5332 5333



Сега вече можем да управляваме цялата система през web интерфейса на openwrt
Administration, Services, Initscripts

там имам: dvbtv818 -> и бутони: start, stop, restart
имам и за другите 2 транспондера

Аз лично предпочитам скриптовете да са в disabled режим и да се пускат при нужда.

как става самото гледане:
конфигурацията както съм показал прави http unicast stream на адрес 0.0.0.0:1234
гледа се с VLC на:

 http://192.168.1.1:1234/playlist.m3u

 от WWW Browser може да се види html информация за излъчваните потоци:
  http://192.168.1.1:1234/channels_list.html


Това е засега от мен, надявам се да съм бил полезен :)







10  Linux секция за начинаещи / Настройка на хардуер / Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN -: Jan 08, 2011, 13:57
Темата има развитие:)

Ще обясня с няколко думи как се прави домашно IPTV ,
със същата USB флашка af9015 , но не на компютър, а на рутерче tp-link 1043 което струва около 100 лв :) и има процесор 400 Mhz, 8 MB Flash, 32 MB RAM, 5 Gigabit интерфейса, USB

(двойно повече флаш памет от популярния Linksys WRT54GL + USB + доста по-мощен процесор, което му позволява с лекота да върши всички тези неща)


Предимствата - не е нужно да работи компютър със всичките му вентилатори,
300-400 вата консумация и т.н за да се гледа и стриймва IPTV, а и всеки има някакво рутерче в къщи нали :)

TP-LINK 1043

Инсталираме си OpenWRT : аз избрах стабилната версия 10.03 на BackFire от http://downloads.openwrt.org/backfire/10.03/ar71xx/openwrt-ar71xx-tl-wr1043nd-v1-squashfs-factory.bin

процеса е лек и приятен, от web интерфеса с който идва tp-link, няма да се задълбочавам.

След като вече имате готов работещ OpenWRT трябва да му се инсталират няколко пакета:
направо ще дам списъка с моите, добре е да ги имате:

Цитат
root@OpenWrt:/# opkg list
base-files - 42-r20728
block-hotplug - 0.1.0-1
block-mount - 0.1.0-1
busybox - 1.15.3-2
crda - 1.1.0-2
ddns-scripts - 1.0.0-6
dnsmasq - 2.52-2
dropbear - 0.52-4
fdisk - 2.13.0.1-4
firewall - 1-10
hotplug2 - 1.0-beta-1
iptables - 1.4.6-2
iptables-mod-conntrack - 1.4.6-2
iptables-mod-nat - 1.4.6-2
iw - 0.9.19-1
kernel - 2.6.32.10-1
kmod-ath - 2.6.32.10+2010-03-24-5
kmod-ath9k - 2.6.32.10+2010-03-24-5
kmod-button-hotplug - 2.6.32.10-1
kmod-cfg80211 - 2.6.32.10+2010-03-24-5
kmod-crc-ccitt - 2.6.32.10-1
kmod-crypto-aes - 2.6.32.10-1
kmod-crypto-arc4 - 2.6.32.10-1
kmod-crypto-core - 2.6.32.10-1
kmod-dvb-core - 2.6.32.10-1
kmod-dvb-usb - 2.6.32.10-1
kmod-dvb-usb-af9015 - 2.6.32.10-1

kmod-fs-cifs - 2.6.32.10-1
kmod-fs-vfat - 2.6.32.10-1
kmod-i2c-core - 2.6.32.10-1
kmod-input-core - 2.6.32.10-1
kmod-input-gpio-buttons - 2.6.32.10-1
kmod-input-polldev - 2.6.32.10-1
kmod-ipt-conntrack - 2.6.32.10-1
kmod-ipt-core - 2.6.32.10-1
kmod-ipt-nat - 2.6.32.10-1
kmod-ipt-nathelper - 2.6.32.10-1
kmod-leds-gpio - 2.6.32.10-1
kmod-mac80211 - 2.6.32.10+2010-03-24-5
kmod-nls-base - 2.6.32.10-1
kmod-nls-cp1251 - 2.6.32.10-1
kmod-nls-cp437 - 2.6.32.10-1
kmod-nls-iso8859-1 - 2.6.32.10-1
kmod-ppp - 2.6.32.10-1
kmod-pppoe - 2.6.32.10-1
kmod-scsi-core - 2.6.32.10-1
kmod-tun - 2.6.32.10-1
kmod-usb-core - 2.6.32.10-1
kmod-usb-serial - 2.6.32.10-1
kmod-usb-serial-ftdi - 2.6.32.10-1
kmod-usb-storage - 2.6.32.10-1
kmod-usb2 - 2.6.32.10-1
kmod-video-core - 2.6.32.10-1
kmod-video-uvc - 2.6.32.10-1
ldd - 0.9.30.1-42
libc - 0.9.30.1-42
libcurl - 7.19.6-1
libevent - 1.4.13-2
libgcc - 4.3.3+cs-42
libiptc - 1.4.6-2
libjpeg - 6b-1
liblua - 5.1.4-6
liblzo - 2.03-3
libnl-tiny - 0.1-1
libopenssl - 0.9.8m-3
libpthread - 0.9.30.1-42
librt - 0.9.30.1-42
libuci - 12012009.5-1
libuci-lua - 12012009.5-1
libxtables - 1.4.6-2
lua - 5.1.4-6
luci - 0.9.0-1
luci-admin-core - 0.9.0-1
luci-admin-full - 0.9.0-1
luci-admin-mini - 0.9.0-1
luci-app-ddns - 0.9.0-1
luci-app-firewall - 0.9.0-1
luci-app-initmgr - 0.9.0-1
luci-app-openvpn - 0.9.0-1
luci-cbi - 0.9.0-1
luci-core - 0.9.0-1
luci-http - 0.9.0-1
luci-i18n-english - 0.9.0-1
luci-ipkg - 0.9.0-1
luci-lmo - 0.9.0-1
luci-nixio - 0.9.0-1
luci-sgi-cgi - 0.9.0-1
luci-sys - 0.9.0-1
luci-theme-base - 0.9.0-1
luci-theme-openwrt - 0.9.0-1
luci-uci - 0.9.0-1
luci-uvl - 0.9.0-1
luci-web - 0.9.0-1
mjpg-streamer - r84-2
mtd - 12
mumudvb - 1.6.1-openwrt-1
openvpn - 2.1.1-1
opkg - 513-2
ppp - 2.4.4-5
ppp-mod-pppoe - 2.4.4-5
swconfig - 5
transmission-daemon - 1.92-1
transmission-web - 1.92-1
uci - 12012009.5-1
udevtrigger - 106-1
uhttpd - 7
wireless-tools - 29-4
wpad-mini - 20100309-1
zlib - 1.2.3-5


Както забелязвате, има пакети за openvpn, mumudvb, uvcvideo, USB, торент клиент

пакетите в червено няма да намерите във официалото хранилище на пакети, и ще трябва да се компилират.

за целта трябва да си приготвите мощен линукс (за предпочитане Debian базиран, аз ползвах Ubuntu server), okolo 3 GB свободно пространство, и няколко часа свободно време.

причината за толкова многото часове и дисково пространство е, че трябва да изгтеглите и компилирате цялото линукс обкръжение за MIPS платформа (gcc, linux kernel, и т.н)

Започваме:
cd /usr/src
mkdir openwrt
cd openwrt

основната част от работата е описана тук: http://wiki.openwrt.org/doc/howto/build

apt-get install build-essential asciidoc autoconf binutils bison bzip2 \
  flex gawk gettext libncurses5-dev libz-dev patch unzip zlib1g-dev


apt-get install subversion

сега важната част - изтегляме обкръжението:

Инструкциите по-долу са валидни САМО за BackFire 10.03 с кернел 2.6.32.10 !!!
svn co svn://svn.openwrt.org/openwrt/tags/backfire_10.03

Дотук сме готови да си компилираме наша версия на стандартните пакети.
сега следва не-стандартната част:

ползвам информацията от сайта на MUMUDVB: http://mumudvb.braice.net/mumudrupal/node/36

теглим файла dvb.mk от http://gitweb.braice.net/gitweb?p=mumudvb;a=blob_plain;f=openwrt/package/kernel/modules/dvb.mk;hb=HEAD

поставяме го в директория: /usr/src/openwrt/backfire_10.03/package/kernel/modules/

теглим Makefile за Mumudvb от тук: http://gitweb.braice.net/gitweb?p=mumudvb;a=blob_plain;f=openwrt/packages/mumudvb/Makefile
 
поставяме го в /usr/src/openwrt/backfire_10.03/package/mumudvb/

Дотук сме готови, можем да компилираме.
Прави се от директория /usr/src/openwrt/backfire_10.03 като обикновен потребител:

make menuconfig
избираме профил за TPLINK 1043:
 Target System (Atheros AR71xx/AR7240/AR913x) 
     Target Profile (TP-LINK TL-WR1043ND v1) 


след това отиваме надолу, в Utilities, и избираме mumudvb,
връщаме се назад, и избираме
Kernel modules,
  DVB Support,
     af9015



exit, exit, exit... save..

като излезем обратно в конзолата на линукс, пишем:

make V=2

отиваме да пием кафе, да обядваме... 2-3 часа.
Ако всичко е нормално, трябва да започне едно дълго теглене и компилиране.

Когато всичко свърши, си имаме готови пакети за инсталиране, които можем да инсталираме направо през web интерфейса на OpenWRT - luci - software.

Дотук - всичко е по стандартната схема, нищо не сме пачвали, имаме компилирани dvb-core модули и програмата mumudvb чрез кяото ще стриймваме.

Трудната част е за конкретния  USB приемник за който се говори още в 1-вия пост на темата.

Необходимо е пачване, подобно на описаното в 1-ви пост.
Подробности ще дам при следваща възможност, но ако стигнете до тук, сте на финалната права :) около 95% от цялата работа.

(остатъка който следва ми отне 3 пълни дни, но на вас ще ви е лесно :) )

Ако не ви се компилира - качих пакетите в интернет: https://docs.google.com/leaf?id=0B8oQFOm_9mQ3OGVlYzIzOTYtZDZkYi00YjNhLTllOGMtMjc4NTNlODQ2ZjRm&hl=en





11  Linux секция за начинаещи / Настройка на хардуер / Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN -: Oct 15, 2010, 12:43
@tvkkk: Страхотно :)

с getstream CPU е натоварено 1 % :) при 6% със VLC !

при мен на убунту се наложи да компилирам getstream, защото apt-get install getstream  инсталира вероятно някаква стара версия, и с копи-пейст на конфигурацията ми даваше грешка: stream:  invalid config option.

затова следвах стъпките от сайта:

cd /usr/src
git clone git://hydra.gt.owl.de/getstream.git

apt-get install libevent-dev
apt-get install libglib2.0-dev

cd getstream
make


след това копирах получения изпълним файл getstream във /usr/bin

пуснах програмата със показания по-горе конфиг фаил, но изписа грешка: /dev/dvb/adapter2/ not found (или нещо в този дух)

проверих какво имам в тази директория и открих само /dev/dvb/adapter0

смених в конфигурацията adapter 2 със adapter 0
И всичко тръгна !!!

Каналите се сменят от VLC със Възпроизвеждане -> програма ... (при мен интерфейса е
на БГ)

редакция: забелязвам че плеъра приема целия входящ поток едновременно при 1-вия вариант на конфигурацията от предишния пост.
Това прави 15000 кб/с входящ битрейт... 
За гледане в LAN не е проблем, но за отдалечено през интернет ще е тежко.

следваща редакция: прилагам конфигурация за 1 транспондер с 6-те канала поотделно:

Цитат
http {
       port 8001;
};

adapter 0 {
       dvb-t {
               frequency 818000000;
               bandwidth 8;
               transmission-mode auto;
               guard-interval auto;
               hierarchy none;
               modulation auto;
       };
       stream {
               name "bnt1";
               input {
                   pnr 1;
               };
               output-http {
                       url /tv/bnt1;
               };
       };

       stream {
               name "bTV";
               input {
                   pnr 2;
               };
               output-http {
                       url /tv/btv;
               };
       };


       stream {
               name "tv7";
               input {
                   pnr 3;
               };
               output-http {
                       url /tv/tv7;
               };
       };

       stream {
               name "voice";
               input {
                   pnr 4;
               };
               output-http {
                       url /tv/voice;
               };
       };

       stream {
               name "bbt";
               input {
                   pnr 5;
               };
               output-http {
                       url /tv/bbt;
               };
       };


       stream {
               name "nova";
               input {
                   pnr 6;
               };
               output-http {
                       url /tv/nova;
               };
       };

гледането става с vlc http://ip.na.server:8001/tv/nova за нова ТВ
или съответно плейлиста със изброени 6-те канала
12  Linux секция за начинаещи / Настройка на хардуер / Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN -: Aug 31, 2010, 13:45
А по този начин - същото излъчване се осъществява от Windows машина:

vlc.exe  --programs=1,2,3,4,5,6 dvb-t:// :dvb-frequency=818000 :dvb-bandwidth=8 :dvb-guard=16 :dvb-transmission=8 :sout=#duplicate{dst=std{access=http,mux=asf,dst=:1234},select="program=1",dst=std{access=http,mux=asf,dst=:1235},select="program=2",dst=std{access=http,mux=asf,dst=:1236},select="program=3",dst=std{access=http,mux=asf,dst=:1237},select="program=4",dst=std{access=http,mux=asf,dst=:1238},select="program=5",dst=std{access=http,mux=asf,dst=:1239},select="program=6"}

показва се интерфейса на плеъра, не съм се ровил дали има аналог на cvlc за да си работи невидимо като процес...
13  Linux секция за начинаещи / Настройка на хардуер / Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN -: Aug 30, 2010, 14:26
Пристигна ми втория тунер от китай :)

пуснах ги в паралел - никакъв проблем, разпознават си се едновременно
само както е писал по-горе tvkkk - указвам на единия vlc: --dvb-adapter=0
а на другия: --dvb-adapter=1

натоварването на системата се увеличи с 1% :)))

машинката е P4 3.0
14  Linux секция за начинаещи / Настройка на хардуер / Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN -: Aug 17, 2010, 16:07
благодаря APKAH,

сега чакам да пристигне втория китайски тунер от ebay,
Веднага щом пристигне го включвам и него за "--dvb-frequency=626000000"

в офиса много ще се кефим ;)

а и ще споделя какво е нужно за да работят едновременно!

поздрави!
15  Linux секция за начинаещи / Настройка на хардуер / КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN -: Aug 11, 2010, 17:44
Здравейте,

пиша тук за да споделя опита си от 2 дена "ръчкане" в линукс
по темата VLC Streaming DVB-T

След тези 2 дена ефекта е: чудесно работещ Streaming сървър, който излъчва в ЛАН едновременно всички 6 канала от мултиплекса с цифровата телевизия в София: БНТ1, ББТ, БТВ, НОВА, ТВ7, ВОЙС

Излъчването става със VLC, а за приемник ползвам УСБ стикче от e-bay за... 1$

Използвах Ubuntu 10.04 Server

инсталирах dvb-apps и vlc чрез apt-get

най-много време ми отне подкарването на китайското "ефтинжос" приемниче - наложи се да прекомпилирам / препачна V4L-DVB.

Преди да започна, при включване на устройството излизаше следното в dmesg:

    [ 1268.818994] af9015: tuner id:179 not supported, please report!
    [ 1268.821711] Afatech DVB-T 2: Fixing fullspeed to highspeed interval: 10 -> 7
    [ 1268.822301] input: Afatech DVB-T 2 as /devices/pci0000:00/0000:00:1d.7/usb1/1-3/1-3:1.1/input/input5
    [ 1268.823010] generic-usb 0003:15A4:9016.0002: input,hidraw0: USB HID v1.01 Keyboard [Afatech DVB-T 2] on usb-0000:00:1d.7-3/input1


ровичках по форумите, и открих - тунер ID:179 е NXP TDA18218
той обаче не се поддържа все още директно...
затова - командите са следните:

трябва да изтеглим firmware:
wget http://jusst.de/manu/fw/AFA/dvb-usb-af9015.fw_a-link
mv dvb-usb-af9015.fw_a-link /lib/firmware/dvb-usb-af9015.fw



hg clone -r 0f41fd7df85d http://linuxtv.org/hg/~anttip/af9015/
това изтегля точно определен source на проекта v4l-dvb

към него се прилага точно определен пач:
https://patchwork.kernel.org/patch/82494/raw/
пачът се прилага така: patch -p1 < ../път_до_изтегления_patch

след прилагане на пача, правим компилиране:
make
make install

(това при мен вървеше доста бавно - около 10 мин)
след успешно инсталиране трябва да се презаредят kernel drivers:
modprobe -r dvb_usb_af9015
modprobe -r dvb_usb

modprobe dvb_usb_af9015


така, включваме отново китайския "ефтинджос" и: о, чудо :

    [10554.516131] dvb-usb: found a 'Afatech AF9015 DVB-T USB2.0 stick' in cold state, will try to load a firmware
    [10554.516140] usb 1-1: firmware: requesting dvb-usb-af9015.fw
    [10554.557674] dvb-usb: downloading firmware from file 'dvb-usb-af9015.fw'
    [10554.611498] dvb-usb: found a 'Afatech AF9015 DVB-T USB2.0 stick' in warm state.
    [10554.611559] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
    [10554.612436] DVB: registering new adapter (Afatech AF9015 DVB-T USB2.0 stick)
    [10554.977944] af9013: firmware version:4.65.0
    [10554.981195] DVB: registering adapter 0 frontend 0 (Afatech AF9013 DVB-T)...
    [10555.002440] NXP TDA18218 successfully identified.
    [10555.002447] dvb-usb: Afatech AF9015 DVB-T USB2.0 stick successfully initialized and connected.
    [10555.008484] usbcore: registered new interface driver dvb_usb_af9015
    [10555.022955] usbcore: registered new interface driver hiddev
    [10555.023089] usbcore: registered new interface driver usbhid
    [10555.023157] usbhid: v2.6:USB HID core driver

сега идва най-хубавата част: VLC


направо пиша командата:

cvlc --programs=1,2,3,4,5,6 dvb-t:// :dvb-frequency=818000000 :dvb-bandwidth=8 :dvb-guard=16 :dvb-transmission=8 --sout '#duplicate{dst=standard{access=http,mux=asf,dst=:1234},select="program=1",dst=standard{access=http,mux=asf,dst=:1235},select="program=2",dst=standard {access=http,mux=asf,dst=:1236},select="program=3",dst=standard{access=http,mux=asf,dst=:1237},select="program=4",dst=standard{access=http,mux=asf,dst =:1238},select="program=5",dst=standard{access=http,mux=asf,dst=:1239},select="program=6",}'

това цялото на 1 ред...

с тази команда се указват всички параметри необходими за настройване към цифровото излъчване в София:

dvb-frequency=818000000
dvb-transmission=8
dvb-bandwidth=8
dvb-guard=16



ефекта е:
Стриймване на всички 6 канала едновременно, всеки на различен порт: от 1234 до 1239

остава само а си направите playlist със следните редове:
http://IP.NA.Linux:1234
http://IP.NA.Linux:1235
http://IP.NA.Linux:1236
http://IP.NA.Linux:1237
http://IP.NA.Linux:1238
http://IP.NA.Linux:1239

от всеки отделен компютър може да се гледа различен канал, по едно и също време

това е!

Поздрави на всички разбрали/неразбрали
Страници: [1]