Netceiver
Beschreibung
Vorwort: Diese Wiki-Seite befindet sich noch im Aufbau
Der Netceiver ist ein Hardwareprodukt erstellt von der Firma Baycom, vertrieben von Reel-Multimedia. Es stellt via IPV6-Multicast DVB-Daten über das Netzwerk bereit und kann vom VDR als Eingabedevice verwendet werden.
Der Netceiver hat drei Steckplätze für Tuner, es gibt DVB-S, DVB-S2, DVB-T und DVB-C Tuner, die DVB-S und DVB-S2 gibt es sogar als Dualtuner, so kann ein "Vollausbau" bis zu sechs Tuner beinhalten. Dank IPV6 und Multicast muss auf einem Client nur ein Kernelmodul sowie ein Dämon laufen.
Es gibt auch VDR-Plugins die aber erstmal nicht zwingend nötig sind, letztendlich sind die Plugins "nur" GUIs für die Kommandozeilentools netcvdiag und netcvupdate.
Achtung - offenbar unterstützt der Netceiver die Prioritätssteuerung des VDR (noch) nicht. Befinden sich mehrere VDRs im Netz, kann ein im Live-Betrieb laufender VDR den letzten Tuner belegen, sodass eventuell anstehende Aufnahmen fehlschlagen. Siehe dazu auch hier.
Anforderungen
Hardware
Netceiver
Man kann sich auch einen Adapter basteln um ein herkömmliches ATX-Netzteil verwenden zu können. Dazu benötigt man auf der Netceiver-Seite einen Molex 26-48-1085 (3.96mm) und auf der ATX-Seite eine ATX-Buchse.
- Einkaufsliste bei Farnell mit Bestellnr.
- Molex Stecker Bestellnr.: 143161
- Molex Crimpkontakte: 1013097
- ATX-Buchse Bestellnr: 8116202 nicht bestätigt
- ATX-Buchse Crimpkontakte Bestellnr.: 8116067 nicht bestätigt
Die Netceiver-Stromversorgung kann aus dem Schaubild ersehen werden. Ihr benötigt vom ATX-Netzteil nur 12V, 5V, 3,3V und GND. Bedenkt bitte auch, das wenn Ihr ein ATX-Netzteil nur für den Netceiver verwenden wollt, an eurem ATX-Adapter Pin14 mit GND zu verbinden (am besten mit einem Schalter). Normalerweise regelt nämlich ein Motherboard den Schaltzustand, da Ihr aber nur einen Netceiver betreibt, fehlt diese "Logik".
Clients
- min. 100Mbit Netzwerk besser 1GBit.
- VDR oder eine andere unter Linux lauffähige DVB-Software.
sonstiges
- Switch; empfehlenswert ist ein 1Gbit Switch bsw. Linksys SLM2005 oder SLM2008
Software
Die Softwareanforderungen sind relativ gering, für VDR existiert ein Plugin, welches als erstes geladen werden sollte.
- VDR oder eine andere unter Linux lauffähige DVB-Software.
- das mcli-Plugin, dieses kann in aktuellster Fassung via svn gezogen werden.
svn co https://svn.baycom.de/repos/vdr-mcli-plugin
Alternativ kann man auch mit einem Kernelmodul und einem Dämon auf den Netceiver zugreifen, somit können auch andere DVB-taugliche Software auf den Netceiver zugreifen (bspw. Kaffeine).
- Kernelmodul: dvbloop.ko
- Kernelmodul: ipv6.ko
- Dämon: mcli
MAC OS X
Man kann den Netceiver unter OSX wie folgt nutzen.
Man benötigt xcode
svn co https://svn.baycom.de/repos/vdr-mcli-plugin
cd vdr-mcli-plugin/mcast/client
make
cd ..
cd netcv2dvbip
make
danach noch aus dem client-verzeichnis die libmcli.dylib nach netcv2dvbip kopieren
danach lässt sich das Programm mit
sudo ./netcv2dvbip
starten
VDR
- EPGSCAN sollte abgeschaltet sein, da der VDR die unangenehme Eigenschaft hat, sich alle nutzbaren Tuner zu "krallen". Wer mehr als ein Client hat, wird Probleme bekommen.
- Ein beliebiges Ausgabedevice sollte vorhanden sein (Xine, softdevice, FF-Karte usw.)
- Der VDR kann ganz ohne Kernelmodul und ohne speziellen Daemon direkt auf den NetCeiver zugreifen. Hierfür muss das Mcli-Plugin aus dem Subversion-Repository unter http://svn.baycom.de/repos/vdr-mcli-plugin verwendet werden. In diesem Repository befindet sich auch der Quellcode aller Tools und optionalen Daemons.
Kernelmodul
Kernelversion kleiner 2.6.26
Die Original-Quellen des dvbloop-Modules kompilieren nur sauber auf Kernel-Versionen kleiner 2.6.26!
- Das Kernelmodul dvbloop.ko ist via Subversion hier zu bekommen:
svn co https://svn.baycom.de/repos/dvbloop/
Es wird außerdem der passende Linuxheader zum Kernel benötigt, nachdem die Software via Subversion geladen wurde, reichen folgende Befehle aus:
cd dvbloop make KDIR=/usr/src/linux make install depmod -ae
Beachtet bitte, das Ihr die Linuxheader passend zum euren Kernel installiert habt und vor dem kompilieren des dvbloop-Modules im Kernelheader-Verzeichnis ein "make modules_prepare" ausführt.
Kernelversion größer 2.6.26
Da die Original-Quellen nur auf alten Kernels (kleiner 2.6.26) kompilieren, muss man sich bei einer Distribution mit neuem Kernel anders behelfen. Zuallererst werden die aktuellen DVB-Treiber geladen:
hg clone http://linuxtv.org/hg/v4l-dvb
Nach dem Auschecken, muss der Quellcode für das dvbloop-Modul per Patch von Razorblade angepasst werden.
cd v4l-dvb zcat ../dvbloop-s2api-0.3.diff.gz | patch -p1
Gegebenenfalls (keine sonstigen DVB-Devices im System) kann man noch per "make menuconfig" alle anderen Treiber außer dvbloop deaktivieren.
Nun wird mit "make" und "make install" alles kompiliert und installiert.
Dämon
Mcli ist der eigentliche Dämon, es gibt mcli für zwei verschiedene Libc Versionen
- für Libc-2.4 hier (bspw. Ubuntu 7x/8x, Debian Lenny etc):
svn co svn://reelbox.org/precompiled/
Nachdem ihr via Subversion die Daten geladen habt reicht ein
gunzip mcli.gz
- für Libc-2.3 (bspw Debian Etch) hier die statisch gelinkte Version:
http://www.baycom.de/download/netceiver/netceiver_tools_static_20081113.tgz
Per Default macht der mcli alle vorhandenen Tuner in der DVB-API sichtbar. Bei mehreren Clients sollte das etwas eingeschränkt werden. Mit den Kommandozeilenoptionen --dvb-s/--dvb-s2/--dvb-t/--dvb-c kann für jeden Tunertyp eine Maximalzahl angegeben werden. Da das DVB-API-Subsystem kein richtiges Hotplug beherrscht, sollte man die Anzahl der Tuner nicht verringern, wenn noch eine DVB-Anwendung läuft. Zu viel angelegte DVB-Geräte wird man am besten los, wenn das dvbloop-Modul entladen und neu geladen wird.
Optionale Pakete
Die Netcvtools bestehen aus zwei Programmen:
- netcvdiag: Kommandozeilentool, sehr hilfreich zur Diagnose
- libxml2 wird benötigt
- netcvupdate: Kommandozeilentool, ermöglicht es, Firmwareupdates zu installieren oder div. Einstellungen zu laden. Außerdem ist ein Neustart des Netceiver möglich
- tnftp wird benötigt (IPv6-fähiger FTP-Client)
Die Netcvtools gibt es hier
svn co svn://reelbox.org/precompiled/
Die beiden Programme netcvupdate und netcvdiag müssen via gunzip entpackt werden. Statisch gelinkte Versionen sind in dem oben angegebenen mcli-Paket ebenfalls enthalten.
Installation in eine VDR Umgebung
In der Vergangenheit war es notwendig, sowohl ein Kernelmodul als auch einen Dämon zu installieren, um auf den Netceiver zugreifen zu können.
Das hatte Vor- aber auch Nachteile, die Nachteile waren bspw. das man den VDR-Start entsprechend verzögern musste, bis das Modul und der Dämon gestartet waren. Diese und andere Tatsachen aber, haben gerade Neulinge (und auch Profis) manchmal zur Verzweifelung getrieben.
Wir VDR Nutzer haben es nun einfacher da es nun ein Plugin gibt.
Das Mcli-Plugin erlaubt es uns, ohne Installation irgendwelcher Module den Netceiver zu nutzen. Und mehr noch, wir können Features wie bspw. Multi-Transponder-Decryption nutzen, also das gleichzeitige entschlüssen von Sendern die auf unterschiedlichen Transpondern liegen.
Kompilieren
Das Plugin gibt es via svn hier:
svn co https://svn.baycom.de/repos/vdr-mcli-plugin
Im Yavdr Launchpad Repository gibt es auch ein Ubuntupaket, welches sich leicht auf Debian umsetzen lassen sollte.
Zum Kompilieren wird folgendes benötigt:
cdbs, vdr-dev, gettext und libxml2-dev
um die Tools netcvdiag bzw. netcvupdate nutzen zu können, wird außerdem noch tnftp benötigt.
Plugin-Parameter
Das Plugin besitzt dabei folgende Paramater:
--ifname <auf welches Netzwerkdevice soll das Plugin nach einem Netceiver suchen, wichtig bspw. für VLAN> --port <port> (default: -port 23000) --dvb-s <num> --dvb-c <num> --dvb-t <num> --atsc <num> --dvb-s2 <num> <damit kann man die Nutzbaren Tuner limitieren, bspw "--dvb-S2 1" limitiert die Nutzung von einem DVB-S2 Tuner, auch wenn mehrer vorhanden sind (default: 8) --mld-reporter-disable --sock-path <filepath>
Einrichten eines VLAN
Es empfiehlt sich, bspw. bei Nutzung eines WLAN-Router im gleichen Netz, ein VLAN zu nutzen. Neben einen VLAN-fähigen Switch wird auch eine entsprechende Konfiguration am Betriebssystem nötig. Dabei wird der Port des Netceivers als "untagged VLAN 2" konfiguriert. Der VDR hingegen bekommt die Einstellung "untagged VLAN1, tagged VLAN 2". Anstelle von VLAN 1 und 2 sind auch jedes beliebige andere VLAN möglich, da der Netceiver selbst sich nicht um VLANs kümmert und die Zuordnung nur durch die Portkonfiguration ergibt.
Beispielhaft unter Ubuntu Lucid:
Es muss das Paket VLAN installiert entsprechend konfiguriert werden
apt-get install vlan
Das Modul 8021q muss geladen werden
modprobe 8021q
damit man das nicht für den nächsten Systemstart manuell machen müssen, tragen wir dies noch in /etc/modules ein
echo 8021q >>/etc/modules
Wir erstellen nun eine virtuelle Netzwerkkarte und nennen diese eth0.2
vconfig add eth0 2
Das zwischen eth0 und der 2 KEIN Punkt ist, ist richtig.
Anschließend sagen wir dem System, das es eine virtuelle Netzwerkkarte gibt, dazu fügen wir am ende der /etc/network/interfaces folgendes ein
auto eth0.2 iface eth0.2 inet static address 10.0.0.1 netmask 255.255.255.0 vlan_raw_device eth0
Haben wir mehr als ein Endgerät was auf den Netceiver zugreift (bspw. zwei oder drei VDR-Clients), so muss bei jedem Client eine andere "address" stehen. Bei Client zwei bspw. "address 10.0.0.2" bei Client drei "address 10.0.0.3" etc.
Zum Schluss, teilen wir dem Mcli-Plugin mit, das es auf die virtuelle Karte "horchen" muss. Bei Ubuntu/Debian genügt es, folgendes in die /etc/vdr/plugins/plugin.mcli.conf am ende einzutragen
--ifname eth0.2
Wenn wir nun eine passende Channels.conf für unsere Konfiguration haben, sollte bei einem Reboot des systems ein Bild zu sehen sein.
weitere goodies
Es lohnt sich außerdem nach dem runterladen des Sourcecode, ein Blick ins mcast Verzeichnis zu werfen.
mcast/tools dort befinden sich nachfolgende Tools
netcvdiag # Diagnosetool netcvupdate und # Um ein Firmwareupdate des Netceivers oder Reboot durchzuführen. netlogview # zeigt an, was gerade so los ist ;)
Diese Tools laufen aber erst, wenn der VDR mit GELADENEM Mcli Plugin gestartet wurde.
mcast/client dort liegt der mcli-Dämon vor, mit
make mcli
läßt sich dieser kompilieren. Für VDR mittlereile nicht nötig, aber andere Linuxbasierte Geräte freut es.
mcast/dvbloop das Kernelmodul dvbloop.
mcast/dvbfuse ist ein fuse (FileSystem in userspace) Treiber.
mcast/netcv2dvbip damit werden die Multicast Paketes an das Loopback Interface geroutet.
Stromverbrauch
Aus dem Reelbox-Forum kamen folgende Werte:
5V max 1.5A, typisch ohne CAMs eher 0.5A = 2,5W - 7,5W 3.3V max 6A (bei Twin-DVB-S2, sonst eher max. 3A) = 9,9W - 19,8W 12V max 6A (bei 400mA pro LNB) = 38,4W - 72W Gesamt = 50,8W - 99,3W
Diese Maximalwerte kann man im Normalbetrieb aber eigentlich nicht erreichen. Mit 6 aktivierten S2-Tunern (3*Twin-S2), 5 an einem Multiswitch und einer an Rotor+Einzel-LNB liegt der Verbrauch mit Rotorbewegung bei ca. 35W. Ein wesentlicher Anteil des Verbrauchs entsteht durch die LNB/Rotorversorgung. Ein Multiswitch-Port benötigt ca. 0.5-1.5W, ein Single-LNB schon ca. 4-6W.
Die Tuner werden nach 30min. teilweise abgeschaltet, sofern sie nicht verwendet werden. Der Ruheverbrauch liegt dann je nach Tunertyp und Anzahl bei ca. 8-14W für den gesamten NetCeiver.
Messung kalibriertem TrueRMS-Wattmeter
2 Tuner im Idle, keine Netzwerkverbinung: 5.6W 2 Tuner im Idle, Netzwerkverbinung: 7.8W 1 Tuner aktiv, Streaming läuft: 12.4W 2 Tuner aktiv, Streaming läuft: 14.2W
Der cos phi war bei allen Messungen im Bereich von etwa 0.4. Eine Messung mit einem billigen Wattmeter wird also etwa doppelt so hohe Werte ergeben. Der Netceiver hatte einen Dual-S2 Tuner gesteckt, welcher an einen selbstversorgten Multiswitch angeschlossen war (also keine LNB-Speisung).
Distributionen
Es gibt derzeit vier Distributionen, bei der der Netceiver out-of-the-box läuft. Als da wären:
- EasyVDR: eine sehr schöne Distribution die auch bzw. gerade für Anfänger geeignet ist.
- MLD: das MiniDVBLinux ist eine Mini Distribution. Mini ist jedoch nur die Größe (Download knapp 9MB) dahinter steckt aber eine vollwertige Distribution, die Unterstützung des Netceiver wird gerade getestet und ist pre-alpha.
- Reel-VDR: Distribution der Firma Reel-Multimedia, konzipiert für die Reelbox-Avantgarde.
- yaVDR seit 0.2 unterstützt auch yavdr den Netceiver.
FAQ
Ich habe sehr viele Discontinuity Meldungen vom mcli und regelmäßiges Stocken selbst bei SDTV
Dieses Phänomen wurde häufig im Zusammenhang mit Netzwerkkarten beobachtet, die vom "forcedeth" Treiber angesprochen werden. Dabei handelt es sich um Onboard-Karten auf vielen nVidia Motherboards. Leider gibt es dafür keinen bekannten Workaround, es muss eine andere Netzwerkkarte (notfalls auch USB) eingesetzt werden.
Welche IP-Adresse hat der Netceiver?
Keine, der Netceiver ist ein "IPv6-Multicastserver" der seine Daten ins Netz "streamt", dadurch -und mithilfe div. Software- ist es unnötig, eine IPv4-Adresse zu vergeben. Damit ist keine manuelle Eingabe oder DHCP notwendig. Allerdings hat der NetCeiver immer eine IPv6-Adresse, diese wird aber den IPv6-Regeln nach automatisch aus der Ethernet-MAC und dem Link-Prefix gebildet. Die IPv6-Adresse ist bei "netcvdiag" die ausgegebene UUID.
Kann ich den Netceiver außerhalb einer AVG der Firma Reel-Multimedia betreiben?
Natürlich ist das möglich, man sollte möglichst einen "managebare" Gigabit-switch verwenden, zu empfehlen wäre der Linksys SLM2005 bzw. SLM2008
Muss es unbedingt ein Switch von Linksys SLM2005 bzw. SLM2008 sein?
Dazu zitiere ich Deti aus dem Reel-Forum:
Das Hauptproblem bei vielen nicht-managebaren Switches ist, dass die maximal nutzbare Multicastbandbreite auf 10% der Portbandbreite festgelegt wird. So stehen bei einem GE-Port lediglich 100Mbit/s für DVB via NetCeiver zur Verfügung. Das ist in der Regel kein Problem, sofern nicht alle 6 Tuner eines NetCeivers gleichzeitig ihren kompletten Transportdatenstrom ins Netz streamen. Daraus lassen sich nun für eine Kaufentscheidung zum Switch folgende Schlüsse ziehen:
- Wer nur einen NetCeiver mit maximal 3 Tunern betreibt, kommt mit einem günstigen Miniswitch wie z.B. 3COM 3CGSU08-ME problemlos aus.
- Wer mehr als 3 Tuner oder gar mehr als einen NetCeiver betreibt, benötigt einen managebaren GE-Switch mit MLD-V2 Snooping und konfigurierbarer Multicast Bandbreite. Geeignete Produkte gibt es z.B. von Cisco oder HP.
Das Limit von 3 Tunern errechnet sich aus aus der Bandbreite von ca. 30Mbit/s pro DVB-S Transponder.
Um Fragen vorzubeugen: Der NetCeiver kann auch vollbestückt mit 6 Tunern an einem Miniswitch funktionieren, jedoch nur, wenn die resultierende Gesamtbandbreite < 90Mbit/s ist.
Beispiel: Der gleichzeitige Empfang von Das Erste, ZDF, RTL, Sat.1, Arte und Premiere 1 benötigt 6 Transponder und somit 6 Tuner, jedoch entsteht nur eine Gesamtbandbreite von ca. 45Mbit/s.
Der genannte Linksys-Switch ist nur eine Benutzerempfehlung, da dort das Preis/Leistungsverhältnis o.k. ist.
Ich habe den Netceiver ausgelagert, leider ist mein WLAN unbenutzbar, was kann ich dagegen machen?
Der Netceiver stellt seine Daten via Multicast zur Verfügung, Wlan ist leider nicht in der Lage diese "Flut" an Daten zu behandeln (WLAN kann kein echtes Multicast). Das führt dazu, dass Wlan-Geräte nahezu unbedienbar werden. Lösen kann man das Problem am einfachsten, indem man für das WLAN Netz andere IP Adressen verwendet als für das verkabelten Netz.
Ein "grafisches" Beispiel könnte so aussehen:
Dach +--------------- Netceiver (Multicast) | | | +------------- PC 1 (192.168.0.x) | | +----------- PC 2 (192.168.0.x) | | | | | | +--------- Netclient (192.168.0.x) -------- 1.OG |switch| (Gigabit) -------- | | | -------- | |Router|----- WLAN (192.168.182.x) | -------- | +------- Internet -------- EG |switch| (Gigabit) -------- | | | +----------- Spielekonsole (192.168.0.x) +-------------- VDR (192.168.0.x)
Bei einer Fritzbox kann man das wie folgt im Webinterface einstellen: Auf Einstellungen -> System -> Netzwerk -> IP-Adressen -> Haken entfernen bei "Alle Computer befinden sich im selben IP-Netzwerk".
Woher bekomme ich eine aktuelle Firmware für den Netceiver?
Für Benutzer einer Reelbox AVG gibt es im OSD ein Menü für den Softwareupdate, alle anderen bedienen sich via Subversion
svn co svn://reelbox.org/stable/packages/netceiver-firmware/ROOT/usr/share/reel/netcv/update netcv
die Firmware befindet sich nun im Verzeichnis ./netcv und ist gepackt.
Wie kann ich den Netceiver manuell aktualisieren
Möglichkeit 1) Seid Ihr Besitzer einer Reelbox AVG oder Ihr verwendet die Reel-VDR Distribution, könnt Ihr im OSD-Menü ein Firmwareupdate ausführen.
Möglichkeit 2) Wenn Ihr das Kommandozeilentool netcvupdate habt, müsst Ihr folgenden Befehl ausführen:
netcvupdate -A -X <updatefile> -R
Möglichkeit 3) SD-Karte ausbauen und unter Linux als Superuser folgende Kommandos ausführen
tar xvfz netceiver_8AV.tgz #(Entpackt die Firmware) mkfs.vfat -I /dev/sdX #(DOS-FS als Superfloppy anlegen) die genaue Bezeichnung von /dev/sdX für den Mountpunkt # vom Cardreader müsst Ihr selber heraussuchen # mkfs.vfat ist nur beim ersten Mal notwendig! mkdir /mnt/sdcard # Einbinden der SD-Karte mount /dev/sdX /mnt/sdcard mkdir -p /mnt/sdcard/etc/rc.d mkdir /mnt/sdcard/netceivr.8AV cp fpga.bin image.bin /mnt/sdcard/netceivr.8AV cp S25mserv /mnt/sdcard/etc/rc.d umount /mnt/sdcard
Standardmäßig bootet der NetCeiver die größte Versionsnummer (das xxx im netceivr.xxx-Ordner, xxx=Jahr-Monat-Tag, zB. 8AV=2008-10-31). Solange eine Netzwerkverbindung besteht, können die auf der Karte liegenden Versionen mit netcvupdate und den Optionen -L/-I/-E/-Z gelistet bzw. (de)aktiviert werden.
CAM'S
Alphacrypt Light Software 1.18/1.19
Funktioniert mit Werkseinstellung: SKY (Alle Kanäle aber immer nur einer gleichzeitig)
Mit folgenden Änderungen können mehrere Sender gleichzeitig entschlüsselt werden:
1 Sprache Deutsch 2 Smartkartmeldungen 10 sek 4 Experten menü
> Experten Menü 1 CA-SYSTEME MULTI (mehrere) 2 CA-Anmeldung Dynamic (immer erneuern) 3 Erz. lesen der Org. PMT AUTO 4 CA-PMT löschzeit 1s 5 CI-Fehlerüberwachung 1500ms 6 dbox kompatiblität ein