====== 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.