Saturday, 1 October 2011

TP-LINK WR1043ND OpenWRT DVB-T with TDA18218 chipset - dvb-usb-af9015 with MumuDVB streaming MindigTV - HowTo + Firmware

Hello everyone. WR1043ND with OpenWRT is a great solution for many home usage, like file sharing, downloading torrents and much more. This howto adds another great feature to our beloved Router.
In this howto I've created a Set-Top-Box (STB) like feature with a cheap USB DVB-T receiver.

My DVB-T receiver (TDA18218 chipset): http://www.dealextreme.com/p/usb-dvb-t-tv-dongle-with-remote-8309 I had to buy a "MCX to COAX" adapter cable too from ebay.



The stuff: http://dl.dropbox.com/u/531976/Linux/OpenWRT/openwrt-2.6.39.4-dvb-usb-af9015.tar.gz
OpenWRT Firware (kernel 2.6.39.4): https://dl.dropbox.com/u/531976/Linux/OpenWRT/openwrt-ar71xx-generic-tl-wr1043nd-v1-squashfs-factory.bin

[ OpenWrt Firmware Attitude Adjustment (r31858) / LuCI Trunk (trunk+svn8683) ]
       

Screenshot with 4 unicast http stream:
http://dl.dropbox.com/u/531976/Linux/OpenWRT/mindigtv001.png

Testing environment:
http://dl.dropbox.com/u/531976/Linux/OpenWRT/mindigtv002.jpg
http://dl.dropbox.com/u/531976/Linux/OpenWRT/mindigtv003.jpg



README:

0, Read this through first. I have a DVB-T receiver with TDA18218 chipset, like this: "http://www.dealextreme.com/p/usb-dvb-t-tv-dongle-with-remote-8309". It's quite cheap. I had to bux a "MCX to Coax" adapter cable too. (Check google)

1, Backup your stuff and Flash your TP-LINK WR1043ND with OpenWRT latest firmware
http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-tl-wr1043nd-v1-squashfs-factory.bin

2, Install required openwrt packages (plus recommended packages: nano htop screen):
opkg update; opkg install kmod-usb2 kmod-usb-core usbutils libpthread

3, These modules are compiled for linux-2.6.39.4. You need to place them to /lib/modules/2.6.39.4
scp modules/* root@192.168.1.1:/lib/modules/2.6.39.4/

4, Consider to use my script to load these modules (startdvb.sh). While loading these modules they have to be loaded in a specific order.
The script can (and will) download the needed firmware for af9015: http://palosaari.fi/linux/v4l-dvb/firmware/af9015/5.1.0.0/

5, To test if everything it's in place check "dmesg" and "lsusb" output

6, Install MumuDVB to stream. Here is a (little bit outdated) howto: http://mumudvb.braice.net/mumudrupal/node/36
opkg install mumudvb_1.6.1-openwrt-1_ar71xx.ipk

7, To start streaming with mumudvb use the following command (you should create an init script for it or something):
mumudvb -d -c /root/<MUMUDVB-CONFIG>.conf
screen -dmS mumudvb mumudvb -d -c /etc/mumudvb/mindigtv-mux-c.conf # check running screens with "screen -ls" command

8, Enjoy! Comments are welcome!


### More info ###
"modules_install" - directory contains few packaged modules. The thing is 2 needed modules are missing from these packages (mt2060.ko and qt1010.ko) but I provided them in the "modules" dir.
"mindigtv" - is a directory what contains mumudvb config files configured to a Hungarian DVB-T service, called MindigTV (http://mindigtv.hu/)

You can auto tune with a mumudvb config called "mindigtv-auto.conf".
When you start mumudvb with this config, it will auto generate the required configuration file (pid and id_ps).
You can copy it from: "/var/run/mumudvb/mumudvb_generated_conf_card0" for futher usage (creating own configs)


FILE LIST:

tree -h
.
├── [4.0K]  mindigtv
│   ├── [ 119]  mindigtv-auto.conf
│   ├── [ 673]  mindigtv-mux-a.conf
│   ├── [  79]  mindigtv-mux-b.conf
│   └── [ 694]  mindigtv-mux-c.conf
├── [4.0K]  modules
│   ├── [ 27K]  af9013.ko
│   ├── [115K]  dvb-core.ko
│   ├── [ 13K]  dvb-pll.ko
│   ├── [ 42K]  dvb-usb-af9005.ko
│   ├── [4.1K]  dvb-usb-af9005-remote.ko
│   ├── [ 32K]  dvb-usb-af9015.ko
│   ├── [ 27K]  dvb-usb.ko
│   ├── [6.1K]  mt2060.ko
│   ├── [ 38K]  mxl5005s.ko
│   ├── [ 14K]  mxl5007t.ko
│   ├── [6.9K]  qt1010.ko
│   ├── [ 27K]  rc-core.ko
│   ├── [6.9K]  tda18218.ko
│   └── [ 78K]  tda18271.ko
├── [4.0K]  modules-installer
│   ├── [ 11K]  kmod-dvb-usb_2.6.39.4-1_ar71xx.ipk
│   ├── [ 38K]  kmod-dvb-usb-af9005_2.6.39.4-1_ar71xx.ipk
│   ├── [2.4K]  kmod-dvb-usb-af9005-remote_2.6.39.4-1_ar71xx.ipk
│   └── [ 86K]  kmod-dvb-usb-af9015_2.6.39.4-1_ar71xx.ipk
├── [ 46K]  mumudvb_1.6.1-openwrt-1_ar71xx.ipk
├── [2.8K]  README
└── [1.4K]  startdvb.sh


My Blog: ocsovszki-dorian.blogspot.com

Updated: 2011-11-03



Thanks for reading. Comments are welcome!

40 comments:

  1. és akkor ezt hogy lehet nézni?:)

    ReplyDelete
  2. VLC-vel érdemes. Ez unicast módon küldi HTTP betokozással. Például: "http://192.168.1.1:8083" általánosabban fogalmazva: "http://routeripcim:port"

    ReplyDelete
  3. Oké, köszi... és aki nem infós és nem ért hozzá, az hogy tud tv-t nézni? :D

    ReplyDelete
  4. Ez kell hozzá:
    TP-LINK WR1043ND Router
    DVB-T vevő, például ez: http://www.dealextreme.com/p/usb-dvb-t-tv-dongle-with-remote-8309
    Ha ilyen vevő akkor egy MCX to coax átalakító kábelecske
    DVB-T Antenna: nekem egy ilyen van: http://www.direktdigital.eu/index.php?page=shop.product_details&flypage=flypage&product_id=298&category_id=27&option=com_virtuemart&Itemid=2&lang=hu

    Adókat és frekvenciákat itt látni: http://hu.wikipedia.org/wiki/MinDigTV

    Konkrétan nézni meg ott van a hozzászólás egyel feljebb: VLC-vel

    :)

    ReplyDelete
  5. Hello!

    Analóg USB-s tunert nem lehet rákötni? Ill. milyen típussal lehetne még összehozni? Üdv.

    ReplyDelete
  6. Üdv!

    Ha a kernel támogatja, és megvannak a kellő modulok is hozzá, akkor bármilyen eszközt ugyan úgy lehet használni, mintha PC-re volna kötve. :)

    ReplyDelete
  7. Hello!

    Köszi a gyors választ, szóval akkor számomra nem. Na mindegy. Üdv.

    ReplyDelete
  8. Hello!

    Gratulálok a megoldásához és a publikálásához.
    Ha van rá lehetőség kérlek bővítsd ki a HowTo-t más chipkészlettel és tuner chippel rendelkező DVB-T usb adapter életre keltésérének leírásával, OpenWRT-vel AR71XX-alatt. Hatalmas segítség lenne a nagy számú XBMC és Tvheadend felhasználóknak. Jól jönne egy XMLTV HowTo is OpenWRT-hez szintén AR71XX-alatt a Tvheadendhez.

    Üdv. Ati

    ReplyDelete
  9. Hali,

    Tetszik :-)

    Atihoz hasonloan nekem is mas DVB-T vevom van es MR3220-as router.

    Esetleg tudnal segiteni, hogy hogyan forditottad a modulokat (nem kell a legelejetol, a trunk checkout megvolt, a firmware es package-ek lefordulnak/elkeszulnek)?

    Koszi,

    /sza2

    ReplyDelete
  10. Üdv,

    Keresd ki a modul pontos nevét, majd a dvb_generate.mk perl scripttel tudod a dvb.mk-t generálni.

    Itt egy kicsit outdated howto: http://mumudvb.braice.net/mumudrupal/node/36

    ReplyDelete
  11. Hello !

    Köszönjük, ezt megoldjuk valahogy, viszont az XMLTV-hez nagyon jó lenne egy HOWTO esetleg egy kész fordított csomag AR71XX-hez. Kérlek, ha tudsz segíts!

    Köszi.

    Ati

    ReplyDelete
  12. Hi,

    Koszi! (Meg nem volt idom, de hamarosan kiprobalom)

    (Bar nem OpenWRT-s de) kozben PC-n beizzitottam a mumudvb-t, viszont a MUX-A-s dolgok nem igazan jonnek (arra tippelek, hogy a HD-s adasok miatt) - csak szurke hatter, neha kockasodas.

    A MUX-C (szoval pont az "ertelmesebb" adasok) megy szepen.

    OpenWRT-vel nincs ilyen tapasztalat?

    /sza2

    ReplyDelete
  13. @Ati:
    Más chipkészletű eszközt a "generate_dvbmk.py" scripttel lehet. ( http://code.google.com/p/mediawrt/ )
    Milyen csomagokra gondolsz? Amik vannak azokat beraktam a tar.gz-be.

    @sza2:
    Nincs ilyen gond, tökéletesen működött a HD adás is. Legújabb VLC-vel nézve.

    ReplyDelete
  14. Üdv.

    Mivel XBMC-t használok frontendként és Tvheadend-et backendként. Amihez nagyon szépen köszönöm a Tvheadend portolását AR71XX-hez, viszont nagy szükségem lenne XMLTV-re a teljes EPG-hez. Nagyon megköszönném ha valaki portolná az XMLTV-t is AR71XX-hez.

    Előre is köszönöm.

    Ati

    ReplyDelete
  15. u.i Esetleg írna howto-t hogyan lehet ezt megtenni, mert sajnos folyamatosan változnak az adatbázis struktúrák ahonnan az XMLTV adott grabbere szerzi az XML előállításához szükséges adatokat. Ezt követik az XMLTV grabberének fejlesztői is. Így igazából mindig csak a legfrissebb Nightly snapshot működik. Tehét az adott Nightly snapshot-ból forgatott verzió csak ideig óráig (napok, hetek) működőképes, így előfordulhat, hogy 1 hét múlva "nyithatok megint a nulláról". :)

    Amennyiben van rá lehetőség készíts egy HowTo-t a source-ból való alkalmazás, telepítésére, portolására AR71XX-hez: :)

    Ati

    ReplyDelete
  16. Ami a mas DVB-T vevovel valo mukodtetest illeti, az enyemmel (DiBcom 7070) pont belefutottam egy problemaba (mas kartyakat be-X-elve megy...).

    A menuconfig-gal be lehet allitani az eszkozt, a kernel es a modulok le is fordulnak hibatlanul, de a vegen olyan modulokat szeretne belepakolni a csomagokba, amit nem jonnek letre.

    Szoval azt hiszem melyebbre kell asni.

    Ha valaki erre jar, es van otlete...

    /sza2

    ReplyDelete
  17. Vegre sikerult. Igaz az egesz OpenWRT-t ujra kellett forditani, mert bar sikerult modulokat krealni, a dolog segmentation fault-tal vegzodott.

    Szoval mukodik a Sony PlayTV tunerrel.

    Es mivel a cucc dual tuneres, MUX-A + MUX-C megy egyutt, akar az osszes (7 TV + 4 radio) csatorna mehet egyszerre.

    /sza2

    ReplyDelete
  18. Sziasztok, van arra lehetőség, hogy az openwrt-s router által stream-elt "adást" lássa egy DLNA-s készülék? (tehát nem én konfigolom a vevőt) Ha nem lehet megoldani, vagy nagyon bonyolult akkor hagyjuk.
    Zzz

    PS:
    @/sza2 (ME?)

    ReplyDelete
  19. Úgy néz ki nem lehetetlen és ez egy jó ötlet tényleg!

    http://wiki.openwrt.org/doc/uci/ushare

    ReplyDelete
  20. Szia!

    Szerinted ezt a DVB-T műsorszórást meg lehetne oldani egy NAS-on is, pl egy Zyxel NSA-210 -en is?

    Üdv:
    Robi

    ReplyDelete
  21. Meg, ha:
    - Linux van
    - Kernelmodulok megvannak
    - Megy a mumudvb

    Ez akár egy androidos telefonon is működne.

    ReplyDelete
  22. Szia!

    Olyan kérdésem lenne, hogy a router WAN portjára küldi ki a jelet vagy a 4 LAN portra. Esetleg be is lehet állítani?

    Üdv:
    Gábor

    ReplyDelete
  23. Hello,

    Természetesen WAN-ra is lehet küldeni, az eredeti tervem az volt, csak feltöltési sávszélem volt gyér, így nem lett belőle semmi, de LAN-on tökéletesen működik.

    mumudvb a konfigom szerint a 0.0.0.0 címre küldi a streamet, azaz mindenhová. Mivel TCP alapú a jelenlegi konfigom, csak akkor megy feltöltés, ha valaki becsatlakozik (akár WANról is). Tűzfalnál be kell engedni a megadott portokat.

    Üdv,
    G.

    ReplyDelete
  24. Hi, thank you for this tutorial.
    However with the latest trunk, the mumudvb results in Segmentation fault.
    I'm using same hardware as you are. Could you please check which openwrt revision are you using? Could you perhaps post a link to it?
    Thank you.

    ReplyDelete
  25. Szia,

    Hasonló árkategóriájú USB vevőt, ami együttműködik Linux-szal, DVB-C normával digi kábelhez tudnál-e esetleg ajánlani?
    Az általad használt DVB-T-s vevővel nem lehet előfizetés után sem kódolt adásokal venni igaz?

    Üdv
    Norbi

    ReplyDelete
  26. Hello,

    DVB-C vevot keress neten, sajnos nem ismerek ilyet. Linux compatible dvb-c receiver stb kulcsszoval.

    Scrambled DVB-T-t is lehet a routerrel lejatszani, de kell hozza egy kartyaolvaso (es termeszetesen mindigtv kartya is) aztan talan meg a mumudvb-ben kell megkeresni a megfelelo beallitast.


    elmeletileg mukodne minden ugyan ugy, mint egy Linuxos PC-. Amint irtam egy dolog kell a kernelhez megfelelo driver.


    Udv,
    G.

    ReplyDelete
  27. Szia,

    A legújabb OpenWRT snapshottal próbáltam telepíteni a drivereket, de ehhez a verzióhoz már 3.2.14-es kernel van, így ez gondolom nem fog együttműködni az általad felrakott modulokkal.
    Kérdésem, hogy meg tudnád mondani, hogy ezeknek a moduloknak a forráskódját hol találom meg, hogy újrafordíthassam? Vagy ami még jobb lenne: esetleg tudnál felrakni egy openwrt image-et, ami nálad működött a modulokkal?

    Előre is köszi,
    Norbi

    ReplyDelete
  28. Üdv,

    Köszi a kommented. Amint lesz időm megpróbálom újrafordítani az egészet. Eléggé reszelni kellett, hogy egyáltalán ez is működjön.

    Ha nem fontos számodra a legfrissebb snapshot image használata, akkor próbáld ki régebbivel. ( Linux WR1043ND 2.6.39.4 #2 Fri Sep 30 10:55:31 UTC 2011 mips GNU/Linux )

    Üdv,
    Dorián

    ReplyDelete
  29. Szia,

    Igen, jó lenne ez a megoldás is, de sehol nem találok korábbi image-et. Tudnál egy linket küldeni?

    Köszi.

    ReplyDelete
  30. Üdv!

    Remek leírás! Egy kérdésem van csak; Lehet-e felhasználónév, jelszó
    párossal ellátni a csatornákat?

    Válaszod előre is köszönöm!

    ReplyDelete
  31. Ma újrafordítom a legfrissebbhez és automatizálom, hogy mindig legyen "hétrekész" (naprakész után, szabadon).

    Felhasználónév/jelszó védelem?
    Mumudvb manuáljában keresgélj.

    ReplyDelete
  32. Hi there,
    could you be please more specific about how you compiled modules and mumudvb? I have ASUS WL-500GP and Im kinda stuck at it. I have openwrt installed (2.6.32.xx kernel) but i dont know what to do next. Could you please help me? Thanks

    ReplyDelete
  33. Hello,

    Try to compile openwrt + modules + mumudvb for yourself using these howto(s):
    http://wiki.openwrt.org/doc/howto/build
    http://mumudvb.braice.net/mumudrupal/node/36


    I'm trying now to get it work with the latest snapshot.

    ReplyDelete
  34. Is there any chance you would do "HowTo" for this? Never done anything like this, probably I would be capable to compile openwrt by this howto, but modules + mumudvb guides is kinda hard for me to get it done.
    Thanks man

    ReplyDelete
  35. Hi,
    i kinda ended up with same router as you have, someone mentioned in discussion that latest trunk isnt working with your guide. Could you upload somewhere trunk you used for your guide?

    Thanks a lot man

    ReplyDelete
  36. Hi, is there something new about openwrt trunk? I would really appreciate it. Thanks NoreiT

    ReplyDelete
  37. Hello everyone!

    I've managed to find my build environment's OpenWRT Firmware. I've updated the HowTo too:

    https://dl.dropbox.com/u/531976/Linux/OpenWRT/openwrt-ar71xx-generic-tl-wr1043nd-v1-squashfs-factory.bin

    uname -a
    Linux OpenWrt 2.6.39.4 #9 Thu Sep 29 14:54:54 UTC 2011 mips GNU/Linux

    Enjoy!

    ReplyDelete