Tommy Winther

twenty-first century code monkey

Tag: hdhomerun

Opsætning af Tvheadend

Med opsætningen af HDHomeRun Dual på plads er vi nu klar til at se på opsætningen af Tvheadend. Det anbefales at læse de tidligere indlæg for at få hele historien om mit setup og fremgangsmåde med. Det er desuden vigtigt at dvb_hdhomerun driveren er indlæst og userhdhomerun programmet kører inden du går igang med Tvheadend.

Inden vi kan komme igang med at opsætte Tvheadend skal programmet installeres. Jeg har valgt at bruge deres apt repository for at lette installationen og fremtidige opdateringer – det gøres lettest ved at bruge apt-add-repository således:

$ curl http://apt.tvheadend.org/repo.gpg.key | sudo apt-key add -
$ sudo apt-add-repository http://apt.tvheadend.org/stable
$ sudo apt-get update
$ sudo apt-get install tvheadend

Herefter kan vi kopiere den dvb-scan fil vi lavede tidligere ind i Tvheadends mappestruktur. På den måde er vi fri for at scanne efter kanaler i Tvheadend, da den kan indlæse oplysningerne fra filen.

$ cp dk-YouSee /usr/share/tvheadend/data/dvb-scan/dvb-c/dk-YouSee

Med disse indledende øvelser på plads er det tid til at åbne browseren til Tvheadends webinterface. Her kan vi blandt andet opsætte tunere, se EPG’en og planlægge optagelser. Webinterfacet findes typisk på http://localhost:9981

tvheadend-tvadapter-configuration

Første opgave i Tvheadend er at konfigurere TV Adapters under Configuration > DVB Inputs. Jeg har valgt at benytte de indstillinger i kan se på skærmbilledet herover, det virker bedst i mit setup. Det er også en god ide at ændre Adapter name, således de to adaptere ikke hedder det samme.

Herefter kan vi indlæse Multiplexes fra den dvb-scan fil vi lavede tidligere. Det gøres med et klik på Add DVB Networks by location hvorefter dk_YouSee findes i træstrukturen under Denmark. Tvheadend går så igang med at kontrollere de frekvenser vi tidligere scannede og finder samtidig de Services som de enkelte mux består af. Denne operation tager lidt tid, du kan følge med i status under Muxes awaiting initial scan som du finder i højre kolonne i skærmbilledet herover.

Når Tvheadend er færdig, dvs. antallet af Muxes awaiting initial scan er nul, kan du se de kontrollerede Multiplexes på fanebladet af samme navn og på Services fanebladet kan du de fundne kanaler. I mit tilfælde har den fundet en hel række TV og radiokanaler.

Disse services kan Tvheadend automatisk konfigurere som kanaler, som der herefter kan indlæses EPG data for og streames til XBMC. Dette gøres med et enkelt klik på Map DVB services to channels også i ovenstående skærmbillede. Tvheadend vil så igen scanne og oprette kanaler. Kanalerne kan ses og gives placering under Configuration > Channel/EPG.

YouSee’s EPG data in DVB-C strømmen er ganske fornuftig så jeg har ikke behov for at bruge XMLTV på nuværende tidspunkt. For at benytte disse EPG data skal over-the-air grabberen aktiveres. Den findes samme sted som Channel/EPG på fanebladet EPG Grabber. Jeg har aktiveret EIT: DVB Grabber og deaktiveret alle de andre og det fungerer fint.

Med disse trin på plads er det tid til at fyre op for XBMC og forbinde den til Tvheadend.

xbmc-pvr-setup2TV delen i XBMC benytter addons til at kommunikere med de forskellige TV servere. Til Tvheadend skal vi bruge Tvheadend HTSP Client. I addon indstillingerne indtastes adressen på Tvheadend serveren samt evt. brugernavn og adgangskode. Et fornuftigt eksempel, hvis Tvheadend kører på samme PC, kan ses herover.

Med addon’en installeret og konfigureret er det blot et spørgsmål om at aktivere TV delen i XBMC under de generelle indstillinger. Der findes desuden en hel række relaterede indstillinger som kan justeres efter behov.

xbmc-pvr-setup3Til sidst er det blot et spørgsmål om at finde TV i XBMC’s hovedmenu, læne sig tilbage og stene lidt TV 🙂

xbmc-pvr-setup4

Opsætning af HDHomeRun Dual

Som tidligere nævnt købte jeg for nyligt en HDHomeRun Dual netværkstuner fordi min YouSee boks mere eller mindre er stået af. Selvom opsætningen ikke tog mere end en aftenstid, så var det ikke uden besvær og et par aha’ øjeblikke. Der findes en hel del information om HDHomeRun på nettet, men det er svært at finde de rigtige oplysninger. Hermed et forsøg på at råde bod på det 🙂

Mit setup består af en Debian Wheezy linux server som også kører mit Tvheadend setup. Tvheadend kommunikerer med HDHomeRun tuneren via dvbhdhomerun driveren. I dette indlæg vil jeg fokuserer på at compile driveren og konfigurere HDHomeRun tuneren.

Inden vi starter skal der installeres lidt software vi skal bruge. Det antages du allerede har koblet HDHomeRun boksen til netværket og antennekablet.

sudo apt-get install hdhomerun-config libhdhomerun-dev cmake linux-source-3.2 cvs build-essential

hdhomerun_config værktøjt bruges til at konfigurer tuneren. Disse ændringer gemmes permanent i boksens firmware og er derfor kun nødvendige en gang. Først skal vi finde tuneren på netværket, det ser cirka sådan ud:

$ hdhomerun_config discover
hdhomerun device XXXXXXXX found at aaa.bbb.ccc.ddd

– XXXXXXXX er ID’et på boksen og skal bruges i de efterfølgende kommandoer.

Firmwaren opdateres let til  den nyeste version. Check nederst på denne side for opdaterede firmwares. Så vidt jeg kan gennemskue gemmes indstillingerne ved en firmware opdatering.

$ wget http://download.silicondust.com/hdhomerun/hdhomerun3_dvbtc_firmware_20130328.bin
$ hdhomerun_config XXXXXXXX upgrade hdhomerun3_dvbtc_firmware_20130328.bin

Nu er vi kommet til de vigtige indstillinger – jeg spildte en del tid inden jeg fandt løsningen – opsætningen af QAM modulation samt channel map. Som YouSee kunde skal modulation sættes til a8qam64-6875. Jeg fandt oplysningen vha. google, jeg ved ikke om man kan udlede den på en anden måde.
Den anden vigtige oplysning er at sætte channel map til eu-cable. Ganske åbenlyst, men svært at finde oplysninger om. Ved at ændre channel map udvides frekvensområdet til at scanne et meget større område under kanalsøgningen vi laver om lidt.

$ hdhomerun_config XXXXXXXX set /sys/dvbc_modulation a8qam64-6875
$ hdhomerun_config XXXXXXXX set /tuner0/channelmap eu-cable
$ hdhomerun_config XXXXXXXX set /tuner1/channelmap eu-cable

Med ovenstående indstillinger på plads er vi klar til at lave en kanalsøgning. I mit tilfælde scannede den omkring 1000 frekvenser og den tog en times tid. Outputtet gemmes i hdhomerun.log filen.

$ hdhomerun_config XXXXXXXX scan 0 hdhomerun.log

Når scanningen er fuldført kan vi med lidt awk magi omtrylle log filen til en dvb-scan fil som Tvheadend kan læse – på den måde undgår vi at scanne i Tvheadend.

$ awk '{if ($1 ~ /SCANNING/) print "\n" $2; else print $0}' hdhomerun.log | awk 'BEGIN { RS = "" ; FS = "\n" } { if (length($4) > 0) print "C " $1 " 6875000 NONE QAM64" }' > dk-YouSee

Det var opsætningen af HDHomeRun boksen, nu skal dvbhdhomerun driveren compiles. På min Debian Wheezy server kræver det lidt ekstra krumspring, mens det efter sigende skulle være lettere på en Ubuntu maskine. Jeg fulgte denne guide, kort fortalt er det nødvendigt at bygge noget af Linux kernen fordi Debian ikke inkluderer DVB headers som standard.

$ cd /usr/src
$ tar xf linux-source-3.2.tar.bz2
$ cd linux-source-3.2
$ cp /boot/config-3.2.0-4-686-pae .config
$ make oldconfig
$ cp /usr/src/linux-headers-3.2.0-4-686-pae/Module.symvers .
$ make prepare scripts

Med det på plads kan vi fokusere på dvbhdhomerun. Først checkes koden ud og driveren compiles. modprobe linjen indlæser driveren i Linux kernen – for at gøre det automatisk under opstart kan en linje med dvb_hdhomerun tilføjes i /etc/modules.

$ cd /usr/src
$ cvs -z3 -d:pserver:anonymous@dvbhdhomerun.cvs.sourceforge.net:/cvsroot/dvbhdhomerun co -P dvbhdhomerun
$ cd dvbhdhomerun/kernel
$ sudo make install
$ sudo modprobe dvb_hdhomerun

Anden halvdel af dvbhdhomerun er et såkaldt user space program som kommunikerer med driveren. Programmet indlæser nogle få indstillinger fra /etc/dvbhdhomerun filen. Min ser således ud (XXXXXXXX skal udskiftes som tidligere):

[XXXXXXXX-0]
tuner_type=DVB-C
[XXXXXXXX-1]
tuner_type=DVB-C

Endelig compiles user space programmet således:

$ cd ../userhdhomerun
$ make
$ sudo build/userhdhomerun

Sidste linje starter programmet og du skulle gerne se en del log output omkring kommunikation med HDHomeRun tuneren. Med driveren indlæst og user space programmet startet er denne del af guiden slut. Næste gang vil jeg beskrive hvordan jeg installerer Tvheadend og får den til at kommunikere med HDHomeRun gennem dvbhdhomerun driveren.

XBMC, Tvheadend og HDHomeRun Dual

Endelig, endelig, endelig!

Min YouSee settop boks, Samsung SMT-H3106, er langt om længe begyndt at defekte – sporadiske udfald hvor HDMI signalet simpelthen forsvinder. Det holder jo ikke en meter, så jeg har fluks investeret i en HDHomeRun Dual – og på trods af at jeg ikke overhovedet har savnet den manglende PVR funktionalitet i YouSee boksen, så er det nu meget lækkert lige at kunne “bånde” Wheeler Dealers – eller endnu en af de uendelige genudsendelser 😉

Denne pludselige nyinvestering betyder samtidig også at jeg langt om længe har fået mulighed for at bruge XBMC’s PVR funktionalitet i samarbejde med Tvheadend TV streaming serveren – og ind til videre er jeg ganske imponeret. Der er altid lidt børnesygdomme som skal luges ud men mit setup fungerer ganske godt og WAF (Wife Acceptance Factor) er fortsat høj!

Jeg vil forsøge at dokumentere hvordan jeg har skruet mit setup sammen hen over den nærmeste fremtid, for det har ikke altid været lige let at finde de oplysninger og den dokumentation jeg har haft behov for. Grundstenen i mit setup er min Debian Wheezy linux server som kører Tvheadend og kommunikerer med HDHomeRun boksen via dvbhdhomerun. Fra Tvheadend streamer jeg så til mit ASRock mediecenter i TV rummet og til min OUYA konsol i stuen. På papiret et måske forholdsvis simpelt setup, men især XBMC på OUYA er en kilde til grå hår på trods af jeg bruger libstagefright build’et.

Hvordan ser jeres XBMC PVR setup ud? – har i nogle tips til HDHomeRun setup?

© 2017 Tommy Winther

Theme by Anders NorenUp ↑