Benutzer-Werkzeuge

Webseiten-Werkzeuge


archiv:lirc_auf_einem_ubuntu_diskless_client

Dies ist eine alte Version des Dokuments!


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.

archiv/lirc_auf_einem_ubuntu_diskless_client.1401496371.txt.gz · Zuletzt geändert: von markus

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki