• 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] Maussteuerung mit Fernbedienung? PVR 150:

revealed

Guru
Hallo!

Wie einige eventuell wissen, habe ich mir eine recht komplizierte TV-Karte zugelegt. Ich musste mich da schon mit vielem herumschlagen. Dennoch gibt es einige sehr coole Menschen auf der Welt, die mittlerer Weile ein Frontend für die Hauppauge PVR 150 und andere Karten entwickelt haben. Und auch ein Projekt dass Treiber für die Karte an sich entwickelt und auch ein Projekt, dass es Ermöglicht die Fernbedienung zu verwenden.

An sich habe ich die Fernbedienung zum Laufen bekommen. Als gimmeck stelle ich mir jetzt noch vor, diese als Maus verwenden zu können.

Dies soll "lircmd" ermöglichen. Das ist dafür gemacht. Vorweg ich kann für meine TV-Karte kein SuSE rpm verwenden. Ich benötige eine spezielle CVS version. Ich habe OpenSuSE 11.1 und verwende "radeon" als Grafiktreiber.

Hier kann man lesen, wie ich lirc *genau* installiert habe:
http://www.linux-club.de/viewtopic.php?f=18&t=103311&start=0

Und hier meine detaillierte Problembeschreibung bezüglich lircmd:
http://www.linux-club.de/viewtopic.php?f=18&t=103311&start=0#p632794

Dennoch bekomme ich den lircmd nicht ans Laufen und ersuche hiermit bitte Hilfe!

Vielen Dank im Vorraus. (Achtung das ist ein Problem mit viel Text); Ich hoffe dennoch mir hilft jemand! Das fänd ich sehr cool, wenn das vollständig laufen würde :)

Grüße,

R
 
OP
revealed

revealed

Guru
Hallo!

Ich habe jetzt dem Problem weiter folgen können und bin zu neuem Ergebnis gekommen!

Das geht irgendwie seit einigen updates, wenn ich den Xserver schiesse. STRG+ALT+BACKSPACE (2x);
Wenn dann die session gestartet ist, kann ich tatsächlich mit der Fernbedienung steuern.
Das Problem ist ich muss den xserver jedesmal schiessen, damit es funktioniert. Das erklähre ich mir so:

Die Devicenode:
Code:
/dev/lircm
Wird vom lircmd daemon erstellt.

Das muss passieren, bevor - die erkennung von Mäusen, etc stattfindet.

Das heisst also dieser daemon - lircmd muss vor: kdm xdm earlyxdm usw.. gestartet werden. Jetzt bilde ich mir natürlich ein, das über einen RC-Script regeln zu können:

Ich habe mir also ein INITscript von einem Programm quasi so angepasst, dass lircmd schonmal an sich startet und dann Berechtigung für die devicenode auch mit sicherheit ausreicht. Zunächst.. das möchte ich später noch einschränken oder besser lösen.

Was mein riesen Problem ist:
Wie erreiche ich dass lircm zum richtigen Zeitpunkt startet? Also vor Xdm early xdm kdm usw... ?

Zu diesem zweck: /etc/init.d/lircmd
ln -s /etc/init.d/lircmd /usr/sbin/rclircmd
Code:
Edit: (Script habe ich entfernt!! Bitte nächsten Post ansehen!) /Edit

Ich hoffe jemand kann das!

Gruß,

R
 
OP
revealed

revealed

Guru
Hallo!

Ich habe den ganzen Tag mein Rechner neugestartet. Ich habe jetzt ein Ergebnis das funktioniert:

Von dem lircmd rcscript bin ich wieder abgekommen - den habe ich gelöscht. Stattdessen hab ich den lirc rc script vom SuSE rpm erweitert.

Habe den RC Script vom SuSE RPM um folgenden diff ergänzt:
Code:
wild-thing:/home/disk/Documents # diff -u lirc.suse lirc.neu

Achtung das ist auf eigenem Mist gewachsen! Ich gebe dafür keinerlei Garantie. Falls es jemand nutzt, auf eine Gefahr!

EDIT: 00:38 (Habe noch etwas geändert... so läuft es nochmal besser: ) /EDIT
EDIT2: 22. Jun 23:08 Habe grundlegend etwas geändert: /EDIT
Code:
--- lirc.suse   2009-06-21 19:49:12.000000000 +0200         
+++ lirc.neu    2009-06-21 19:48:21.000000000 +0200         
@@ -13,24 +13,36 @@                                                                                          
 #                                                                                                           
 ### BEGIN INIT INFO                                                                                         
 # Provides:          lirc                                                                                   
-# Required-Start:    $remote_fs                                                                             
-# Required-Stop:     $remote_fs                                                                             
 # Default-Start:     3 5                                                                                    
 # Default-Stop:      0 1 2 6                                                                                
-# Short-Description: lirc daemon                                                                            
+# Required-Start:    $acpid $local_fs $remote_fs $syslog $network                                           
+# Required-Stop:     $syslog                                                                                
+# X-Start-Before:    hal acpid kdm gdm xdm                                                                  
+# X-Stop-After:      kdm gdm xdm hal                                                                        
+# Short-Description: lirc daemon with lircmd                                                                
 # Description:       The  main  task  of lircd is to decode the infrared                                    
 #      signals and provide an uniform interface for client applications                                     
 ### END INIT INFO                                                                                           
                                                                                                             
 # Check for missing binaries (stale symlinks should not happen)                                             
 lircd_BIN=/usr/sbin/lircd                                                                                   
+lircmd_BIN=/usr/sbin/lircmd                                                                                 
+lircmd_flag="/etc/lircmd.conf"                                                                              
+                                                                                                            
 test -x $lircd_BIN || exit 5                                                                                
+test -x $lircmd_BIN || exit 5                                                                               
                                                                                                             
 # Check for existence of needed config file and read it                                                     
 lircd_CONFIG=/etc/sysconfig/lirc                                                                            
 test -r $lircd_CONFIG || exit 6                                                                             
 . $lircd_CONFIG                                                                                             
                                                                                                             
+# Check for lircmd config to be available                                                                   
+lircmd_CONFIG=/etc/lircmd.conf                                                                              
+test -r $lircmd_CONFIG || { echo "$lircmd_CONFIG not existing";                                             
+        if [ "$1" = "stop" ]; then exit 0;                                                                  
+        else exit 6; fi; }                                                                                  
+                                                                                                            
 # Source LSB init functions                                                                                 
 # providing start_daemon, killproc, pidofproc,                                                              
 # log_success_msg, log_failure_msg and log_warning_msg.                                                     
@@ -142,7 +154,8 @@                                                                                          
        ## Start daemon with startproc(8). If this fails                                                     
        ## the return value is set appropriately by startproc.                                               
        eval startproc $lircd_BIN $(makeargs)                                                                
-                                                                                                            
+        ## Start the lircmd as daemon (default) (no evaluation)                                             
+        $lircmd_BIN $lircmd_flag                                                                            
        # Remember status and be verbose                                                                     
        rc_status -v
        ;;
@@ -152,6 +165,7 @@
        ## killproc sets the return value according to LSB.

        killproc -TERM $lircd_BIN
+        killproc -TERM $lircmd_BIN

        # Remember status and be verbose
        rc_status -v
@@ -181,6 +195,7 @@
        echo -n "Reload service lircd "
        ## if it supports it:
        killproc -HUP $lircd_BIN
+        killproc -HUP $lircmd_BIN
        #touch /var/run/lircd.pid
        rc_status -v

@@ -195,6 +210,7 @@
        # If it supports signaling:
        echo -n "Reload service lircd "
        killproc -HUP $lircd_BIN
+        killproc -HUP $lircmd_BIN
        #touch /var/run/lircd.pid
        rc_status -v

@@ -217,6 +233,7 @@

        # NOTE: checkproc returns LSB compliant status values.
        checkproc $lircd_BIN
+        checkproc $lircmd_BIN
        # NOTE: rc_status knows that we called this init script with
        # "status" option and adapts its messages accordingly.
        rc_status -v

chkconfig lirc off
chkconfig lirc on
reboot

lircmd.conf:
Code:
#
# lircmd config file
#

PROTOCOL IntelliMouse

ACCELERATOR start max multiplier
ACCELERATOR 1 30 10

#ACTIVATE * RESERVED
#ACTIVATE * #
TOGGLE_ACTIVATE * #

MOVE_N * Up
MOVE_NE * Up, Right
MOVE_E * Right
MOVE_SE * Down, Right
MOVE_S * Down
MOVE_SW * Down, Left
MOVE_W * Left
MOVE_NW * Up, Left
#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

PS.: Das starten vor xdm usw möchte ich durch folgende einträg im rcscript erreichen:
Code:
# X-Start-Before:
X-Start-Before entnahm ich aus der Manpage zu insserv. usw...

Den RCSCRIPT oben Editiere ich derzeit ab und zu... jeweils mit Vermerk.

Hier habe ich diese Frage nochmals einfliessen lassen. Trotz der Tatsache, dass ich da schon quasi ein trippleposting hingelegt habe also ein drittes in Folge, hoffe ich auf Hilfe :) Fände das sau cool, wenn da Novell was machen könnte! Währ ja gelacht. Ich glaube fest daran, dass die PVR150 und lircmd und lirc und ivtv aus der Box funktionieren könnten.... Mal sehen was passiert.
https://bugzilla.novell.com/show_bug.cgi?id=515040
 
Oben