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.
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
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 ?
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 ?
MPEG-4 spiller fint for mig. Jeg er generelt meget godt tilfreds med mit setup og savner overhovedet ikke min YouSee boks 🙂
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
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
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
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
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)
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.
Thx from Germany Tommy I appeciated Your guide tak:))