twenty-first century code monkey

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.

11 Kommentarer

  1. Claus

    Hej Tommy

    Jeg er I gang med at lave nogen li’ din opsætning af TVheadend og HDhomerun.
    Men jeg har gjort det på min QNAP server.

    Jeg har dog et par problemer. Jeg har ikke kunne ‘auto’ ligge alle kanalerne ind. Jeg har manuelt lagt nogle ind. og her kan jeg fint optage tv fra.

    Kun du evt. sende mig din dk-yousee fil, da jeg ikke rigtig hat fået en lavet?

    Har du gjort noget specielt for at få EPG til at virke, PT vil den ikke finde de kanaler jeg har lagt ind.
    Jeg tror dog det er fordi mine kanaler er lagt ind manuelt.

    Har du nogle guldkorn tager jeg gerne imod!!

    Hilsen
    Claus

  2. Glenn

    Jeg har en mini pc koblet til tv. Har HDhomeRun tuner box til Stofanet .jeg har svært ved at kører mine tv programmer ind i XBMC . Så jeg kan se tv og optage live programmer.
    Har kørt med windows medier center men der er nogle tv programmer jeg ikke kan kører ind. Så nu vil jeg prøve XBMC.
    Hvad gør jeg ?

  3. HQgeN

    Går selv og leger med tanken om at sætte det en HDhomerun op til mit media center. Har du oplevet problemer med MPEG-4 ?

  4. Tommy

    MPEG-4 spiller fint for mig. Jeg er generelt meget godt tilfreds med mit setup og savner overhovedet ikke min YouSee boks 🙂

  5. Brian

    Hej

    Tak for guíde.
    Har du mod på at lave en ny guide, så sådan en som mig, der aldrig har prøvet Linux før, ikke skal gætte mig, til det I ved i forvejen. 🙂

    Brian

  6. BrianMarkussen

    Hej igen.

    Jeg er kommet rigtig langt nu, faktisk så langt at det hele virker. MEN Tvheadend tror at min tuner er en ATSC
    Jeg har rettet alle steder jeg kan tænke der kunne være fejl. Men ak, den tror stadig jeg er fra Usa.

    Hår du et forslag.
    Dette er min nano /etc/dvbhdhomerun
    [1220A4C0-0]
    tuner_type=DVB-C
    [1220A4C0-1]
    tuner_type=DVB-C

    Brian

  7. Tommy

    Hej Brian,
    Fedt min guide kan bruges 🙂
    Det er noget tid siden jeg var igang med det projekt, men jeg tænker det måske kan skyldes at
    sudo modprobe dvb_hdhomerun
    er blevet kørt før /etc/dvbhdhomerun er rettet til?

    Nu du har rettet /etc/dvbhdhomerun til, så prøv at genindlæse dvb_hdhomerun modulet med følgende:

    sudo modprobe -r dvb_hdhomerun
    sudo modprobe dvb_hdhomerun

    Prøv og check outputtet fra
    dmesg
    min skriver noget i stil med

    [ 1838.649770] hdhomerun: creating dvb device for XXXXXXXX-0
    [ 1838.649819] DVB: registering new adapter (HDHomeRun)
    [ 1838.858742] DVB: registering adapter 0 frontend 0 (HDHomeRun DVB-C)...
    [ 1838.858859] HDHomeRun0: DVB Frontend registered
    [ 1838.858862] HDHomeRun0: Registered DVB adapter0
    [ 1838.858972] hdhomerun: device /dev/hdhomerun_data0 created
    [ 1838.859019] hdhomerun: userhdhomerun connected
    [ 1838.859024] hdhomerun: creating dvb device for XXXXXXXX-1
    [ 1838.859058] DVB: registering new adapter (HDHomeRun)
    [ 1838.859308] DVB: registering adapter 1 frontend 0 (HDHomeRun DVB-C)...
    [ 1838.859353] HDHomeRun1: DVB Frontend registered
    [ 1838.859354] HDHomeRun1: Registered DVB adapter1
    [ 1838.859420] hdhomerun: device /dev/hdhomerun_data1 created
    [ 1838.859459] hdhomerun: userhdhomerun connected

  8. Brian

    Hej

    Den skriver kun:

    4.748809] HDHomeRun: Begin init, version 0.0.15
    [ 4.748962] HDHomeRun: Waiting for userspace to connect
    [ 4.748965] HDHomeRun: End init

    Hmm 🙂

    Jeg slettede alt tvhedend igår, med det resultat, at den ikke ville finde mine tunere 🙂

    Brian

  9. Ivan Houe

    Hej jeg har lidt problemer med denne kode >
    awk ‘BEGIN { RS = “” ; FS = “\n” } { if (length($4) > 0) print “C ” $1 ” 6875000 NONE QAM64″ }’ > dk-YouSee
    Når jeg har trykket den ind står den bare stille og kommer ikke videre. Hvad gør jeg forkert / har gjort forkert?. På forhånd tak for en fed Guide :D. (Prøver lige pt at installer på Debian 7.5)

  10. ivan

    Hej jeg har lidt problemer med denne kode >

    awk ‘BEGIN { RS = “” ; FS = “\n” } { if (length($4) > 0) print “C ” $1 ” 6875000 NONE QAM64″ }’ dk-YouSee

    Når jeg trykker den ind kommer den ikke videre hvad gør jeg evt forkert? køre med Debian 7.5.
    På forhånd tak for en fed guide :D.

  11. Marco

    Thx from Germany Tommy I appeciated Your guide tak:))

© 2024 Tommy Winther

Tema af Anders NorenOp ↑