====== Lirc auf einem Ubuntu Diskless Client ======
===== Installation Lirc =====
Nachdem nun der Ubuntu Client wie in [[Ubuntu Diskless Clients mit einem FreeBSD Server]] beschrieben bootet, wird nun der Lirc eingerichtet.
Als erstes werden folgende Pakete nachinstalliert:
# aptitude install lirc lirc-module-source linux-source-2.6.17 setserial
Anschliessend wird das lirc Modul und die Kernel Sourcen entpackt:
# cd /usr/src && tar zxf lirc-modules.tar.gz && tar jxf linux-source-2.6.17.tar.bz2
Um dann das Modul bauen zu koennen, muss erstmal ein neuer Kernel gebaut werden:
# cd /usr/src/linux-source-2.6.17.tar.bz2
# make oldconfig
# make-kpkg clean
# make-kpkg --revision diskless.01 --initrd kernel_image
Da im Kernel 2.6.17 sich Pfade geaendert haben, muessen vorher folgende Patches auf das Kernel Modul angewannt werden.
Auf /usr/src/modules/lirc/drivers/lirc_gpio/lirc_gpio.c:
--- lirc_gpio.c.orig 2006-12-10 20:15:35.000000000 +0100
+++ lirc_gpio.c 2006-12-10 20:14:42.000000000 +0100
@@ -53,10 +53,15 @@
#include "extra_2.6.16/bttv.h"
#include "extra_2.6.16/bttvp.h"
#else
+#if LINUX_VERSION_CODE == KERNEL_VERSION(2,6,17)
+#include "extra_2.6.16/bttv.h"
+#include "extra_2.6.16/bttvp.h"
+#else
#include "../drivers/media/video/bttv.h"
#include "../drivers/media/video/bttvp.h"
#endif
#endif
+#endif
#if BTTV_VERSION_CODE < KERNEL_VERSION(0,7,45)
#error "*******************************************************"
Befor nun das Paket erstellt werden kann, muss noch die Konfiguration von lirc-modules-source geaendert werden.
Dazu wird die Datei /etc/lirc/lirc-modules-source.conf geaendert:
# lirc-modules-source config file used by Debian GNU/Linux
# Space separated list of lirc kernel drivers to build
LIRC_MODULES="serial"
# It87 module configuration
LIRC_IT87_CFLAGS="UNCONFIGURED"
# Parallel module configuration
LIRC_PARALLEL_PORT="UNCONFIGURED"
LIRC_PARALLEL_IRQ="UNCONFIGURED"
LIRC_PARALLEL_TIMER="UNCONFIGURED"
# Serial module configuration
LIRC_SERIAL_PORT="0x3f8"
LIRC_SERIAL_IRQ="4"
LIRC_SERIAL_CFLAGS=" -DLIRC_SERIAL_SOFTCARRIER"
# Sir module configuration
LIRC_SIR_PORT="UNCONFIGURED"
LIRC_SIR_IRQ="UNCONFIGURED"
LIRC_SIR_CFLAGS="UNCONFIGURED"
Wobei Port 0x3f8 und IRQ 4 fuer /dev/ttyS0 stehen.
Anschliessend wird wie in /usr/src/modules/lirc/README beschrieben vorgegangen:
# make-kpkg --revision diskless.01 modules_image
Nachdem nun alle notwendigen Pakete erstellt wurden, koennen diese installiert werden:
# dpkg -i linux-image-2.6.17.13-ubuntu1_diskless.01_i386.deb
# dpkg -i lirc-modules-2.6.17.13-ubuntu1_0.8.0-5ubuntu1+diskless.01_i386.deb
Nachdem beide Pakete installiert sind, muessen die Kernel und initrd Images in das tftpboot Verzeichnis des Servers kopiert werden.
Um jetzt noch sicher zu stellen, dass /dev/ttyS0 nicht von einem anderen Modul verwendet wird, und dass das Lirc Modul geladen wird, muessen noch folgende Eintraege hinzugefuegt werden.
In /etc/serial.conf:
/dev/ttyS0 uart none
In /etc/modules:
lirc_serial
Und in /etc/lirc/hardware.conf:
LIRCD_ARGS=""
LOAD_MODULES=true
DRIVER="default"
DEVICE="/dev/lirc0"
MODULES="lirc_serial"
LIRCD_CONF=""
LIRCMD_CONF=""
Anschliessend kann fuer den Lirc Client eine spezielle PXE Konfiguration erstellt werden, damit nur dieser den entsprechenden Kernel bootet.
Dazu wird in /home/data/diskless/tftpboot/pxelinux.cfg eine neue Datei erstellt.
Der Name dieser Datei setzt sich zusammen aus 01-xx-xx-xx-xx-xx-xx, wobei die xx die Mac Adresse des Clients darstellen.
In diese Datei wird nun folgendes eingefuegt:
LABEL linux
KERNEL vmlinuz-2.6.17.13-ubuntu1
APPEND root=/dev/nfs initrd=initrd.img-2.6.17.13-ubuntu1 nfsroot=10.2.2.10:/home/data/diskless/debian ip=dhcp rw verbose
Anschliessend wird der Client rebootet.
===== Konfiguration des Clients =====
Nachdem nun der Client rebootet hat, sollte das lirc_serial Modul geladen sein.
Nun kann man mit mode2 testen, ob ueberhaupt Signale ankommen:
# mode2 -d /dev/lirc0
Jetzt Buttons auf der Fernbediehnung druecken, und mode2 sollte eine Ausgabe liefern.