DVB Installation 1.1.1 (Kernel 2.6)

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(ohne Kernel Module)
(ohne Kernel Module)
Zeile 1: Zeile 1:
==Vorbemerkung==
 
Da man im Kernel 2.6 die DVB Unterstützung auch direkt in den Kernel kompilieren kann, gibt es bei dieser Installationsart 2 Möglichkeiten
 
# CVS Installation mit  Kernel Modulen
 
# CVS Installation ohne Kernel Module
 
  
==Download==
 
Das Archiv wird im selben Verzeichnis in welches später auch [[VDR]] kommt entpackt und ein symbolischer Link auf [[DVB]] angelegt.
 
 
* '''Standard'''
 
http://www.linuxtv.org/download/dvb
 
 
cd [[Struktur|$SOURCEDIR]]
 
tar zxvf /path/to/linuxtv-dvb-<VERSION>.tar.bz2
 
ln -s linuxtv-dvb-<VERSION> DVB
 
cd DVB
 
ln -s linux/include include
 
* '''CVS'''
 
cd [[Struktur|$SOURCEDIR]]
 
cvs -d :pserver:anonymous@linuxtv.org:/cvs/linuxtv login
 
cvs -d :pserver:anonymous@linuxtv.org:/cvs/linuxtv co dvb-kernel
 
ln -s dvb-kernel DVB
 
cd DVB
 
ln -s linux/include include
 
 
==mit Kernel Modulen==
 
Voraussetzung ist, daß man bereits die Kernel(!) Sourcen nach '''/usr/src/''' entpackt und die DVB Treiber über CVS geholt hat.
 
 
cd dvb-kernel
 
./makelinks /usr/src/<kernel>
 
 
Jetzt muß(!) der Kernel neu gebaut werden.
 
 
==ohne Kernel Module==
 
 
Achtung!
 
Für diese Methode müssen trotzdem die kernel-sourcen installiert sein - eine make oldconfig ist ebenfalls zwingend!
 
 
 
Diese Methode ist prinzipiell flexibler, da bei einem Treiberupdate nicht der gesamte Kernel neu gebaut werden muß. Allerdings können die Module nicht(!) über "modprobe" geladen werden, das Laden erfolgt dann zwingend über das "insmod.sh" Script.
 
 
cd dvb-kernel/build-2.6
 
./getlinks
 
make
 
./insmod.sh load
 
 
Im $VDR muß die Datei "Make.config.template" in "Make.config" umbenannt werden und der Pfad für die CVS Treiber in der Variable "DVBDIR" angepasst werden
 
DVBDIR  = ../DVB 
 
 
wird zu
 
 
DVBDIR  = /usr/src/dvb-kernel/build-2.6
 
 
==Voraussetzungen==
 
Hier gibt es zwei Möglichkeiten zu einem DVB-Treiber zu kommen
 
 
* ein extra Treiber
 
* der im Kernel integrierte Treiber
 
 
==Installation des Treibers über Kernel==
 
Wenn man sich für den Kernel-DVB-Treiber entscheidet, müssen bei den Kernelkonfiguration zusätzlich zu den oben genannten Optionen die folgenden aktiviert werden:
 
 
* '''DVB For Linux (CONFIG_DVB)''' :
 
 
* '''DVB Core Support (CONFIG_DVB_CORE)''' :
 
 
* das entsprechende '''Frontend''' der [[DVB-Karte]] (im Zweifel mehrere) z.B. für eine Hauppauge Nexus mit der Firmware 2.1/2.2 STV0299
 
 
Bei einer [[Full-featured-DVB-Karte]]:
 
 
<pre>
 
AV7110 cards (CONFIG_DVB_AV7110)
 
[x] Compile AV7110 [[firmware]] into the driver (CONFIG_DVB_AV7110_FIRMWARE)
 
[x] AV7110 OSD support (CONFIG_DVB_AV7110_OSD)
 
</pre>
 
 
Bei einer [[Budget-DVB-Karte]]:
 
; '''Budget cards (CONFIG_DVB_BUDGET)'''
 
 
Nach Möglichkeit sollte der DVB-Treiber als Modul übersetzt werden, da er im Falle eines Absturzes neu geladen werden kann, ohne den Rechner neu starten zu müssen. Nach Abschluss der Konfiguration des Kernels einfach
 
 
<pre>
 
make modules
 
make modules_install
 
</pre>
 
 
==Hinweis==
 
Die DVB Treiber von Kernel 2.6 haben jetzt einen offizielles device, dies sitzt auf Major 212 !
 
Um VDR ans laufen zu bekommen müssen diese neu angelegt werden.
 
 
'''Achtung !'''
 
Um VDR unter Kernel 2.4 laufen zu lassen die Major Nummer auf 250 ändern!
 
Also ggf. die 212 im Script gegen 250 austauschen.
 
Sonst läuft VDR leider auch unter Kernel 2.4 nicht mehr.
 
 
Folgendes Script hilft bei der Umstellung auf Kernel 2.6.
 
 
<pre>
 
#!/bin/sh
 
rm -rf /dev/dvb/adapter*/*
 
device=0
 
for card in `seq 0 3`; do
 
device=`echo $card \* 64 | bc`
 
for dev in video audio sec frontend demux dvr ca net osd; do
 
mknod /dev/dvb/adapter${card}/${dev}0 c 212 $device
 
chmod 0660 /dev/dvb/adapter${card}/${dev}0
 
let device=device+1
 
done
 
done
 
</pre>
 
 
==Scripts==
 
<pre>
 
#!/bin/sh
 
# insmod modules from current directory without having to install them first
 
# KERNELVER=`uname -r`
 
# KERNELDIR="/lib/modules/$KERNELVER/misc"
 
 
sync
 
 
case "$1" in
 
    load)
 
echo -n -e "\nInserting DVB modules into kernel\n"
 
# make sure input stuff is there for IR remote controls
 
# modprobe input
 
# modprobe evdev
 
# modprobe crc32
 
# vide4linux for av7110 based "full featured" cards
 
# modprobe videodev
 
# insmod $KERNELDIR/v4l1-compat.o
 
# insmod $KERNELDIR/v4l2-common.o
 
# insmod $KERNELDIR/video-buf.o
 
# DVB core
 
# insmod $KERNELDIR/dvb-core.o
 
# frontend drivers
 
# insmod $KERNELDIR/stv0299.o
 
modprobe stv0299
 
# saa7146 based siemens/technotrend/hauppauge cards
 
# insmod $KERNELDIR/saa7146.o
 
# insmod $KERNELDIR/saa7146_vv.o
 
# insmod $KERNELDIR/ttpci-eeprom.o
 
# insmod $KERNELDIR/dvb-ttpci.o
 
modprobe dvb-ttpci
 
echo
 
;;
 
    debug)
 
echo -n -e "\nInserting DVB modules (debug) into kernel\n"
 
# modprobe videodev
 
# modprobe crc32
 
# insmod $KERNELDIR/v4l1-compat.o
 
# insmod $KERNELDIR/v4l2-common.o
 
# insmod $KERNELDIR/video-buf.o
 
# insmod $KERNELDIR/dvb-core.o
 
# insmod $KERNELDIR/stv0299.o
 
modprobe stv0299
 
# insmod $KERNELDIR/saa7146.o
 
# insmod $KERNELDIR/saa7146_vv.o saa7146_debug=247
 
modprobe saa7146_vv saa7146_debug=247
 
# insmod $KERNELDIR/ttpci-eeprom.o
 
# insmod $KERNELDIR/dvb-ttpci.o av7110_debug=247
 
modprobe dvb-ttpci av7110_debug=247
 
echo
 
;;
 
    unload)
 
echo -n -e "\nDeleting DVB modules from kernel\n"
 
rmmod stv0299 dvb-ttpci \
 
ttpci-eeprom \
 
saa7146_vv saa7146 \
 
video-buf v4l2-common v4l1-compat dvb-core videodev crc32 i2c_core
 
echo
 
;;
 
    reload)
 
$0 unload && $0 load
 
;;
 
    *)
 
echo "Usage$0 {load|unload|debug|reload}"
 
exit 1
 
esac
 
 
sync
 
</pre>
 

Version vom 6. Januar 2005, 19:01 Uhr