• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Kernelmodule für LIRC laden

Guten Abend allerseits,

ich habe zu meinem HTPC einen IR Sender/Empfänger für die serielle Schnittstelle gelötet. Allerdings habe ich nun Schwierigkeiten, LIRC zum Laufen zu kriegen. Orientiert habe ich mich an der Anleitung aus Linupedia. Wenn ich als root in der Konsole die Kernelmodule einrichten will, passiert folgendes:

Code:
htpcuser@htpc-09:~> su
Passwort:
htpc-09:/home/htpcuser # setserial /dev/ttyS0 uart none
htpc-09:/home/htpcuser # vi /etc/init.d/boot.local
htpc-09:/home/htpcuser # modprobe lirc_serial
FATAL: Module lirc_serial not found.
htpc-09:/home/htpcuser # ls /lib/modules/2.6.31.5-0.1-default/updates/lirc_serial
lirc_serial.ko
htpc-09:/home/htpcuser #

Kann mir bitte jemand auf die Sprünge helfen und mir sagen, was ich hier falsch mache. Vorab schon mal vielen Dank!

Gruß Schorschl
 
Hallo.

Ich nutze das SuSE rpm nicht. Aber normalerweise müsstest du doch in der sysconfig datei von lirc eintragen welches Modul verwendet werden soll und dann den rcscript einfach starten?

Gib mal bitte einen genauen Link zu der Anleitung. Ich hab eine modifiziertes LIRC CVS version, die ich aber leider nicht irgendwie packen könnte oder so. Ich brauch das ding wegs meinem igor_plug.

Nicht alle Module sind glaube ich hotplugfähig. Also der RCSCRIPT sollte das modul automatisch laden, bzw. nach einem reboot automatisch.

Was sagt nach einem reboot:
Code:
lsmod | grep lirc
Und wie siehts aus wenn du den rclirc startest von hand? Steigt dieser aus?

Gruß,

R
 
Hallo revealed,

ich orientiere mich an http://www.linupedia.org/opensuse/LIRC. Dort ist relativ weit unten ein Abschnitt
Installation IR-Empfänger über serielle Schnittstelle (COM)
.

Gruß Schorschl

PS: Die Ausgabe mit lsmod:

Code:
htpc-09:/home/htpcuser # lsmod grep | lirc
If 'lirc' is not a typo you can use command-not-found to lookup the package that contains it, like this:
    cnf lirc
Usage: lsmod
htpc-09:/home/htpcuser #
 
Hallo!

Ah da. Könnte eventuell veraltet sein? Weil schätzungsweise von 2006? Ehm führe mal die Schritte mit den Sysconfigdateien aus und aktiviere lirc daemon:
Code:
chkconfig lirc
(falls off dann:)
Code:
chkconfig lirc on
Starte den rechner neu.

Versuche dann:
Code:
lsmod | grep lirc
Bitte achte auf die Pipe.
und :
Code:
rclirc status

Falls running sollte es geklappt haben. Wenn nicht (dead). Dann müsstest du in glaube:
Code:
/var/log/boot.msg
Eine aussagekräftige Fehlermeldung finden.

Gruß,

R

PS.: Der Schritt mit der boot.local ist ein notfallhack der eigentlich nicht von Nöten sein müsste. Weil sich die Wege wie die Kernelmodule ins System laden zwischen 11.1 und 11.2 meine ich grundlegend verändert haben. Besonders in Bezug auf X. Beispielsweise muss lirc eindeutig vor X gestartet werden, damit man die Maus mit der Fernbedienung steuern kann. Aber da findet auch irgendwie glaube ich ein Wechsel zu diesem HAL Daemon statt wenn ich mich nicht irre. Also der traditionelle weg ist ziemlich statisch.
 
Hallo reveal,

erst mal vielen Dank, jetzt schaut es schon besser aus:

Code:
htpcuser@htpc-09:~> su
Passwort:
htpc-09:/home/htpcuser # lsmod | grep lirc
htpc-09:/home/htpcuser # rclirc status
Checking for service lircd                                                                                                                    running
htpc-09:/home/htpcuser # lsmod | grep lirc
htpc-09:/home/htpcuser #

Das Wörtchen "running" beim Status macht mich dann doch hoffnungsvoll.

Gruß Schorschl
 
komisch es wurden keine Module geladen... (das bedeutet die leere Ausgabe)

Du hast die Eintragungen in der Sysconfig Datei gemacht?

bzw. hast du alle nötigen lirc Pakete?

Du benötigst meine ich folgendes aus yast:
Code:
lirc
Code:
lirc-kmp-(DEIN KERNEL) siehe uname -rio
Code:
lirc-remotes
Code:
liblirc_client
Vielleicht noch:
Code:
python-lirc
Und vielleicht noch ein Frontend wie kdelirc?

Ehm also... prüfen, ggf. nachinstallieren configdateien prüfen chkconfig prüfen, reboot und nochmals:
Code:
lsmod | grep lirc

Nur mal so... die Ausgabe sieht bei mir so in etwa aus:
Code:
lsmod | grep igor
lirc_igorplugusb        5888  1
lirc_dev               12440  3 lirc_igorplugusb
Ich hab halt nen igor anstelle nem serial und auch eingetragen. Das sollte dann auch der Unterschied sein.

Gruß,

R

PS.: Ggf. vorhandene aktualisierungen und dup bitte auch machen.
 
Die lirc Pakete sind alle installiert. Als /etc/sysconfig/lirc verwende ich:

Code:
## Path:           Hardware/Lirc
## Description:    lirc (infrared remote control) configuration
## ServiceRestart: lirc

## Type:           string
## Default:        "660"
#
# permissions for /dev/lircd
#
LIRCD_DEV_PERMISSIONS="660"

## Type:        string
## Default:     "root:video"
#
# owner and group for /dev/lircd
#
LIRCD_DEV_OWNER="root:video"

## Type:        string
## Default:     ""
#
# use given driver
#
LIRCD_DRIVER=""

## Type:        string
## Default:     ""
#
# read from given device
#
LIRCD_DEVICE="/dev/lirc0"

## Type:        string(lirc_bt829,lirc_gpio,lirc_i2c,lirc_it87,lirc_parallel,lirc_sir,ir-kbd-i2c,ir-kbd-gpio)
## Default:     ""
#
# load given lirc driver module
#
LIRC_MODULE="lirc_serial"

## Type:        string
## Default:     ""
#
# listen for network connections on specified port.
# WARNING: don't use this on a machine with an internet
# connection as lircd is running as root!
#
LIRCD_LISTENPORT=

## Type:        string
## Default:     ""
#
# connect lircd to specified host
#
LIRCD_CONNECT=

Die Beschreibung für die Fernbedienung /etc/lirc.conf habe ich aus dem Internet geladen:

Code:
#
# this config file was automatically generated
# using lirc-0.8.3(default) on Thu Dec  4 16:41:48 2008
#
# contributed by
#
# brand:                       Terratec
# model no. of remote control:
# devices being controlled by this remote: Cinergy C PCI HD
#

begin remote

  name  Terratec_Cinergy_C_PCI_HD
  bits           16
  flags SPACE_ENC|CONST_LENGTH

  eps            30
  aeps          100

  header       9070  4416
  one           639  1610
  zero          639   480
  ptrail        637
  repeat       9069  2170
  pre_data_bits   16
  pre_data       0x28D7
  gap          107814
  toggle_bit_mask 0x0

      begin codes
          home                     0x827D
          power                    0x807F
          DVDMenu                  0x42BD
          Subtitles                0xC23D
          Teletext                 0x22DD
          Delete                   0xA25D
          1                        0x40BF
          2                        0xC03F
          3                        0x20DF
          4                        0xA05F
          5                        0x609F
          6                        0xE01F
          7                        0x10EF
          8                        0x906F
          9                        0x50AF
          0                        0x30CF
          AV                       0xD02F
          A.B                      0xB04F
          TV                       0x629D

          DVD                      0xE21D
          VIDEO                    0x926D
          MUSIC                    0x52AD
          PIC                      0xD22D
          UP                       0x08F7
          DOWN                     0x28D7
          LEFT                     0x8877
          RIGHT                    0xC837
          OK                       0x48B7
          EPG                      0xF00F
          Info                     0x6897
          Back                     0xB24D
          Volume+                  0x38C7
          Volume-                  0x7887
          Channel+                 0xD827
          Channel-                 0xF807
          Play                     0x32CD
          Mute                     0xB847
          red                      0xE817
          green                    0x18E7
          yellow                   0x9867
          blue                     0x58A7
          Record                   0x1AE5
          Stop                     0x12ED
          Pause                    0x02FD
          Last                     0x2AD5
          FR                       0x728D
          FF                       0xF20D
          Next                     0x3AC5
      end codes

end remote

Den Fehler, den ich maahe finde ich allerdings nicht. Ich bin schon am Zweifeln, ob ich meinen IR Empfänger/Sender evtl falsch gelötet habe.

Gruß Schorschl
 
Hast du den richtigen Port aktiviert mit setserial?
http://de.opensuse.org/Linux_Infrared_Remote_Control#Einrichtung_eines_seriellen_Empf.C3.A4ngers.2C_Beispiel_openSUSE_11.0

Aber das was mich wie gesagt stutzig macht, ist das er sagt... FATAL: Modul nicht gefunden.

Das heisst es scheint nicht vorhanden zu sein, trotz installierter Pakete? Also es kann ja nichtmal geladen werden. Ansonsten käme ja eine Fehlermeldung warum es nicht geladen werden kann und nicht das es nicht gefunden wird. Also es geht noch nicht mal um die Hardware sondern um das Modul bzw. die lirc_serial.ko <-?

Ich habe wie gesagt nicht die RPM version, sondern CVS selbstgebaut von lirc.org. Bei mir die ko hier vom installer abgelegt:
Code:
/lib/modules/2.6.31.12-0.2-desktop/misc/lirc_igorplugusb.ko

funktioniert denn:
Code:
modprobe /lib/modules/KRENEL-VERSION/updates/lirc_serial(.ko)
?

Gruß,

R
 
Hallo revealed,

vielen Dank für Deine Mühe bisher. Ich glaube, genau das Laden des entsprechenden Kernelmoduls scheitert:

Code:
htpcuser@htpc-09:~> su
Passwort:
htpc-09:/home/htpcuser # setserial /dev/ttyS0
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
htpc-09:/home/htpcuser # setserial /dev/ttyS0 uart none
htpc-09:/home/htpcuser # setserial /dev/ttyS0
/dev/ttyS0, UART: unknown, Port: 0x03f8, IRQ: 4
htpc-09:/home/htpcuser # ls /lib/modules/2.6.31.5-0.1-default/updates/lirc_serial/lirc_serial.ko
/lib/modules/2.6.31.5-0.1-default/updates/lirc_serial/lirc_serial.ko
htpc-09:/home/htpcuser # modprobe -v lirc_serial insmod /lib/modules/2.6.31.5-0.1-default/updates/lirc_serial/lirc_serial.ko irq=4 io=0x3f8
FATAL: Module lirc_serial not found.
htpc-09:/home/htpcuser # uname -r
2.6.31.12-0.2-default
htpc-09:/home/htpcuser # modprobe /lib/modules/2.6.31.5-0.1-default/updates/lirc_serial/lirc_serial.ko
FATAL: Module /lib/modules/2.6.31.5_0.1_default/updates/lirc_serial/lirc_serial.ko not found.
htpc-09:/home/htpcuser #

Ist es möglich, dass das nicht geht, weil die LIRC-Kernelmodule eine geringfügig andere Versionsnummer als der Kernel selbst haben? Ich verstehe hier leider zu wenig von den Tiefen des Betriebssystems.

Gruß Schorschl
 
Hallo revealed,

ich habe das SuSE11.2 für 64bit Rechner. Installiert habe ich den Standardkernel.

Code:
htpcuser@htpc-09:~> cat /etc/SuSE-release
openSUSE 11.2 (x86_64)
VERSION = 11.2
htpcuser@htpc-09:~>

Die ganzen lirc Pakete sind von openSuSE bzw. openSuSE update, nur lirc-python kommt von packman.links2linux.de.

Gruß Schorschl
 
Wenn nach
Code:
depmod -a
das Laden mittels
Code:
modprobe lirc_serial
noch immer nicht funktioniert, dann zeige die Ergebnisse von:
Code:
rpm -qa *lirc*
grep lirc /lib/modules/`uname -r`/modules.dep
find /lib/modules/`uname -r` -type l
 
Hallo joesef-wien,

danke für Deinen Beitrag. Die von Dir vorgeschlagenen Befehle geben folgende Ausgabe:

Code:
htpcuser@htpc-09:~> su
Passwort:
htpc-09:/home/htpcuser # depmod -a
htpc-09:/home/htpcuser # modprobe lirc_serial
FATAL: Module lirc_serial not found.
htpc-09:/home/htpcuser # rpm -qa *lirc*
python-lirc-0.0.5-1.pm.2.1.x86_64
liblirc_client0-0.8.5-4.1.x86_64
lirc-0.8.5-4.1.x86_64
lirc-remotes-0.8.5-4.1.x86_64
lirc-kmp-default-0.8.5_2.6.31.5_0.1-4.4.x86_64
kdelirc-4.3.5-0.1.1.x86_64
htpc-09:/home/htpcuser # grep lirc /lib/modules/'uname -r'/modules.dep
grep: /lib/modules/uname -r/modules.dep: Datei oder Verzeichnis nicht gefunden
htpc-09:/home/htpcuser # find /lib/modules/'uname -r' -type l
find: "/lib/modules/uname -r": Datei oder Verzeichnis nicht gefunden
htpc-09:/home/htpcuser #

Ganz ehrlich: Ich kann da oben nichts mehr rauslesen ;-)

Viele Grüße Schorschl
 
Hi

Mir scheint als läge das Modul in einem alten kernel Pfad? Was sagt denn:
Code:
uname -a
?
Sollte das mit Updates nicht etwas mit 12 am ende sein?

Gruss,

R
 
Hallo revealed,

das gibt bei mir:

Code:
htpc-09:/home/htpcuser # uname -a
Linux htpc-09 2.6.31.12-0.2-default #1 SMP 2010-03-16 21:25:39 +0100 x86_64 x86_64 x86_64 GNU/Linux
htpc-09:/home/htpcuser #

Kann mein Problem damit zusammenhängen, dass ich mir für die TV-Karte eigene Module bauen muss? Das geht, als root angemeldet, prinzipiell so:

Code:
cd /usr/src/packages/SOURCES/
hg clone http://mercurial.intuxication.org/hg/s2-liplianin
cd /usr/src/packages/SOURCES/s2-liplianin
make
make install
reboot

Gruß Schorschl
 
ehm kannst du mal zum test... ?

Ohne die TV-Kartentreiber neu zu bauen nur die LIRC-kmp deinstallieren und nochmal neuinstallieren. Dann das Laden neu versuchen.

Ansonsten würd ich fast sagen, du könntest auch gleich die LIRC von lirc.org versuchen. Weil die Build umgebund und kernel-quellen wirst du sowieso drauf haben für deine TV-Karte?

Problem ist nur, dass du dann verhindern müsstest, dass die RPM version mit der tar von lirc.org durcheinanderkommt. Das beträfe dann das Paketmanagement.

Ich hab hier schonmal geschrieben, wie ich für meine 32 bit LIRC zusammengefrickelt habe:
http://www.linux-club.de/viewtopic.php?f=27&t=107731&hilit=lirc#p667316
Vielleicht klappt das ja für dich oder auch einfacher auch so?

Der unterschied seit dem ich das geschrieben hatte ist, dass ich halt jetzt CVS benutze weil es nen Fehler im igor_plug gab der im CVS gefixt ist. Das betrifft dich aber eigentlich nicht.

Gruß,

R

PS.: Aber stop! Wie sieht denn folgendes aus ?:
Code:
rpm -qa | grep kernel
 
Du sollst die Befehle nicht falsch abtippen, sondern hier im Forum kopieren und in der Konsole einfügen. Deine letzten beiden Befehle sind falsch geschrieben (statt ' ist jeweils ` notwendig).
 
Die ganzen Pakete deinstallieren hab ich mir jetzt nicht getraut: Beim Versuch liblirc_client0 zu deinstallieren hagelt es Fehler wegen nicht erfüllter Abhängigkeiten (498 Stück). Ich habe die genzen *lirc* Pakete einfach aktualisiert und neu gebootet. Hat leider nichts gebracht.

Die Kernelpakete:

Code:
htpcuser@htpc-09:~> su
Passwort:
htpc-09:/home/htpcuser # setserial /dev/ttyS0 uart none
htpc-09:/home/htpcuser # chkconfig lirc
lirc  on
htpc-09:/home/htpcuser # lsmod | grep lirc
htpc-09:/home/htpcuser # modprobe lirc_serial
FATAL: Module lirc_serial not found.
htpc-09:/home/htpcuser # rpm -qa | grep kernel
kernel-firmware-20090821-4.1.noarch
kernel-desktop-2.6.31.12-0.2.1.x86_64
kernel-source-2.6.31.12-0.2.1.noarch
kernel-default-devel-2.6.31.12-0.2.1.x86_64
linux-kernel-headers-2.6.31-3.4.noarch
kernel-default-base-2.6.31.12-0.2.1.x86_64
kernel-desktop-devel-2.6.31.12-0.2.1.x86_64
kernel-default-2.6.31.12-0.2.1.x86_64
htpc-09:/home/htpcuser #

Vermutlich bleibt mir nichts anderes als ein Eigenkompilat.

Gruß Schorschl
 
Code:
liblirc_client0
Diese ist bei mir auch noch installiert. Den konflikt würde ich nicht lösen :)

Ich habe sogar noch "lirc" auf tabu gesetzt, weil es sonst als Abhängigkeit installiert wird für glaube sogar mplayer. Das hat bei mir aber bisher nichts gemacht dass mich das nicht juckt. Diese wird einfach überschrieben vom eigenkompilat, wie du es schön taufst :)

Also ich ignoriere die Abhängigkeit von LIRC für:
- MPlayer
- liblirc_client0 (würde viele viele Pakete mit sich ziehen) (bleibt installiert).
- v4l-tools
- xine-ui
Paket lirc (tabu)
Und alle anderen lirc's deinstalliert. So bleibe ich meine ich meinem Paketmanagement treu. Und mplayer usw. funktioniert alles tadellos so wie ich es brauche.

Sache ist halt, dass ich das SuSE rpm nicht warlos überschreiben möchte. Das könnte zu einem unvorhersehbaren ergebnis führen.

Also hab ich es gelöscht und das Paketmanagement (verstümmelt). LIRC.org Sauber installiert und dann noch etwas weiter modifiziert. Aber nicht einfach drüberinstalliert.

Ich finde es etwas komisch, dass die Abhängigkeiten so tiefgreifende Folgen haben. Aber das ist leider einfach so. In diesem Fall also ein bewusst ignorierter Konflikt.

Der lässt sich auch wieder lösen wenn man das lirc.org wieder deinstalliert und bereinigt und die LIRC aus yast wieder enttabuisiert.

Aber nochmal die: liblirc_client0 bleibt bei mir im YasT. Weil wird überschrieben bei make install.

Gruß,

R
 
Bei der Kompilierung des Treibers hast du dich nicht wirklich an die BUIL Umgebung des Kernels gehalten. Das Paket kernel-firmware benötigst du nur, wenn du wirklich alte Geräte verwendest.

Die Modulverzeichnisse des Kernels sion bei dir unterschiedlich, weshalb auch die Fehler bei dem Laden des Moduls auftreten ("-" und "_").

Weiterhin hat dein kernel (beginnt mit htpc) scheinbar kein eigenes Modulverzeichnis, was der Fall sein sollte, es sei den man kompiliert alle Module fest ein.

Bei dir ist also etwas bei der Kompilierung schief gelaufen.

Dei Konfigurationsdatei hast du nach dem kopieren aber noch auf deine Hardware angepasst oder?
 
Oben