Debian - mit 2.6.9er / 2.6.10er Kernel für VDR aufsetzen

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(9: Diverse Libs für VDR nachladen bzw. manuell installieren)
(1: Grundinstallation)
Zeile 49: Zeile 49:
 
  apt-get update
 
  apt-get update
 
  apt-get install dpkg-dev gcc g++ libc6-dev make patch debhelper bzip2 kernel-package sudo
 
  apt-get install dpkg-dev gcc g++ libc6-dev make patch debhelper bzip2 kernel-package sudo
  apt-get install mc ssh kernel-package samba cvs wget lynx libtool automake1.9
+
  apt-get install mc hdparm ssh kernel-package samba cvs wget lynx libtool automake1.9
 
  apt-get install kernel-image-2.6.9-1-686 kernel-source-2.6.9
 
  apt-get install kernel-image-2.6.9-1-686 kernel-source-2.6.9
 
  (ich nehme hier das image und eine passende .config-datei zu haben fuer den eigenen kernel.  
 
  (ich nehme hier das image und eine passende .config-datei zu haben fuer den eigenen kernel.  

Version vom 28. Januar 2005, 23:38 Uhr

Diese Anleitung soll aufzeigen wie man Debian mit 2.6.9er Kernel für den VDR installiert (also mit passenden/aktuellen DVB-Treibern und jede menge Librarys die für diverse Plugins gebraucht werden).

Die beschriebene vorgehensweisse funktioniert auch für den 2.6.10er Kernel(suche "2.6.9" und ersetze durch "2.6.10").

Die Informationen stammen aus verschiedenen Quellen (meist aus dem http://www.vdrportal.de ) und wurden von [1] zusammengestellt.

Inhaltsverzeichnis

1: Grundinstallation

Als Basis nutze/empfehle ich Debian Sarge - z.B. den Debian Installer von http://www.debian.org/devel/debian-installer/ - der direkte Link zur Netzwerk-Installations-CD ist http://cdimage.debian.org/pub/cdimage-testing/sarge_d-i/i386/rc2/sarge-i386-netinst.iso

Debian normal installieren (2.4.27er Kernel - keine zusätzlichen Pakete auswählen)


grub in den bootloader

Hardwareuhr auf gmt

Keine Softwareauswahl (in tasksel oder aptitude)

Einen Editor seiner Wahl installieren (z.B. "apt-get install mc" für Midnight-Commander)

/etc/apt/sources.list erweitern um

deb http://non-us.debian.org/debian-non-US testing/non-US main
deb ftp://ftp.debian.org/debian testing main contrib non-free

Somit hat meine /etc/apt/sources.list folgenden Inhalt:

# Für den 2.6.9 oder 2.6.10er Kernel aus dem unstable Tree
deb http://ftp.de.debian.org/debian/ unstable main
deb-src http://ftp.de.debian.org/debian/ unstable main
deb http://security.debian.org/ stable/updates main
deb http://non-us.debian.org/debian-non-US unstable/non-US main
# Für Testing und stable
deb http://ftp.de.debian.org/debian/ testing main
deb-src http://ftp.de.debian.org/debian/ testing main 

deb http://security.debian.org/ testing/updates main 

deb http://non-us.debian.org/debian-non-US testing/non-US main
deb ftp://ftp.debian.org/debian testing main contrib non-free

deb ftp://ftp.debian.org/debian stable main contrib non-free

Damit trotzdem als defualt die "Testing" Pakete verwendet werden muss man dies noch in der Datei /etc/apt/apt.conf einstellen:

APT::Default-Release "testing";

Installieren von diversen Paketen:

apt-get update
apt-get install dpkg-dev gcc g++ libc6-dev make patch debhelper bzip2 kernel-package sudo
apt-get install mc hdparm ssh kernel-package samba cvs wget lynx libtool automake1.9
apt-get install kernel-image-2.6.9-1-686 kernel-source-2.6.9
(ich nehme hier das image und eine passende .config-datei zu haben fuer den eigenen kernel. 
Falls kernel nicht gefunden wird prüfen mit apt-cache search kernel-image-2.6)
apt-get install libncurses5 libncurses5-dev rcconf dialog setserial

rcconf aufrufen, exim und ppp deaktivieren

1.1 diverse Lib´s installieren

apt-get install libc-client2001 libc-client2001-dev (wird für mailbox-client gebraucht)
apt-get install netpbm (wird fuer das Image-Plugin gebraucht)
apt-get install libvorbis-dev libvorbis0a libvorbisfile3 libvorbisenc2
apt-get install libogg0 liboggflac++-dev liboggflac++0c102
apt-get install libdvdnav-dev libdvdnav4
apt-get install alsa-base alsa-source libasound2 libasound2-dev 
apt-get install libjpeg62 libjpeg62-dev 

Für Netze mit eigenem Timeserver oder permanenter Internetanbindung:

apt-get install ntpdate 

(anschließend /etc/default/ntpdate editieren und z.b. ntp1.ptb.de eintragen)

1.2 acpi-Unterstützung

(u.a. zum kontrollierten Herunterfahren durch drücken der POWER-Taste)

apt-get install acpid

Konfiguration in /etc/acpi/powerbtn.sh

#Inhalt von powerbtn.sh: sende "Power-Taste" an den VDR
svdrpsend.pl HITK POWER

1.3 VDRAdmin Vorbereitungen

apt-get install libcompress-zlib-perl

1.4 ALSA (Soundtreiber)

ALSA kann man grundsätzlich überspringen wenn man nur den Tonausgang der DVB-Karte nutzt (direkt oder mit SPDIF-Slotblende). Wenn man jedoch den Sound über die Soundkarte laufen lassen will (z.B. für das Mp3-plugin) dann muss man ALSA konfigurieren.

Falls nicht schon automatisch gestartet: "alsaconf" aufrufen.

Danach sollten die entsprechenden alsa-module geladen sein?! ("lsmod" zeigt die geladenen Module an).

Der Ton ist aber aus - daher mit "alsamixer" den Ton lautstellen. Danach mit "alsactl store" speichern.

1.5 sonstiges

apt-get install hddtemp (nicht als dienst!)

Durch den befehl "hddtemp" kann man nun jederzeit seine Festplattentemeratur überprüfen. Ein guter Platz ist später in der "commands.conf".

Nun das System neu starten.

2: DVB-Firmware runterladen

cd /usr/lib/hotplug/firmware/
wget http://212.227.36.83/linuxtv/downloads/firmware/dvb-ttpci-01.fw-261d
cp dvb-ttpci-01.fw-261d dvb-ttpci-01.fw

3: Kernel Sourcen auspacken

cd /usr/src
tar xjvf kernel-source-2.6.9.tar.bz2
ln -s kernel-source-2.6.9 linux

4: Install-script laden

cd /usr/src
wget ftp://ftp.cadsoft.de/vdr/Tools/vdr-install-script-0.5.8.run
chmod +x vdr-install-script-0.5.8.run
./vdr-install-script-0.5.8.run

script beenden

5: aktueller DVB-Treiber nachladen

(dieser Abschnitt kann komplett übersprungen werden wenn die mitgelieferten Kernel-Treiber einem aktuell genug sind)

cd /usr/src
cvs -d :pserver:anonymous@linuxtv.org:/cvs/linuxtv login
(bei Passworteingabe einfach Enter drücken)
cvs -d :pserver:anonymous@linuxtv.org:/cvs/linuxtv co dvb-kernel
cd dvb-kernel
./makelinks /usr/src/linux

6: Kernel configurieren und compilieren

cd /usr/src/linux (kernel-source-2.6.9)
make menuconfig

Hier die Option "Load an Alternate Configuration File" auswählen und als Config die Datei /boot/config-2.6.9-1-686 eingeben (je nachdem welchen Kernel man installiert hat - zur not vorher in das /boot-Verzeichniss schauen was zur verfügung steht).

Angeblich verursacht der High Memory Support Probleme mit dem DVB-Treiber, daher schalten wir ihn ab (ist auch nicht wirklich noetig, wer hat schon einen VDR mit > 2GB ):

Processor type and features / High Memory Support (off)

Als naechstes die Einstellungen des DVB-Treiber aendern:

Device Drivers->Multimedia devices->Digital Video Broadcasting Devices->AV7110 cards / [*] AV7110 OSD support

damit das OSD wieder funktioniert. Die restlichen Einstellungen koennen uebernommen werden, oder nach persoenlichem Geschmack geaendert werden.

Die Konfiguration abspeichern und ein neues Kernelimage backen:

make-kpkg kernel_image --revision=dvb.0 --initrd

Das dauert jetzt je nach gewaehlten Einstellungen und Rechner einige Zeit (locker 2 Std). Wenn das Image fertig gebacken wurde, kann es per:

dpkg -i ../kernel-image-2.6.9_dvb.0_i386.deb

installiert werden.

Falls man den Kernel ohne "--initrd" gebacken hat kann man diese so nachträglich erzeugen:

mkinitrd -o /boot/initrd.img-2.6.9 2.6.9

(Danach /boot/grub/menu.lst anpassen! - sollte selbsterklärend sein!)


Jetzt das System neu booten

7: DVB-Treiber laden

Folgende Dateien sollten vorhanden sein: /dev/dvb/adapter1 (usw).

Ansonsten MAKEDEV-DVB.sh aufrufen:

/usr/src/dvb-kernel/MAKEDEV-DVB.sh

Zum Laden der DVB-Treiber gibt es 2 Möglichkeiten: über /etc/init.d/dvb oder über die modules.conf

Ich verwende BEIDE Varianten: beim Hochfahren des Systems lasse ich die DVB-Treiber über die modules.conf automatisch laden. Für das runvdr-script verwende ich "/etc/init.d/dvb reload" um die Treiber neu zu initialisieren!

7.1 Variante a) init.d-Datei

Folgende Datei erstellen: /etc/init.d/dvb

  # /etc/init.d/dvb: start/setup the DVB drivers
  
  set -e
  
  PATH=/bin:/usr/bin:/sbin:/usr/sbin
  
  loadDrivers () {
    echo -n "Starting the DVB drivers:"
    /sbin/modprobe dvb-ttpci hw_sections=0
    /sbin/modprobe stv0299
    /sbin/modprobe ves1820
    #speziell fuer 1.3er dvb-ff karten (ves1x93)
    /sbin/modprobe ves1x93
    echo "."
  }
  
  unloadDrivers() {
    echo -n "Stopping the DVB drivers:"
    /sbin/rmmod dvb-ttpci 2> /dev/null || true
    /sbin/rmmod stv0299 2> /dev/null || true
    /sbin/rmmod ves1820 2> /dev/null || true
    /sbin/rmmod saa7146 2> /dev/null || true
    /sbin/rmmod dvb_core 2> /dev/null || true
    /sbin/rmmod saa7146_vv 2> /dev/null || true
    /sbin/rmmod v4l1_compat 2> /dev/null || true
    /sbin/rmmod v4l2_common 2> /dev/null || true
    /sbin/rmmod videodev 2> /dev/null || true
    /sbin/rmmod firmware_class 2> /dev/null || true
    /sbin/rmmod budget_ci 2> /dev/null || true
    /sbin/rmmod budget_core 2> /dev/null || true
    /sbin/rmmod dvb_core 2> /dev/null || true
    /sbin/rmmod saa7146 2> /dev/null || true
    /sbin/rmmod ttpci_eeprom 2> /dev/null || true
    /sbin/rmmod crc32 2> /dev/null || true
    /sbin/rmmod video_buf 2> /dev/null || true
    echo "."
  }
  
  case "$1" in
    start)
    loadDrivers
    ;;
   
    stop)
    unloadDrivers
    ;;
 
    restart)
    unloadDrivers
    sleep 1
    loadDrivers
    ;;
  
   *)
      echo "Usage: /etc/init.d/dvb [stop|start|restart]"
      exit 1
    ;;
  esac
  
  exit 0

Dieses Skript nach /etc/init.d/dvb kopieren und executeable setzen (chmod a+x dvb). Dann noch einen Link im Runlevel 2 darauf setzen (cd /etc/rc2.d && ln -s ../init.d/dvb S15dvb).

Variante 7.2: /etc/modutils/dvb

  # DVB-Treiber
  alias char-major-250  dvb
  alias char-major-81 videodev
  alias dvb dvb-ttpci
  
  # Vidmode=2 habe ich fuer svideo
  options dvb-core dvb_shutdown_timeout=0
  options dvb-ttpci hw_sections=0 vidmode=2
  
  # Lade DVB-Treiber für FF-DVB-T
  #options alps_tdlb7 firmware_file=/opt/vdr/share/firmware/SC_MAIN.MC
  pre-install dvb-ttpci \
      /sbin/modprobe input;\
      /sbin/modprobe evdev;\
      /sbin/modprobe videodev;\
      /sbin/modprobe dvb-core;\
      /sbin/modprobe ves1x93;\
      /sbin/modprobe saa7146;\
      /sbin/modprobe saa7146_vv;\
      /sbin/modprobe ttpci-eeprom
  
  # Lade DVB-Treiber für Nova-DVB-S
  pre-install dvb-ttpci-budget-ci \
      /sbin/modprobe input;\
      /sbin/modprobe evdev;\
      /sbin/modprobe videodev;\
      /sbin/modprobe dvb-core;\
      /sbin/modprobe stv0299;\
      /sbin/modprobe saa7146;\
      /sbin/modprobe saa7146_vv;\
      /sbin/modprobe ttpci-eeprom

danach "update-modules" ausführen. Die Treiber werden jetzt automatisch beim Hochfahren geladen.


Jetzt fehlt noch ein Eintrag fuer das sysfs in /etc/fstab.

In der Datei /etc/fstab die Zeile:

sysfs   /sys  sysfs  defaults  0   0

8: LIRC Installieren

Das LIRC müssen wir aus dem CVS holen (damit es mit 2.6er Kerneln kompatibel ist):

cd /usr/src
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/lirc login
(Passwortabfrage wieder mit enter bestätigten)
cvs -z8 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/lirc co lirc

cd lirc
./autogen.sh
./setup.sh (evtl. Serielle Schnittstelle anpassen - dann "save & run reconfigure")
cd drivers
make 
# Bei 2.6.9er Kernel
mkdir /lib/modules/2.6.9/misc
cp lirc_serial/lirc_serial.ko /lib/modules/2.6.9/misc
cp lirc_dev/lirc_dev.ko /lib/modules/2.6.9/misc
# Bei 2.6.10er Kernel
mkdir /lib/modules/2.6.10/misc
cp lirc_serial/lirc_serial.ko /lib/modules/2.6.10/misc
cp lirc_dev/lirc_dev.ko /lib/modules/2.6.10/misc
# egal welcher Kernel:
depmod (zum updaten der modulliste)

Zum Testen kann man folgendes eingeben

setserial /dev/ttyS0 uart none (gilt für COM1, sonst anpassen).
modprobe -v lirc_serial

es sollte folgende Bildschirmausgabe erscheinen:

#vdr:/etc/init.d# setserial /dev/ttyS0 uart none
#vdr:/etc/init.d# modprobe -v lirc_serial
insmod /lib/modules/2.6.10/misc/lirc_serial.ko

Nun die Datei "/etc/init.d/lirc" erstellen:

#! /bin/sh
#
# This is an init script for Debian 2.1 Slink distribution.
# Copy it to /etc/init.d/lirc and type
# > update-rc.d lirc defaults 20
# 

test -f /usr/local/sbin/lircd || exit 0
test -f /usr/local/sbin/lircmd || exit 0

case "$1" in
  start)
    echo -n "Starting lirc daemon: lircd"
    setserial /dev/ttyS0 uart none
    modprobe -v lirc_serial
    start-stop-daemon --start --quiet --exec /usr/local/sbin/lircd -- --device=/dev/lirc
    echo -n " lircmd"
    start-stop-daemon --start --quiet --exec /usr/local/sbin/lircmd
    echo "."
    ;;
  stop)
    echo -n "Stopping lirc daemon: lircmd"
    start-stop-daemon --stop --quiet --exec /usr/local/sbin/lircmd
    echo -n " lircd"
    start-stop-daemon --stop --quiet --exec /usr/local/sbin/lircd
    echo "."
    rmmod lirc_serial
    rmmod lirc_dev
    echo "." 

    ;;
  reload|force-reload)
    start-stop-daemon --stop --quiet --signal 1 --exec /usr/local/sbin/lircd
    start-stop-daemon --stop --quiet --signal 1 --exec /usr/local/sbin/lircmd
    ;;
  restart)
    echo -n "Stopping lirc daemon: lircmd"
    start-stop-daemon --stop --quiet --exec /usr/local/sbin/lircmd
    echo " lircd"
    start-stop-daemon --stop --quiet --exec /usr/local/sbin/lircd
    sleep 1
    echo -n "Starting lirc daemon: lircd"
    start-stop-daemon --start --quiet --exec /usr/local/sbin/lircd -- --device=/dev/lirc
    echo -n " lircmd"
    start-stop-daemon --start --quiet --exec /usr/local/sbin/lircmd
    echo "."
    ;;
  *)
    echo "Usage: /etc/init.d/lircd {start|stop|reload|restart|force-reload}"
    exit 1
esac

exit 0

Anschließend Symbloische Links setzen (damit LIRC automatisch gestartet wird):

update-rc.d lirc defaults 20

9: Diverse Libs für VDR nachladen bzw. manuell installieren

Anmerkung: ich bevorzuge so viel moeglich die Debian-Libs zu verwenden damit diese mit einem "apt-get dist-upgrade" geupdated werden. Man kann sicherlich die meisten Libs auch per Hand bzw. nstall-Script compilieren - muss sich dann aber selbst um die aktualisierungen kuemmern....

apt-get install libvorbis-dev libvorbis0a libvorbisfile3 libvorbisenc2
apt-get install libdvdnav-dev libdvdnav4
apt-get install alsa-base alsa-source libasound2 libasound2-dev 
apt-get install libjpeg62 libjpeg62-dev
apt-get install libmad0 libmad0-dev          (bitstream)
apt-get install liba52-0.7.4 liba52-0.7.4-dev (dvd)
apt-get install libid3tag0 libid3tag0-dev
apt-get install libsndfile1 libsndfile1-dev nasm (mp3-plugin)
apt-get install libmagick6++ libmagick++6-dev (text2skin)
apt-get install imagemagick
apt-get install libcompress-zlib-perl
apt-get install libimlib2 libimlib2-dev (u.a. fuer graphlcd-plugin)
apt-get install libcrypto++-dev libssl0.9.7 openssl
apt-get install ogmtools libcdaudio0 libcdaudio0-dev gozer giblib-dev giblib1

Diese libs per Hand/Installscript herunterladen und kompilieren:

(ich habe sie per Install-Script runtergeladen - aber selbst ausgepackt und installiert... ... ich mag diesen STOW-Kram nicht der die sachen in ein eigenes INCLUDE-Verzeichniss kompiliert... - was wan mit dem Install-Script runtergeladen hat findet man unter /usr/local/src/packages wieder)

libdvdcss 1.2.8 installieren (./configure, make, make install)

ffmpeg4.8 installieren

cd $SOURCE
./configure --enable-shared --disable-mmx (für Softedevice noch --enable-pp --enable-gpl)
./make
./make install
mpeg2dec-0.4.0b installieren (zu finden als Libmpeg2) (./configure, make, make install) 

xvidcore 1.1.0 installieren

   cd $SOURCE/build/generic
   ./configure &&  make && make install
   ln -s /usr/lib/libxvidcore.so.4.1 /usr/lib/libxvidcore.so.4    
   (eventuell die Versionsnummern anpassen)
divx4linux 20020418 installieren (nur ./install)
lame3.96 installieren (./configure, make, make install)
libsndfile1.0.5 installieren (configure make make install)
libogg-1.1 installieren (configure make make install)
libvorbis-1.0.1 installieren (configiure make make install)
libmad-015b installieren (configure make make install)
libid3tag 015b installieren (configure make make install)
noad installieren (configure / make / make install)
nvram installieren (make devices / make / make install)

Mplayer habe ich das Install script installiert:

zuerst Herunterladen "Most recent Links"
Paket 1: Mplayer-1.0pre6
Paket 2: Codec, binarys for Mplayer: all
dann Installieren "Select Software and unpack it/bild cmdlist/installation"
Zuerst: Codec, binarys for Mplayer
Danach: Mplayer 'mp3 + mplayer'

9.1 VDRAdmin

vdradmind installieren (dafuer habe ich noch keine schrit-fuer-schritt-anleitung - ich habe einfach eine alte installation uebernommen...)

10: sonstige optimierungen des Betriebssystems

Laufwerksparameter für DVD-Laufwerk setzten (Speed wegen Geräusch / hat evtl. Auswirkungen auf Schreibgeschwindigkeit beim Brennen!)

Irgendwo in den Startscripts:

  /sbin/hdparm -u1 -d1 /dev/hdc
  hwclock --systohc = zeit auf hardwareuhr übertragen

10.1 Installieren der Smartmontools

apt-get install smartmontools
/etc/default/smartmontools: aktivieren

File erstellen: /etc/smartd.conf (nach vorlage)

  # -n = nicht testen wen sleep
  # -m mail an
  # -H kritische warnung bevor crash
  # -l selftest - wann soll er sich melden: nach erhhung der fehler nach einem selbsttest
  # -s selbsttests starten 
  # -s S/../.././02  schnelltest nachts um 2
  # -s L/../(01|15)/./22 langer test am 1 und 15. um 22 uhr
  # -s S/../.././02|L/../(01|15)/./03
  # 
  # eMail-Adresse und für welche Laufwerke es aktiv ist muss angepasst werden!
  #
  /dev/hda -n sleep -s S/../.././02|L/../(01|15)/./03 -m emailadresse@serviceprovider.net
  /dev/hdb -n sleep -s S/../.././02|L/../(01|15)/./03 -m emailadresse@serviceprovider.net
  /dev/hdc -n sleep -s S/../.././02|L/../(01|15)/./03 -m emailadresse@serviceprovider.net

/boot/grub/menu.lst erweitern um Ausschalte-Kontext

  title NVRAM-Timer
     halt

(oder alternativer shutdown-Kontext - siehe nvram-wakeup-readme

10.1: Vorbereitungen für DVD Burn

apt-quellen erweitern:

deb ftp://ftp.heise.de/pub/ct/projekte/vdr/sarge/testing/binary base/
deb ftp://ftp.nerim.net/debian-marillat/ testing main

Installieren:

apt-get install dvd+rw-tools mkisofs
apt-get install lame mjpegtools libmjpegtools-dev sox toolame mpeg2dec (nicht libdv-bin) 
apt-get install libdvdread3 libdvdread3-dev libfame-0.9 libfame-dev libmpeg3-1 libmpeg3-dev
apt-get install dvdauthor
apt-get install imlib-base imlib-progs imlib1 libimlib2
apt-get install libpopt-dev libsdl-sound1.2-dev (für transcode)
apt-get install transcode

Wie man die "libdvdcss2" installiert darf ich hier leider nicht beschreiben - es könnte jemand als "Anleitung zur Umgehung des Kopierschutzes" ansehen. Anwender aus Ländern in denen das erlaubt ist finden sicherlich einen Weg dies zu installieren. Anwender aus Deutschland sollten sich vorher mit dem Urheberrechtsschutzgesetzt in der aktuellen Fassung auseinandersetzen....

11: Installation des VDR

An dieser stelle kann nun der VDR installiert werden. Hierzu gibt es sicherlich viele weitere Anleitungen - und durch das Install-Script (/usr/local/src/VDRtmp/setup) ist die Installation auch sehr einfach.

Hier in kürze, die Schritte zu meiner installation:

VDR <VERSION> installieren
patch für jump&play (vdr-jumpplay-<VERSION>.diff)
Plugins:

* dvd-plugin
* dvdselect-plugin
* image-plugin
* mailbox-plugin
* mp3-plugin
* tvonscreen-plugin
* tvtv-plugin
* timeline-plugin
* burn-plugin

Achtung: Für das mailbox-plugin muss das Makefile (/usr/local/src/VDR/PLUGINS/src/mailbox/Makefile) geändert werden: Zeile 44+45 auskommentieren, Zeile 53+54 aktivieren bzw. Raute-Zeichen (#) entfernen.

Ich wünsche allen viel Erfolg!!!