Im Zuge meiner Server-Aktualisierung (Debian 4.0 32bit wurde durch Debian 5.0 64bit ersetzt) wollte
ich auch den diskless VDR durch Debian 5.0 lenny ersetzen.
Voraussetzung für diese Installation ist ein funktionsfähiger Fileserver mit NFSd, DHCPd und TFTPd. Das
Aufsetzen dieser Dienste wird z.B. im alten
[HOWTO] VDR Client via Netz per NFS booten (Neu: mit debootstrap Installation) beschrieben.
Für den VDR nutze ich die Pakete, welche Tobi dankenswerterweise in einem Repository für Debian 5.0
bereit stellt:
Zusätzlich wird der jeweils aktuelle vanilla Kernel von kernel.org und LIRC aus dem CVS genutzt.
Stand: 2010.03.04
Linux Kernel 2.6.33
vdr 1.6.0-13ctvdr3
lirc-0.8.6 CVS
Inhaltsverzeichnis
SERVER: Der Client
1. Grundsystem
2. Nutzerverwaltung
3. Repositories
a. Debian
b. VDR
c. debian-multimedia.org
d. Pakete installieren
4. Netzwerk
5. Dateisysteme
6. Auslagerungsdatei
7. Kernel
a. DVB-Karten-Module
b. DVB-Karten-Firmware
8. chroot Ende
SERVER
9. Client-Backup
10. NFS-Freigabe
11. tftp Dämon
12. Daten-Übernahme
CLIENT
13. MOTD
14. LIRC
15. VDR
a. vdr-plugin-burn
b. vdr-plugin-dvd
c. vdr-plugin-graphlcd
d. nvram-wakeup
16. HG DVB Treiber
17. Kernel Update
a. Kernel
b. LIRC
c. HG DVB Treiber
SERVER: Der Client
Die folgenden Befehle sind, soweit nicht anders erwähnt, als User root auszuführen.
1. Grundsystem
Auf dem Server (bei mir ebenfalls mit Debian 5.0 lenny bestückt) wird das Paket debootstrap installiert,
ein Verzeichnis für den VDR Client eingerichtet und debootstrap ausgeführt, welches das Grundsystem
aufspielt. Mittels chroot wechselt man in das neue System.
#debootstrap installieren
aptitude install debootstrap
# Verzeichnis für den VDR NFS Client anlegen
mkdir /srv/netboot/nfsroot/vdr_lenny
# debootstrap starten: Installation von lenny für die i386 Architektur
debootstrap --arch i386 lenny /srv/netboot/nfsroot/vdr_lenny http://ftp.de.debian.org/debian/
#debootstrap --arch amd64 lenny /srv/netboot/nfsroot/vdr_lenny http://ftp.de.debian.org/debian/
Display More
Ausgabe:
I: Retrieving Release
I: Retrieving Packages
I: Validating Packages
I: Resolving dependencies of required packages...
I: Resolving dependencies of base packages...
I: Checking component main on http://ftp.de.debian.org/debian...
I: Retrieving adduser
I: Validating adduser
...
I: Extracting base-files...
I: Extracting base-passwd...
I: Extracting bash...
...
I: Installing core packages...
I: Unpacking required packages...
I: Unpacking base-files...
...
I: Configuring required packages...
I: Configuring sysv-rc...
I: Configuring gcc-4.2-base...
...
I: Unpacking the base system...
I: Unpacking adduser...
I: Unpacking apt...
...
I: Configuring the base system...
I: Configuring gpgv...
I: Configuring module-init-tools...
...
I: Base system installed successfully.
Display More
Nun werden ein paar spezielle Verzeichnisse eingebunden, locales und die Zeitzone eingerichtet, die
Paketverwaltung aktualisiert und einige wichtige Pakete installiert. vim läßt sich gegen den bevorzugten
Editor austauschen.
# /proc, /sys und /dev/pts mounten
$(mount -t proc proc /proc && mount -t sysfs sysfs /sys && mount -t devpts devpts /dev/pts) && echo "mount erfolgreich..." || echo "mount fehlgeschlagen..."
# Paketlisten aktualisieren
aptitude update
# locales einrichten
aptitude install locales console-common
dpkg-reconfigure locales # de_DE.UTF-8 UTF-8 und weitere nach Bedarf
Display More
2. Nutzerverwaltung
Jetzt erfolgt das Erstellen der Gruppe und des Nutzers vdr. Wer bereits ein Videoverzeichnis mit alten
Aufnahmen besitzt, sollte uid und gid entsprechend setzen.
# uid und gid ggf. anpassen
#
# addgroup --gid 242 vdr
# adduser --system --uid 242 --shell /bin/bash --home /var/lib/vdr --ingroup vdr vdr
#
# Gruppe vdr einrichten
addgroup --system vdr
# vdr als System-Nutzer mit Gruppe vdr anlegen
adduser --system --ingroup vdr vdr
Display More
Das root Passwort und der Nutzer kilroy werden eingerichtet. Damit 'kilroy' u.a. aus syslog lesen kann,
wird er in die Gruppe adm eingetragen.
# Passwort für root festlegen
passwd
# einen Nutzer einrichten
adduser kilroy
# den Nutzer in die Gruppen vdr und adm eintragen
adduser kilroy vdr
adduser kilroy adm
Display More
# Diverses - bitte im Einzelfall prüfen
cat >> /etc/bash.bashrc << EOF
alias t='tail -f /var/log/syslog'
alias lr='ls -lrt'
alias lrh='ls -lrth'
export HISTCONTROL=ignoredups
export HISTFILESIZE=
export HISTSIZE=
EOF
# ggf. "bash completion" aktivieren
vi /etc/bash.bashrc
echo "[ -f /etc/bash.bashrc ] && . /etc/bash.bashrc" >> /etc/profile
Display More
3. Repositories
a. Debian 5.0
Als nächstes werden die Einträge für die Paketverwaltung vorgenommen und es werden die aktuellen
Updates sowie ein paar weitere Programme installiert.
# lenny Paketquellen eintragen
cp /etc/apt/sources.list /etc/apt/sources.list.bak
cat > /etc/apt/sources.list << EOF
deb http://ftp.de.debian.org/debian/ lenny main non-free contrib
deb-src http://ftp.de.debian.org/debian/ lenny main non-free contrib
deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free
EOF
# Paketlisten aktualisieren
aptitude update
Display More
b. VDR
# e-tobis Repository für vdr einrichten
wget --quiet http://e-tobi.net/vdr-experimental/pool-lenny/binary/base/e-tobi-keyring_2008.03.08_all.deb
dpkg -i e-tobi-keyring_2008.03.08_all.deb
cat > /etc/apt/sources.list.d/vdr.list << EOF
# release = vdr-experimental | vdr-testing
# dist = etch | lenny | sid
# section = base | backports | addons | vdr-standard | vdr-extensions | vdr-multipatch
deb http://e-tobi.net/vdr-experimental lenny base backports addons vdr-multipatch
EOF
Display More
# e-tobis vdr Pakete haben Priorität
cat >> /etc/apt/preferences << EOF
Package: *
Pin: release o=e-tobi.net
Pin-Priority: 1001
EOF
# Paketlisten aktualisieren
aptitude update
c. debian-multimedia.org
# debian-multimedia.org einrichten
wget --quiet http://www.debian-multimedia.org/pool/main/d/debian-multimedia-keyring/debian-multimedia-keyring_2008.10.16_all.deb
dpkg -i debian-multimedia-keyring_2008.10.16_all.deb
echo "deb http://www.debian-multimedia.org lenny main" > /etc/apt/sources.list.d/debian-multimedia.org.list
# Paketlisten aktualisieren
aptitude update
d. Pakete installieren
# Pakete installieren
aptitude install udev openssh-server anacron less mc portmap at ntp rsync powernowd exim4 mutt bzip2 build-essential libncurses5-dev kernel-package nfs-common cvs man-db manpages pciutils figlet
#
[ -f /var/log/exim4/paniclog ] && rm /var/log/exim4/paniclog
4. Netzwerk
Diese Einträge dienen der Funktionsfähigkeit des Netzwerkes.
echo "127.0.0.1 localhost" > /etc/hosts
echo "vdr" > /etc/hostname
#
cat > /etc/network/interfaces << EOF
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet manual
EOF
Display More
Wer mehr als eine Netzwerkkarte nutzt, muss die Datei interfaces u.U. anpassen.
5. Dateisysteme
Die Datei /etc/fstab wird wie nachfolgend aufgeführt erstellt. Auf das Verzeichnis /video mounte ich
die Aufnahmen, welche auf dem Server liegen. /dev/loop0 dient dem Swap-Bereich.
mkdir /video
cat > /etc/fstab << EOF
#
# /etc/fstab: static file system information.
#
proc /proc proc defaults 0 0
# Root-Verzeichnis bei lenny nicht in /etc/fstab eintragen!
# server:/srv/netboot/nfsroot/vdr_lenny/ / nfs defaults 0 0
# loop Device fuer Swap-Datei
/dev/loop0 none swap sw,noauto 0 0
# temporaere Verzeichnisse
none /tmp tmpfs defaults 0 0
none /var/run tmpfs defaults 0 0
none /var/tmp tmpfs defaults 0 0
# Video-Verzeichnis
server:/video /video nfs auto,rw,nosuid,hard,intr,rsize=65536,wsize=65536 0 0
EOF
Display More
# ASYNCMOUNTNFS abschalten, da /video sonst nicht eingehangen wird
# siehe auch man rcS
echo "ASYNCMOUNTNFS=no" >> /etc/default/rcS
6. Auslagerungsdatei
Mittels der nächsten Befehlsfolge wird eine Swap-Datei eingerichtet, welche per loop-Device eingehängt wird.
dd if=/dev/zero of=/var/swap bs=1k count=128K
chmod 600 /var/swap
mkswap -L swap /var/swap
#
chmod 755 /etc/rc.local
sed -i 's/^exit 0//' /etc/rc.local
cat >> /etc/rc.local << EOF
losetup /dev/loop0 /var/swap
swapon /dev/loop0
exit 0
EOF
Display More
7. Kernel
Im nächsten Schritt wird der derzeit aktuelle vanilla Kernel heruntergeladen, ggf. für AMD Geode NX 1750
gepatcht, übersetzt und installiert. Die verwendete .config sollte man nicht ungeprüft übernehmen.
cd /usr/src/
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.tar.bz2
# wget --quiet http://www.on-luebeck.de/kilroy/vdr_lenny_howto/powernow-k7-manual-2.6.33_enev_kilroy.patch.gz # notwendig für AMD Geode NX 1750
tar xjf linux-2.6.33.tar.bz2
ln -s linux-2.6.33 linux
cd linux
# zcat ../powernow-k7-manual-2.6.33_enev_kilroy.patch.gz | patch -b -p0 # notwendig für AMD Geode NX 1750
# echo "powernow_k7 overwrite_table=1 fsb=100000 multiplier=50,60,70,80,90,105" >> /etc/modules
make menuconfig # ich kompiliere i.A. alles Notwendige bis auf die DVB, powernow und lirc Treiber fest in den Kernel
# Architektur anpassen:
# wenn der VDR ein 32bit und der Server ein 64bit System ist, sollte make folgendermaßen aufgerufen werden
# make ARCH=x86 menuconfig
# wget --quiet http://www.on-luebeck.de/kilroy/vdr_lenny_howto/config-2.6.33-amd64-lenny -O .config # .config für mein amd64 System mit EP-8KDA7I & Sempron64
# make oldconfig # make ARCH=x86 oldconfig
make # oder make -j2 bzw. make ARCH=x86
make modules_install install # make ARCH=x86 modules_install install
Display More
a. DVB-Karten-Module
Ich lade die Module für die DVB Karten in einer vorgegebenen Reihenfolge.
# Bitte an die eigene Hardware anpassen! Ggf. kann dieser Schritt auch übersprungen werden (z.B. bei Einkartensystemen).
cat > /etc/modprobe.d/dvb << EOF
# die DVB-C FF Karte wird /dev/dvb/adapter0
options dvb_ttpci adapter_nr=0
# die DVB-C Budget Karte wird /dev/dvb/adapter1
options budget_ci adapter_nr=1
# die 1. DVB-T Budget Karte wird /dev/dvb/adapter2
options b2c2_flexcop adapter_nr=2
# die 2. DVB-T Budget Karte wird /dev/dvb/adapter3
options dvb-bt8xx adapter_nr=3
# die 2. DVB-T Budget Karte wird /dev/video1, damit die FF Karte /dev/video0 übernimmt - relevant für vdradmin-am
options bttv video_nr=1
EOF
Display More
b. DVB-Karten-Firmware
Jetzt wird die benötigte Firmware für die FujitsuSiemens FF DVB-Karte geladen. Andere DVB-Karten
benötigen ggf. weitere Firmware-Dateien.
#
# Firmware für DVB Karte(n) holen
# Beispiel für FF Karten mit AV7110
#
cd /lib/firmware/
#vdr:/lib/firmware#
wget --quiet http://www.linuxtv.org/downloads/firmware/dvb-ttpci-01.fw-2622
ln -s dvb-ttpci-01.fw-2622 dvb-ttpci-01.fw
#
# alternativ die Testversion
#
cd /lib/firmware/
#vdr:/lib/firmware#
# siehe ggf. auch http://www.escape-edv.de/endriss/firmware/
wget --quiet http://www.suse.de/~werner/test_av-f12623.tar.bz2
tar xjf test_av-f12623.tar.bz2 test_av/dvb-ttpci-01.fw
mv test_av/dvb-ttpci-01.fw dvb-ttpci-01.fw-f12623
chown root.root dvb-ttpci-01.fw-f12623
ln -sf dvb-ttpci-01.fw-f12623 dvb-ttpci-01.fw
rm -rf test_av
Display More
8. chroot Ende
Jetzt die chroot Umgebung verlassen.
SERVER
9. Client-Backup
10. NFS-Freigabe
Auf dem Server muss das root Verzeichnis für den VDR per nfs freigegeben werden.
echo "/srv/netboot/nfsroot/vdr_lenny 172.17.42.0/255.255.255.0(rw,no_root_squash,no_all_squash,sync,no_subtree_check)" >> /etc/exports
/etc/init.d/nfs-kernel-server reload
11. tftp Dämon
Es folgen die Einträge für die PXELINUX Konfigurationsdatei.
cp /srv/netboot/nfsroot/vdr_lenny/boot/vmlinuz-2.6.33 /var/lib/tftpboot/vmlinuz-2.6.33-vdr_lenny
# cp /srv/netboot/nfsroot/vdr_lenny/boot/vmlinuz-2.6.33 /var/lib/tftpboot/vmlinuz-2.6.33-vdr_lenny_amd64
#
cd /var/lib/tftpboot/pxelinux.cfg/
vi 01-00-11-22-33-44-55-lenny # MAC Beispiel: 00:11:22:33:44:55
ln -s 01-00-11-22-33-44-55-lenny 01-00-11-22-33-44-55
#
cat 01-00-11-22-33-44-55
# kilroy
LABEL linux
# Kernel muß im tftp Verzeichnis liegen
# server:~# ls /var/lib/tftpboot/
KERNEL vmlinuz-2.6.33-vdr_lenny
# KERNEL vmlinuz-2.6.33-vdr_lenny_amd64
APPEND root=/dev/nfs nfsroot=172.17.42.1:/srv/netboot/nfsroot/vdr_lenny,v3,rsize=65536,wsize=65536
IPAPPEND 1
Display More
12. Daten-Übernahme
Ich übernehme diverse Daten des alten Systems auf das Neue.
# alte SSH Schlüssel auf das neue System kopieren
cp /srv/netboot/nfsroot/vdr_hardy/etc/ssh/ssh_host_*key* /srv/netboot/nfsroot/vdr_lenny/etc/ssh/
# alte MOTD auf neues System kopieren
cp /srv/netboot/nfsroot/vdr_hardy/etc/motd.tail /srv/netboot/nfsroot/vdr_lenny/etc/
# altes root home Verzeichnis auf das neue System kopieren
cp -a /srv/netboot/nfsroot/vdr_hardy/root /srv/netboot/nfsroot/vdr_lenny/
# altes kilroy home Verzeichnis auf das neue System kopieren
cp -a /srv/netboot/nfsroot/vdr_hardy/home/kilroy/ /srv/netboot/nfsroot/vdr_lenny/home/
# altes vdr .ssh Verzeichnis auf das neue System kopieren
cp -a /srv/netboot/nfsroot/vdr_hardy/var/lib/vdr/.ssh /srv/netboot/nfsroot/vdr_lenny/var/lib/vdr/
Zu diesem Zeitpunkt sollte man den VDR mit dem tatsächlich dafür vorgesehenen Computer starten.
Für "Trockentests" kann das System auch mit VMware oder VirtualBox gestartet werden.
CLIENT
Auf dem gestarteten VDR Client sollte man sich nun anmelden und zum User root wechseln.
13. MOTD
cat > /etc/motd.tail << EOF
Willkommen auf dem
EOF
figlet -f big VDR >> /etc/motd.tail
uname -snrvm > /var/run/motd && [ -f /etc/motd.tail ] && cat /etc/motd.tail >> /var/run/motd
14. LIRC
LIRC aus dem Repository installieren.
aptitude install lirc help2man automake1.7 autoconf libtool dialog setserial
# lirc deaktivieren - es wird die CVS Variante genutzt
/etc/init.d/lirc stop
update-rc.d -f lirc remove
aptitude hold lirc
Den vorhandenen "/dev/ttyS0" (für die erste, serielle Schnitstelle) Eintrag in /var/lib/setserial/autoserial.conf gegen "/dev/ttyS0 uart none" austauschen.
grep ^"/dev/ttyS0" /var/lib/setserial/autoserial.conf >/dev/null && sed -i 's$^/dev/ttyS0$#/dev/ttyS0$' /var/lib/setserial/autoserial.conf && echo "/dev/ttyS0 uart none" >> /var/lib/setserial/autoserial.conf
/etc/init.d/setserial restart
LIRC aus dem CVS herunterladen.
cd /usr/local/src
cvs -d:pserver:anonymous@lirc.cvs.sourceforge.net:/cvsroot/lirc login
cvs -z8 -d:pserver:anonymous@lirc.cvs.sourceforge.net:/cvsroot/lirc co lirc
cd lirc
./autogen.sh
Für einen seriellen "Home-brew" Empfänger an der ersten seriellen Schnittstelle folgendes auswählen:
- remote configuratio: Home-brew (16x50 UART compatible serial port)
- IR transmitter: None
- serial device: /dev/ttyS0
./setup.sh
# 1 Driver configuration
# 2 Software configuration
# 3 Save configuration & run configure
make
make install
Einfaches lirc-cvs Startskript
cat > /etc/init.d/lirc-cvs << EOF
#! /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/bin/irexec || exit 0
\$(lsmod | grep ^lirc_serial >/dev/null) || modprobe lirc_serial
# Create /var/run/lirc if necessary
if [ ! -d /var/run/lirc ]; then
mkdir /var/run/lirc
chmod 0755 /var/run/lirc
fi
case "\$1" in
start)
echo -n "Starting lirc daemon: lircd"
start-stop-daemon --start --quiet --exec /usr/local/sbin/lircd -- --device=/dev/lirc0 /etc/lirc-cvs/lircd.conf
echo -n " irexec"
start-stop-daemon --start --quiet --exec /usr/local/bin/irexec -- --daemon /etc/lirc-cvs/lircrc
echo "."
;;
stop)
echo -n "Stopping lirc daemon: irexec"
start-stop-daemon --stop --quiet --exec /usr/local/bin/irexec
echo -n " lircd"
start-stop-daemon --stop --quiet --exec /usr/local/sbin/lircd
echo "."
;;
restart)
echo -n "Stopping lirc daemon: irexec"
start-stop-daemon --stop --quiet --exec /usr/local/bin/irexec
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/lirc0 /etc/lirc-cvs/lircd.conf
echo " irexec"
start-stop-daemon --start --quiet --exec /usr/local/bin/irexec -- --daemon /etc/lirc-cvs/lircrc
echo "."
;;
*)
echo "Usage: /etc/init.d/lirc-cvs {start|stop|restart}"
exit 1
esac
exit 0
EOF
Display More
lirc automatisch starten
Beispiel-Konfigurationsdatei für irexec
Die Fernbedienung auswählen.
cp remotes/logitech/lircd.conf.logitech /etc/lirc-cvs/lircd.conf # Beispiel
#wget --quiet http://www.on-luebeck.de/kilroy/vdr_lenny_howto/lircd.conf.harmony-655 -O /etc/lirc-cvs/lircd.conf
LIRC starten.
LIRC mittels irw testen.
Wenn alles korrekt arbeitet, sieht die Ausgabe in etwa wie folgt aus.
00000000a0a020df 00 1 lircd.conf
00000000a0a020df 01 1 lircd.conf
00000000a0a0a05f 00 2 lircd.conf
00000000a0a0a05f 01 2 lircd.conf
00000000a0a0609f 00 3 lircd.conf
00000000a0a0609f 01 3 lircd.conf
00000000a0a010ef 00 4 lircd.conf
00000000a0a010ef 01 4 lircd.conf
00000000a0a03ac5 00 OK lircd.conf
00000000a0a03ac5 01 OK lircd.conf
15. VDR
VDR Pakete installieren. Beispiel:
aptitude install vdr vdr-plugin-burn vdr-plugin-cinebars vdr-plugin-dvd vdr-plugin-dvdswitch vdr-plugin-epgsearch vdr-plugin-graphlcd vdr-plugin-streamdev-server vdr-plugin-sudoku vdr-plugin-vbox nvram-wakeup
# aptitude install vdr vdr-plugin-burn vdr-plugin-cinebars vdr-plugin-dvd vdr-plugin-dvdswitch vdr-plugin-epgsearch vdr-plugin-graphlcd vdr-plugin-streamdev-server vdr-plugin-sudoku vdr-plugin-vbox vdr-burnbackgrounds vdr-enigmang-icons vdr-genindex vdr-plugin-extrecmenu vdr-plugin-femon vdr-plugin-screenshot vdr-plugin-skinenigmang vdradmin-am vdr-addon-acpiwakeup
# ln -s /usr/lib/vdr/svdrpsend.pl /usr/local/bin/svdrpsend.pl
Als nächstes ist ggf. eine passende channels.conf nach /var/lib/vdr/channels.conf zu kopieren.
Beispiel für DVB-C Nutzer:
/etc/init.d/vdr stop
zcat /usr/share/doc/vdr/examples/channels.conf.cable.gz > /var/lib/vdr/channels.conf
/etc/init.d/vdr start
An dieser Stelle kann man VDR noch etwas an die eigenen Bedürfnisse anpassen.
/etc/init.d/vdr stop
cat >> /etc/default/vdr << EOF
OPTIONS="--watchdog=60 --log=3 --lirc=/var/run/lirc/lircd"
VDR_CHARSET_OVERRIDE=ISO-8859-9
VDR_LANG=de_DE.UTF-8
KEYB_TTY=""
VIDEO_DIR="/video"
EOF
/etc/init.d/vdr restart
Display More
Wer seine Fernbedienung bereits angelernt hat, kann seine alte remote.conf nutzen.
/etc/init.d/vdr stop
wget --quiet http://www.on-luebeck.de/kilroy/vdr_lenny_howto/remote.conf.harmony-655 -O /var/lib/vdr/remote.conf
chown vdr.vdr /var/lib/vdr/remote.conf
/etc/init.d/vdr start
a. vdr-plugin-burn
Wenn kein DVD laufwerk im VDR vorhanden ist, benötigt das burn Plugin ein Ziel-Verzeichnis.
Beispiel:
b. vdr-plugin-dvd
Wenn kein DVD laufwerk im VDR vorhanden ist, sollte folgende Änderung vorgenommen werden.
c. vdr-plugin-graphlcd
Für das graphlcd Plugin muß VDR auf die parallele Schnittstelle zugreifen dürfen.
Es wird eine zum LCD passende graphlcd.conf benötigt.
wget --quiet http://www.on-luebeck.de/kilroy/vdr_lenny_howto/graphlcd.conf -O /etc/graphlcd.conf
Wenn man nur ein LCD in der graphlcd.conf konfiguriert hat, ist folgende Änderung notwendig.
Ansosnten ist simlcd entsprechend zu ersetzen.
cat /etc/vdr/plugins/plugin.graphlcd.conf
-c /etc/graphlcd.conf -d simlcd
sed -i 's/ -d simlcd//' /etc/vdr/plugins/plugin.graphlcd.conf
cat /etc/vdr/plugins/plugin.graphlcd.conf
-c /etc/graphlcd.conf
Nach einer Änderung an einer Plugin-Konfiguration muß der VDR neu gestartet werden.
d. nvram-wakeup
nvram-wakeup Konfigurationsdatei für das PC-Chips M811:
cat > /etc/nvram-wakeup.conf << EOF
################################################
## Mainboard autodetection information:
##
## - Mainboard vendor: ""
## - Mainboard type: "VT8367-8235"
## - Mainboard revision: ""
## - BIOS vendor: "Phoenix Technologies, LTD"
## - BIOS version: "6.00 PG"
## - BIOS release: "10/20/2005"
addr_stat = 0xD2
shift_stat = 5
addr_day = 0xD8
addr_hour = 0xD9
addr_min = 0xDA
addr_sec = 0xDB
upper_method = VT8235_37
EOF
sed -i 's/ENABLED="no"/ENABLED="yes"/' /etc/vdr/vdr-nvram-wakeup.conf
sed -i 's#COMMANDLINE=""#COMMANDLINE="--directisa --configfile /etc/nvram-wakeup.conf"#' /etc/vdr/vdr-nvram-wakeup.conf
Display More
16. HG DVB Treiber
# mercurial installieren
aptitude install mercurial
cd /usr/local/src/
# die Treiber herunterladen
hg clone http://linuxtv.org/hg/v4l-dvb
cd v4l-dvb/
# Treiber konfigurieren
make menuconfig
make
# Kerneltreiber ggf. sichern
if [ -d /lib/modules/$(uname -r)/kernel/drivers/media ]; then mv /lib/modules/$(uname -r)/kernel/drivers/media /lib/modules/media-$(uname -r) ; fi
# hg Treiber installieren
make install
reboot
Display More
# Kerneltreiber wiederherstellen
rm -rf /lib/modules/$(uname -r)/kernel/drivers/media/*
cp -a /lib/modules/media-$(uname -r)/* /lib/modules/$(uname -r)/kernel/drivers/media/
depmod -a
17. Kernel Update
Bei einem Kernel Update müssen sowohl der Kernel als auch LIRC und die HG DVB Treiber
neu übersetzt werden.
a. Kernel
Der Kernel kann auf dem meist performanterem Server übersetzt werden.
# auf dem Server in das VDR System wechseln
chroot /srv/nfsroot/vdr_lenny/
# Updates einspielen
aptitude update && aptitude safe-upgrade
# in das Verzeichnis /usr/src wechseln
cd /usr/src/
# Kernel herunterladen
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33-rc4.tar.bz2
# wget --quiet http://www.on-luebeck.de/kilroy/vdr_lenny_howto/powernow-k7-manual-2.6.33-rc4_enev_kilroy.patch.gz # notwendig für AMD Geode NX 1750
# sollten sich mit der Zeit einige ältere Kernel-Versionen angesammelt haben, kann man diese löschen
# im Beispiel wird 2.6.31 gelöscht:
#DEL_KERNEL=2.6.31; rm /usr/src/linux-$DEL_KERNEL.tar.bz2; rm -rf /usr/src/linux-$DEL_KERNEL/; rm -rf /lib/modules/*$DEL_KERNEL/; rm /boot/*$DEL_KERNEL
# Kernel-Archiv entpacken
tar xjf linux-2.6.33-rc4.tar.bz2
# Link auf alten Kernel entfernen...
rm linux
# ... und auf den neuen Kernel setzen
ln -s linux-2.6.33-rc4 linux
# in das Kernel-Verzeichnis wechseln
cd linux
# zcat ../powernow-k7-manual-2.6.33-rc4_enev_kilroy.patch.gz | patch -b -p0 # notwendig für AMD Geode NX 1750
# die alte Kernel-Konfiguration übernehmen
cp /boot/config-2.6.32 .config
# neue Kernel-Einstellungen abfragen
make oldconfig # bzw. make ARCH=x86 oldconfig
# Kernel übersetzen
make # oder make -j2 bzw. make ARCH=x86
# Module und Kernel installieren
make modules_install install
# VDR System verlassen
exit
Display More
Nach dem Verlassen der chroot Umgebung mittels exit wird der neue Kernel in die PXELINUX
Konfigurationsdatei eingetragen.
cp /srv/netboot/nfsroot/vdr_lenny/boot/vmlinuz-2.6.33-rc4 /var/lib/tftpboot/vmlinuz-2.6.33-rc4-vdr_lenny
# cp /srv/netboot/nfsroot/vdr_lenny/boot/vmlinuz-2.6.33-rc4 /var/lib/tftpboot/vmlinuz-2.6.33-rc4-vdr_lenny_amd64
cd /var/lib/tftpboot/pxelinux.cfg/
vi 01-00-11-22-33-44-55-lenny # MAC Beispiel: 00:11:22:33:44:55
#
cat 01-00-11-22-33-44-55
# kilroy
LABEL linux
# Kernel muß im tftp Verzeichnis liegen
# server:~# ls /var/lib/tftpboot/
KERNEL vmlinuz-2.6.33-rc4-vdr_lenny
# KERNEL vmlinuz-2.6.33-rc4-vdr_lenny_amd64
APPEND root=/dev/nfs nfsroot=172.17.42.1:/srv/netboot/nfsroot/vdr_lenny,v3,rsize=65536,wsize=65536
IPAPPEND 1
Display More
Jetzt muß der VDR CLient Rechner neu gestartet werden. Es wird mit dem neuen
Kernel gestartet.
b. LIRC
Auf dem neu gestarten VDR Rechner wird nun LIRC neu übersetzt.
uname -snrmo
#Linux zaphod 2.6.33-rc4 x86_64 GNU/Linux
/etc/init.d/lirc-cvs stop
cd /usr/local/src/lirc/
cvs update
make distclean
./setup.sh
# 1 Driver configuration
# 2 Software configuration
# 3 Save configuration & run configure
make
make install
/etc/init.d/lirc-cvs start
Display More
Alternativ LIRC auf dem Server übersetzen.
# auf dem Server in das VDR System wechseln
chroot /srv/nfsroot/vdr_lenny/
KERNEL=$(ls -l /usr/src/linux | cut -f12- -d" " | sed "s/linux-//") # unschön
cd /usr/local/src/lirc/
cvs update
make distclean
./setup.sh
# 1 Driver configuration
# 2 Software configuration
# 4 Save configuration & exit
./configure --with-kernel-dir=/usr/src/linux-$KERNEL/ --with-moduledir=/lib/modules/$KERNEL/misc/ --with-driver=serial
make
make install
depmod -a $KERNEL
exit
Display More
c. HG DVB Treiber
uname -snrmo
#Linux zaphod 2.6.33-rc4 x86_64 GNU/Linux
cd /usr/local/src/v4l-dvb/
hg pull -u http://linuxtv.org/hg/v4l-dvb
# cp ./v4l/.config ./v4l/.config.old
make distclean
# cp ./v4l/.config.old ./v4l/.config
make menuconfig
make
# Kerneltreiber ggf. sichern
if [ -d /lib/modules/$(uname -r)/kernel/drivers/media ]; then mv /lib/modules/$(uname -r)/kernel/drivers/media /lib/modules/media-$(uname -r) ; fi
make install
reboot
Display More