Inhaltsverzeichnis
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.patch
--- 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.conf
# 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:
- 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.
