Hier ein kleines Howto, wie man auf einem CT-VDR2 System, einen 2.6er Kernel zum
laufen bringt. Ich wollte mal die neuen Kernel DVB-Treiber testen, bin aber
mit den 2.4er Treibern klaeglich gescheitert. Die Treiber
des 2.6er funktionieren bisweilen sehr gut (auch die Umschaltzeiten sind jetzt
sensationell niedrig).
Dann mal los:
In der Datei /etc/apt/sources.list folgende Quelle hinzufuegen:
dann einmal:
apt-get update
apt-get upgrade
Durch Eingabe von "apt-cache search kernel-image" werden nun die neuen
Kernelimages angezeigt.
Das gewuenschte Image installieren (Bsp Kernel fuer Intel P3):
apt-get install kernel-image-2.6.6-1-686
Damit der DCHP-Client nach dem Update funktioniert, muss das Paket
dhcp3-client installiert werden:
apt-get install dhcp3-client
Die Frage nach dem Austausch der Datei "/etc/dhcp3/dhclient.conf" kann mit
Yes beantwortet werden.
Als naechstes den neu installierten Kernel zur lilo-Konfiguration hinzufuegen
(als eigene Sektion, damit man den alten Kernel noch booten kann):
Bsp:
image = /boot/vmlinuz-2.6.6
label = Linux_26_new
root = /dev/hda2
initrd = /boot/initrd.img-2.6.6
append = "apm=power-off noapic acpi=off"
read-only
Nach der Aenderung der Datei /etc/lilo.conf unbedingt einmal lilo aufrufen,
damit die Aenderungen uebernommen werden.
Jetzt steht einem Reboot nichts mehr im Wege, um festzustellen ob der Rechner
sich mit dem neuen Kernel vertraegt. Soweit so gut, leider wurde dieses
Debian-Kernelimage mit falschen Einstellungen bezueglich des eigentlichen
Objekts der Begierde, naemlich des DVB-Treibers, falsch konfiguriert. Daher
kommt man um eine Neukompilation des Kernels nicht herum. Die entsprechenden
Tools muessen dazu auf dem System vorhanden sein (eine Anleitung dazu gibt es
zum Beispiel auf den Seiten von heise).
Nachdem der Rechner hoffentlich gebootet hat, machen wir uns jetzt daran das
System wieder VDR tauglich zu machen.
Installation der Kernelsourcen:
cd /usr/src
apt-get install kernel-source-2.6.6
tar xjvf kernel-source-2.6.6.tar.bz2
cd kernel-source-2.6.6
make menuconfig
Hier waehlen wir die Option:
"Load an Alternate Configuration File"
und waehlen als Config die Datei /boot/config-2.6.6 aus.
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
Das dauert jetzt je nach gewaehlten Einstellungen und Rechner einige Zeit.
Wenn das Image fertig gebacken wurde, kann es per:
dpkg -i kernel-image-2.6.6_dvb.0_i386.deb
installiert werden.
Es fehlt noch eine passend initrd, diese wird per:
mkinitrd -o /boot/initrd.img-2.6.6 2.6.6
generiert.
Die Konfiguration von lilo muss wieder passend abgeaendert
werden (siehe weiter oben).
Zum Start des DVB-Treibers verwende ich folgendes Script (wurde mal in der
DVB-Treiber Mailingliste geposted):
# /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
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
Alles anzeigen
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).
Jetzt fehlen noch 2 Dinge damit die neuen Treiber funktionieren. Die Firmware
und ein Eintrag fuer das sysfs in /etc/fstab.
In der Datei /etc/fstab die Zeile:
hinzufuegen.
Damit beim Booten das sysfs gemounted wird, hab ich in der Datei
/etc/init.d/bootmisc.sh, die Zeile:
hinzugefuegt (kann man vielleicht auch eleganter loesen, aber ich bin auch kein
Debian Spezialist ;).
Die Firmware besorgen wir uns von http://www.linuxtv.org/download und kopieren
sie nach /usr/lib/hotplug/firmware/dvb-ttpci-01.fw (Benutzer des Wunderplugins
koennen auch eine entsprechend gepachte verwenden, dazu moegen die
einschlaegigen Quellen aufgesucht werden).
Jetzt kann man neu booten und hoffen, dass der VDR wieder seinen Dienst
tut. Bei mir wars zumindest so
Bei der Verwendung des Remote-plugins ist noch zu Beachten, dass durch den neuen
Kernel die event Devices anders durchnummeriert werden. In meinem Fall musste
ich die remote.conf von event0 auf event1 anpassen (je nachdem welche Geraete
man angeschlossen hat. Normalerweise event0 = Tastatur, event1 = Mouse ,
...). Da hilft nur probieren weiter.
Das wars, viel Spass mit dem neuen Kernel.