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.