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

[gelöst] Lirc - Microsoft MCE-Fernbedinung geht nicht

Marko-L

Newbie
Hallo,

irgendwie komme ich nicht weiter mit Lirc und einer Microsoft MCE-Fernbedienung (Clone) mit HP-USB-Empfänger.

OS: OpenSuse 11.2
Lirc (Version: 0.8.5-4.1) mit Yast installiert

Ich habe mich an dieser Anleitung orientiert:

http://www.linupedia.org/opensuse/LIRC

Als Lirc-Modul hab ich "mce_usb" gewählt. Die Entsprechende Lirc.conf hab ich von der Lirc-Website runtergeladen. Es lief auch alles problemlos ab.

Wenn ich aber ./irw auf der Konsole starte und Tasten auf der FB drücke, tut sich rein garnichts.

Hier ein paar Konsolen-Ausgaben:
lsusb
Code:
vdruser@vdr:~> lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 148f:2573 Ralink Technology, Corp. RT2501USB Wireless Adapter
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 0458:002c KYE Systems Corp. (Mouse Systems) 
Bus 003 Device 003: ID 045e:006d Microsoft Corp. eHome Remote Control Keyboard keys
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

lsmod
Code:
vdruser@vdr:~> lsmod
Module                  Size  Used by
cryptd                 10832  0 
crypto_wq               2064  1 cryptd
aes_x86_64              9576  3 
aes_generic            29128  1 aes_x86_64
ip6t_LOG                7980  11 
xt_tcpudp               4104  22 
xt_pkttype              2248  3 
ipt_LOG                 7660  11 
xt_limit                4076  22 
af_packet              28680  2 
snd_pcm_oss            60032  0 
snd_mixer_oss          22728  1 snd_pcm_oss
snd_seq                78528  0 
snd_seq_device         10460  1 snd_seq
edd                    13232  0 
cpufreq_conservative    10360  0 
cpufreq_userspace       4364  0 
cpufreq_powersave       2152  0 
powernow_k8            19340  0 
ip6t_REJECT             6856  3 
nf_conntrack_ipv6      26600  4 
ip6table_raw            3720  1 
xt_NOTRACK              2248  4 
ipt_REJECT              4136  3 
xt_state                2920  8 
iptable_raw             3560  1 
iptable_filter          4520  1 
ip6table_mangle         5000  0 
nf_conntrack_netbios_ns     3400  0 
nf_conntrack_ipv4      14232  4 
nf_conntrack          101920  5 nf_conntrack_ipv6,xt_NOTRACK,xt_state,nf_conntrack_netbios_ns,nf_conntrack_ipv4
nf_defrag_ipv4          2856  1 nf_conntrack_ipv4
ip_tables              24536  2 iptable_raw,iptable_filter
ip6table_filter         4552  1 
ip6_tables             26072  4 ip6t_LOG,ip6table_raw,ip6table_mangle,ip6table_filter
x_tables               30768  11 ip6t_LOG,xt_tcpudp,xt_pkttype,ipt_LOG,xt_limit,ip6t_REJECT,xt_NOTRACK,ipt_REJECT,xt_state,ip_tables,ip6_tables
fuse                   87984  5 
loop                   22292  0 
dm_mod                101544  0 
arc4                    2568  2 
ecb                     4168  2 
cryptomgr             109904  0 
aead                   10792  1 cryptomgr
pcompress               3560  1 cryptomgr
crypto_blkcipher       18028  3 cryptd,ecb,cryptomgr
crypto_hash            17416  2 cryptd,cryptomgr
crypto_algapi          25904  10 cryptd,aes_x86_64,aes_generic,arc4,ecb,cryptomgr,aead,pcompress,crypto_blkcipher,crypto_hash
snd_hda_codec_atihdmi     5352  1 
rt73usb                32492  0 
crc_itu_t               2568  1 rt73usb
isl6421                 3048  1 
snd_hda_codec_realtek   318316  1 
rt2500usb              26316  0 
rt2x00usb              15624  2 rt73usb,rt2500usb
rt2x00lib              42120  3 rt73usb,rt2500usb,rt2x00usb
input_polldev           5528  1 rt2x00lib
mac80211              257024  2 rt2x00usb,rt2x00lib
b2c2_flexcop_pci        9916  0 
cfg80211              123264  2 rt2x00lib,mac80211
amd64_edac_mod         39392  0 
ohci1394               38340  0 
ppdev                  12368  0 
rfkill                 28176  1 cfg80211
edac_core              60788  1 amd64_edac_mod
pcspkr                  3720  0 
serio_raw               7916  0 
snd_hda_intel          37184  2 
snd_hda_codec         111112  3 snd_hda_codec_atihdmi,snd_hda_codec_realtek,snd_hda_intel
joydev                 14400  0 
snd_hwdep              11216  1 snd_hda_codec
snd_pcm               117808  4 snd_pcm_oss,snd_hda_intel,snd_hda_codec
snd_timer              32152  2 snd_seq,snd_pcm
snd                    97608  13 snd_pcm_oss,snd_mixer_oss,snd_seq,snd_seq_device,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_timer
lirc_mceusb            10496  1 
i2c_piix4              16088  0 
lirc_dev               15528  3 lirc_mceusb
sr_mod                 20964  0 
cdrom                  48232  1 sr_mod
b2c2_flexcop           38836  1 b2c2_flexcop_pci
dvb_core              120404  1 b2c2_flexcop
cx24123                17840  2 b2c2_flexcop
cx24113                 9996  2 b2c2_flexcop
sg                     40128  0 
ieee1394              121024  1 ohci1394
snd_page_alloc         12600  2 snd_hda_intel,snd_pcm
floppy                 73576  0 
s5h1420                15788  1 b2c2_flexcop
fglrx                2279288  32 
wmi                     9600  0 
r8169                  46412  0 
parport_pc             46856  0 
parport                46544  2 ppdev,parport_pc
button                  8360  0 
shpchp                 43620  0 
pci_hotplug            39640  1 shpchp
ext4                  426040  2 
jbd2                  115616  1 ext4
crc16                   2504  1 ext4
fan                     6352  0 
processor              56900  1 powernow_k8
ide_pci_generic         5484  0 
atiixp                  5004  0 
ide_core              148128  2 ide_pci_generic,atiixp
ata_generic             6508  0 
pata_atiixp             6952  0 
thermal                25160  0 
thermal_sys            21888  3 fan,processor,thermal

lsmod | grep lirc
Code:
vdruser@vdr:~> lsmod | grep lirc
lirc_mceusb            10496  1 
lirc_dev               15528  3 lirc_mceusb

su rclirc status
Code:
vdr:/home/vdruser # rclirc status
Checking for service lircd                                           running

Ich hoffe hier kann mir jemand weiterhelfen.

Vielen Dank schonmal im vorraus.

Marko
 

revealed

Guru
Hallo :)

Selber hab ich die aktuelle LIRC von lirc.org und ich hab auch nen anderen LIRC (igor plug) adapter und ne andere Fernbedienung ... (von Hauppauge), aber... Ich probiere mal:
Code:
ls -al /var/run/lirc/*
Code:
ls -al /dev/lirc*
Ist dein Benutzer in der Gruppe video?

Hast du die LIRC rcscripte aktiviert?
Code:
ckhconfig lirc

und bitte poste deine:
Code:
/etc/sysconfig/lirc
... möglichst ohne die Kommentare?

Welcher USB adapter ist das genau?? Vielleicht kann man, wenn du uns das verrätst nochmal nachsehen ob wirklich das korrekte Modul verwendet wird. Ich meine ... taucht der in deiner Ausgabe auf?: Weil ich frage mich gerade, ob das nicht MCE Remote Keyboard sein müsste? Falls anders dann welcher USB Dongel ist es denn aus LSUSB?

Gruß,

R
 
OP
M

Marko-L

Newbie
Hallo,

hier die Ausgaben:

ls -al /var/run/lirc/*
Code:
vdruser@vdr:~> ls -al /var/run/lirc/*
srw-rw---- 1 root video 0 25. Jan 10:44 /var/run/lirc/lircd
prw------- 1 root root  0 19. Okt 21:08 /var/run/lirc/lircm

ls -al /dev/lirc*
Code:
vdruser@vdr:~> ls -al /dev/lirc*
crw-rw---- 1 root root 61, 0 25. Jan 10:43 /dev/lirc0
lrwxrwxrwx 1 root root    19 25. Jan 10:44 /dev/lircd -> /var/run/lirc/lircd

Mein Benutzer ist in der Gruppe video und user.

Ich hatte bei der Installation diesen Befehl ausgeführt:
Code:
chkconfig lirc on

Hier die /etc/sysconfig/lirc
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_mceusb"

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

Ich habe folgendes Set bei ebay gekauft:
http://cgi.ebay.de/ws/eBayISAPI.dll...32188&_sacat=See-All-Categories&_fvi=1&_rdc=1

Unter Windoof funktioniert das einwandfrei, bis auf die Fernbedienung, da nutze ich die Phlips Prestigo SRU 8015. Die hab ich auf Microsoft programmiert.
Das sollte ja kein problem sein, oder?

Aus dem lsusb ist es folgender:
Code:
Bus 003 Device 003: ID 045e:006d Microsoft Corp. eHome Remote Control Keyboard keys

Danke schonmal für deine Hilfe.

Gruß Marko
 

revealed

Guru
Also das sieht eigentlich alles ok aus?

also in /dev und in /var

Du hast mir glaube ich die Frage noch nicht beantwortet, ob dein user in der Gruppe "video" ist.

Jetzt müsste man sehen, ob
Code:
LIRC_MODULE="lirc_mceusb"
Die richtige wahl ist, oder ob da ein fehler passiert.

(In dem unteren link steht auch dass wohl alle MCE's die irgendwie auf ein Paket mit ner 2 hinten dran verteilt waren wohl jetzt in diesem sind also wohl anscheinend die völlig korrekte Wahl).

Edit
Wenn ich das hier lese:
http://old.nabble.com/something-terrible-in-0.8.5-td24316803.html

Dünkelt es mir, dass du vermutlich versuchen müsstest, das SUSE rpm runterzuwerfen. Und zurück zur 0.8.4a zu gehen, oder die 0.8.6 zu versuchen. Die aktuelle hab ich auch drauf. Habe LIRC in YasT auf Tabu gesetzt.

Was sagt denn:
Code:
dmesg | grep irc
/Edit
?

Danke.

Gruß,

R
 
OP
M

Marko-L

Newbie
Also ich bin in der Gruppe Video und User.

dmesg | grep irc
Code:
vdruser@vdr:~> dmesg | grep irc
[    5.371000] lirc_dev: IR Remote Control driver registered, major 61 
[    5.411096] lirc_dev: lirc_register_driver: sample_rate: 80
[    6.021996] usbcore: registered new interface driver lirc_mceusb

Das verwundert mich eben auch, die Installation und Konfiguration lief problemlos ab und auch so sieht alles gut aus, trotzdem funktioniert es nicht.

Vielleicht muss ich doch mal eine andere Version probieren.
Morgen Nachmittag werd ich das wohl mal probieren.
Vielleicht hat ja bis dahin noch jemand eine Idee.

Danke für deine Hilfe.
Gruß Marko
 
OP
M

Marko-L

Newbie
macht doch nix, kein problem.

Jetzt wollte ich heute die Lirc 0.8.4a selbst kompilieren.
Nur irgendwie bekomm ich das auch nicht hin. Du hast doch auch Suse 11.2.
Wie hast du deine aktuelle Version installiert.
Ich hab bei google nachgeschaut und hab mitbekommen, dass es bei suse nicht so einfach zu kompilieren ist, da die Kernel-Sourcen woanders liegen. Ich hab etliche Tipps befolgt, aber durchgelaufen ist das Makefile nie.
Es ist immer mit einem Fehler stehen geblieben.

Wie hast du deine Version installiert?
 

revealed

Guru
hm...
Nur irgendwie bekomm ich das auch nicht hin
Vermutlich, weil die eventuell für einen älteren Kernel gedacht sein könnte? Das weiss ich jetz auch nicht.

Vorweg erstmal bitte: "Alles auf eigene Gefahr" ich übernehme keinerlei Verantwortung für irgendwas. Bei mir läuft es so.

also ich bekomm zwar n paar Warnungen und musste noch n bissl finetuning machen ... wie den RC script aus dem SuSE rpm entpacken und wieder platzieren. .. aber:

Erstmal im YasT softwaremanagement LIRC deinstalliert und auf tabu gesetzt. Konflikte mit V4l2 und mplayer ignoriere ich diesbezüglich ggf. Das macht scheinbar keine Probleme in meinem Fall. Muss man ggf. selber wissen!

Ausgehend davon: SuSE 11.2 32 bit Kernel-Desktop:;;;

(Ich habs mal so gemacht:)
Code:
su
Code:
zypper in kernel-source kernel-headers kernel-syms make gcc wget bzip2 tar
Code:
zypper ref
Code:
zypper up
Code:
zypper dup
Code:
cd /opt
Code:
wget http://downloads.sourceforge.net/project/lirc/LIRC/0.8.6/lirc-0.8.6.tar.bz2?use_mirror=ignum
Code:
bzip2 -d lirc-0.8.6.tar.bz2
Code:
tar cf lirc-0.8.6.tar
Code:
cd /opt/lirc-0.8.6/
Code:
sh setup.sh
Dort habe ich dann igorplug_usb gewählt und alles andere auf default gelassen. Du müsstest halt da dann deinen MCE wählen? Dann Speichern und Configure ausführen in dem Menü gewählt.
Dann noch:
Code:
make
Code:
make install
-- Fertig.

Dann habe ich wie gesagt aus dem SuSE rpm den RCScript entpackt und in /etc/init.d platziert.
LIRC 0.8.6 legt seine Konfiguration in:
/etc ab. Also die
Code:
lircd.conf
und die
Code:
lircmd.conf
Die Sysconfigdatei aus dem SuSE RPM habe ich auch gleich platziert... ehm,
Code:
/etc/sysconfig/lirc
Darin steht:
Code:
LIRCD_DEV_PERMISSIONS="660"                                                        
LIRCD_DEV_OWNER="root:video"
LIRCD_DRIVER=""
LIRCD_DEVICE="/dev/lirc0"
LIRC_MODULE="ir-kbd-i2c"
LIRCD_LISTENPORT=""
LIRCD_CONNECT=""
Code:
SuSEconfig
chkconfig lirc on
Die lirc binarys werden nach /usr/local/sbin installiert. Wenn man das nicht per schalter an die setup.sh weitergibt. Das war mir zu öde, bzw ich kapier das noch nicht :) Aber Deswegen habe ich damit der rcscript funktionieren kann symlinks nach: /usr/sbin gelegt.

Etwa so:
Code:
ln -s /usr/local/sbin/lircd /usr/sbin/lircd
Code:
ln -s /usr/local/sbin/lircmd /usr/sbin/lircmd
Dann noch den rcscript aktiviert:
Code:
chkconfig lirc on
Dann habe ich den LIRC rcscript noch modifiziert, dass er lircmd noch startet. Aber das ist noch experimentell und funktioniert sporadisch leider nicht?

Ahso... ich glaube ich habe selbst einen symlink noch erstellt: (Die node an sich wird selbständig angelegt)...
Code:
ln -s /var/run/lirc/lircd /dev/lircd
Code:
ln -s /dev/lirc /dev/lirc0

Falls noch nicht vorhanden? Weiss auch nicht wirklich mehr für was ich die da wollte... ? :irre: Bzw die teile legt der lircrc scipt teilweise selbständig dann an...

Kannst du soweit folgen? Falls nein, was erhältst du für Fehlermeldungen? Ahso fast hätt ich es vergessen... zwischendrin 2 - 3 mal neustarten.

Also ich erhalte wie gesagt keine "Fehler" nur Warnungen.
Ah und hier noch der lircrc script, falls der dir etwas bringen sollte. Das ist halt für die Maussteuerung via Fernbedienung quasi essentiell. Weil /var/run/lirc/lircm muss vor X11 existent sein:
(Bei mir geht es zurzeit so wie es ist):: Man beachte die neuen Sektionen und Einträge für lircm. Mir geht es hauptsächlich dabei darum, dass ich eben mit der Fernbedienung auch gleich die Maus noch steuern kann. Deswegen hab ich das teil modifiziert. Nochmal alles auf eigene Gefahr. Ich übernehme keinerlei Verantwortung. Und Hilfestellung kann ich nur begrenzt geben:
http://nopaste.info/e712c28ea0.html
Ahso ja und damit der lircrcscript in der Konsole komfortabel genutzt werden kann habe ich noch:
Code:
ln -s /etc/init.d/lirc /usr/sbin/lircmd
Dann kann man in der konsole einfach, beispielsweise:
Code:
lircmd start
Code:
lircmd stop
... falls der script erst jetzt platziert worden sein sollte an dieser Stelle nochmal:
Code:
chkconfig lirc off
Code:
chkconfig lirc on

Dazu muss man halt noch für die Maussteuerung die /etc/lircmd.conf füllen. Beispielsweise so in meinem Fall:
Code:
#
# lircmd config file
#

PROTOCOL IntelliMouse

ACCELERATOR start max multiplier
ACCELERATOR 1 30 10

#ACTIVATE * RESERVED
#ACTIVATE * #
TOGGLE_ACTIVATE * #

MOVE_N * Up
#MOVE_NE * 3
MOVE_E * Right
#MOVE_SE * 9
MOVE_S * Down
MOVE_SW * 7
MOVE_W * Left
#MOVE_NW * 1
#MOVE_IN * CH+
#MOVE_OUT * CH-

BUTTON1_CLICK * OK
BUTTON3_CLICK * Menu/i
#BUTTON3_CLICK * MUTE

# BUTTONx_CLICK, BUTTONx_UP, BUTTONx_DOWN are also possible

Das passt auch zur /etc/lircd.conf also zu meiner Fernbedienung... das müsstest du selber rausfinden, bzw zuweisen. Aber dafür dann noch in /etc/X11/xorg.conf:

Neue Sektion:
Code:
## LIRC MOUSE ##
Section "InputDevice"
  Driver      "mouse"
  Identifier  "Mouse[2]"
  Option      "Device" "/var/run/lirc/lircm"
  Option      "Protocol" "IntelliMouse"     
  Option      "SendCoreEvents"              
  Option      "Buttons" "5"                 
  Option      "ZAxisMapping" "4 5"          
EndSection
Und in Section "ServerLayout" neue Zeile:
Code:
  InputDevice  "Mouse[2]"                       # LIRC MOUSE
Hier jetzt /var/run/lirc/lircm, weil die Nodes wohl dorthin laut dem changelog verschoben wurden in einer der letzteren Versionen.

Jetz weisst du alles. Mehr hab ich nicht :)

Bzw... die Fernbedienung... hm die ist die gleiche wie bei ner Hauppauge PVR 350 war aber in meinem fall bei meiner PVR 150 dabei. Da aber der Infrarot von der Karte nicht geht. Weil es einen neuen i2c layer benötigen würde habe ich mir den igorplug_usb auf anraten von einem Kumpel bestellt. Der funktioniert mit der Fernbedienung besser als es das ding von der TV-Karte jemals tat. Die lircd.conf für die Fernbedienung ist irgendwo im contrib verzeichnis vom lirc tar soweit ich mich recht erinnere.

Ui einen hätt ich fast noch unterschlagen:
Code:
mkdir /etc/lirc
Code:
mv /etc/lirc* /etc/lirc
Code:
ln -s /etc/lirc/lircd.conf /etc/lircd.conf
Code:
ln -s /etc/lirc/lircmd.conf /etc/lircmd.conf
Das resultierte davon, dass ich in dem changelog gelesen hatte, dass die Konfigurationsdateien nach /etc/lirc/ verschoben worden seien. Effektiv beim start via rcscript wurden die Konfigurationsdateien dann aber sonst nicht gefunden. So hab ich das dann gelöst.

Ist alles wirr...

Gruß,

R

PS.: Bitte dieses eine "Seitenweise Code posting" zu entschuldigen!
 
OP
M

Marko-L

Newbie
Danke für deine Anleitung.

Die aktuelle Version von Lirc lies sich diesmal auch installieren.
Lag bei der 0.8.4 vielleicht doch am Kernel.

Ich bin dann deiner anleitung weiter gefolgt und komme bei
Code:
chkconfig lirc on
nicht weiter.

Er sagt dann immer:
Code:
vdr:/home/vdruser # chkconfig lirc on
lirc: unknown service

Hast du eine Idee?
 
Oben