PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : lirc aufsetzen für Leadtek Tv2000 Fernbedienung



Saedelaere
09.07.06, 23:06
Hi,

ich kämpfe mich jetzt seit geraumer Zeit durch englische Anleitungen, aber irgendwie funktioniert das ganze überhaupt nicht.

Also ich bin Besitzer einer Leadtek Winfast Tv2000 xp Karte mit coolcommand Fernbedienung.
Die TV Karte funzt mittlerweile echt gut und das Bild ist mit tvtime fabelhaft. Allerdings ist die Bedienung etwas dürftig. Am meisten nervt, dass man mit der Maus die Lautstärke nicht regulieren kann.
Also wofür habe ich ne Fernbedienung :)
Ich habe mir die entsprechende Datei heruntergeladen und lirc über den Smart Paketmanager installiert.
Die datei habe ich lircd.conf umbenannt und in /etc/ kopiert.
Wie es jetzt weitergehen soll weiß ich allerdings nicht.
Habe die Forumssuche benutzt und auch google. Bitte keine Hinweise darauf!

Als OS benutze ich Suse 10.1

Vlg

Saedelaere

Saedelaere
10.07.06, 13:12
So nachdem ich mit dem RPM Paket überhaupt nicht weitergekommen bin, habe ich es über SMART deinstalliert.
Habe mir von lirc.org lirc-0.8.0 gezogen und entpackt.
Bin dann der Anleitung gefolgt leider wieder ohne Ergebnis:



dhcppc6:/home/ahuber/Downloads/lirc-0.8.0 # make
make all-recursive
make[1]: Entering directory `/home/ahuber/Downloads/lirc-0.8.0'
Making all in drivers
make[2]: Entering directory `/home/ahuber/Downloads/lirc-0.8.0/drivers'
Making all in lirc_dev
make[3]: Entering directory `/home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_dev'
make[3]: Für das Ziel »all« ist nichts zu tun.
make[3]: Leaving directory `/home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_dev'
Making all in lirc_i2c
make[3]: Entering directory `/home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_i2c'
mv Makefile Makefile.automake
cp ../Makefile.kernel Makefile
make -C /lib/modules/2.6.16.13-4-default/build/ SUBDIRS=/home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_i2c modules \
KBUILD_VERBOSE=1
make[4]: Entering directory `/usr/src/linux-2.6.16.13-4-obj/i386/default'
make -C ../../../linux-2.6.16.13-4 O=../linux-2.6.16.13-4-obj/i386/default modules
make -C /usr/src/linux-2.6.16.13-4-obj/i386/default \
KBUILD_SRC=/usr/src/linux-2.6.16.13-4 \
KBUILD_EXTMOD="/home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_i2c" -f /usr/src/linux-2.6.16.13-4/Makefile modules
rm -rf /home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_i2c/.tmp_versions
mkdir -p /home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_i2c/.tmp_versions
make -f /usr/src/linux-2.6.16.13-4/scripts/Makefile.build obj=/home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_i2c
gcc -m32 -Wp,-MD,/home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_i2c/.lirc_i2c.o.d -nostdinc -isystem /usr/lib/gcc/i586-suse-linux/4.1.0/include -D__KERNEL__ -Iinclude -Iinclude2 -I/usr/src/linux-2.6.16.13-4/include -include /usr/src/linux-2.6.16.13-4-obj/i386/default/include/linux/autoconf.h -I/home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_i2c -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -Werror-implicit-function-declaration -fno-strict-aliasing -fno-common -ffreestanding -Os -fomit-frame-pointer -pipe -msoft-float -mpreferred-stack-boundary=2 -march=i586 -mtune=generic -mregparm=3 -Iinclude/asm-i386/mach-default -I/usr/src/linux-2.6.16.13-4/include/asm-i386/mach-default -Wdeclaration-after-statement -Wno-pointer-sign -DIRCTL_DEV_MAJOR=61 -DEXPORT_SYMTAB -DHAVE_CONFIG_H -I. -I/usr/src/linux-2.6.16.13-4/. -I. -I/usr/src/linux-2.6.16.13-4/. -I../.. -I/usr/src/linux-2.6.16.13-4/../.. -I/home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_i2c/../.. -I/lib/modules/2.6.16.13-4-default/build//include/ -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(lirc_i2c)" -D"KBUILD_MODNAME=KBUILD_STR(lirc_i2c)" -c -o /home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_i2c/.tmp_lirc_i2c.o /home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_i2c/lirc_i2c.c
/home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_i2c/lirc_i2c.c:363: error: unknown field ‘name’ specified in initializer
/home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_i2c/lirc_i2c.c:363: warning: initialization makes integer from pointer without a cast
/home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_i2c/lirc_i2c.c:364: error: ‘I2C_DRIVERID_EXP3’ undeclared here (not in a function)
/home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_i2c/lirc_i2c.c:365: error: unknown field ‘flags’ specified in initializer
/home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_i2c/lirc_i2c.c:365: error: ‘I2C_DF_NOTIFY’ undeclared here (not in a function)
make[7]: *** [/home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_i2c/lirc_i2c.o] Fehler 1
make[6]: *** [_module_/home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_i2c] Fehler 2
make[5]: *** [modules] Fehler 2
make[4]: *** [modules] Fehler 2
make[4]: Leaving directory `/usr/src/linux-2.6.16.13-4-obj/i386/default'
make[3]: *** [lirc_i2c.o] Fehler 2
make[3]: Leaving directory `/home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_i2c'
make[2]: *** [all-recursive] Fehler 1
make[2]: Leaving directory `/home/ahuber/Downloads/lirc-0.8.0/drivers'
make[1]: *** [all-recursive] Fehler 1
make[1]: Leaving directory `/home/ahuber/Downloads/lirc-0.8.0'
make: *** [all] Fehler 2


Es wird am Schluss auf das Modul lirc_i2c hingewiesen. Dieses ist wohl nicht vorhanden



dhcppc6:/home/ahuber/Downloads/lirc-0.8.0 # modprobe lirc_i2c
FATAL: Module lirc_i2c not found.


Hmm ok nicht vorhanden.

Habe dann einfach mal noch "make install" ausprobiert



dhcppc6:/home/ahuber/Downloads/lirc-0.8.0 # make install
Making install in drivers
make[1]: Entering directory `/home/ahuber/Downloads/lirc-0.8.0/drivers'
Making install in lirc_dev
make[2]: Entering directory `/home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_dev'
make[3]: Entering directory `/home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_dev'
test -c /dev/lirc || (/bin/sh ../../mkinstalldirs /dev && /bin/mknod /dev/lirc c 61 0)
/bin/sh ../../mkinstalldirs /lib/modules/2.6.16.13-4-smp/misc
mkdir /lib/modules/2.6.16.13-4-smp/misc
/usr/bin/install -c -m 644 lirc_dev.ko /lib/modules/2.6.16.13-4-smp/misc/lirc_dev.ko
/sbin/depmod -a
make[3]: Leaving directory `/home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_dev'
make[2]: Leaving directory `/home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_dev'
Making install in lirc_i2c
make[2]: Entering directory `/home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_i2c'
make[2]: *** Keine Regel, um »install« zu erstellen. Schluss.
make[2]: Leaving directory `/home/ahuber/Downloads/lirc-0.8.0/drivers/lirc_i2c'
make[1]: *** [install-recursive] Fehler 1
make[1]: Leaving directory `/home/ahuber/Downloads/lirc-0.8.0/drivers'
make: *** [install-recursive] Fehler 1


Ich komme jetzt nicht mehr weiter. Von Kernel Geschichten habe ich gar keine Ahnung. Die Suche im I-Net nach lirc_i2c machte mir nur klar, dass ich nicht der einzige bin bei dem dieses Modul fehlt.

Hat denn niemand ne Fernbedienung am laufen?

Leberwurstsaft
10.07.06, 13:35
Hat denn niemand ne Fernbedienung am laufen?
Doch, aber am seriellen Port *g*

Bleib mal bei dem RPM, es sollte das benötigte Modul mitbringen, lt. Google müßte es lirc_gpio sein. Was sagt ein modprobe lirc_gpio nach Installation des RPMs?

Saedelaere
10.07.06, 14:37
Also folgendes ist passiert.

Ich habe es noch mit einem Snapshot (lirc-0.8.1pre1) versucht. Da lief die install durch. Aber gebracht hat es gar nichts.
Danach habe ich über SMART die zusätzlichen Kernelquellen lirc_kmp... installiert. Insgesamt 4 Stück. Danach auch wieder das RPM.

Wenn ich nach dem Start des Rechners den Konqueror öffne und unter /dev/ nach lirc suche geht gar nix. Danach habe ich gemacht modprobe lirc_dev und modprobe lirc_i2c. Funktioniert. Danach starte ich lircd.

So jetzt habe ich in /dev/ einmal lirc0 und einmal lirc1

Mit irrecord kann ich auch wunderbar eine Konfig-File erstellen. Aber das war es auch schon. Außerdem habe ich schon eine. Ist halt die einzige Funktion auf die lirc reagiert.

Mist habe ircat -v gestartet.

Als Version wird 0.8.1pre1 ausgegeben. Habe jetzt wohl einen Versionssalat angerichtet.
Wenn ich mit "make install" installiere, wie deinstalliere ich dann wieder?

Ich muss noch hinzufügen, dass ich gerade an dem Rechner meiner Freundin sitze. Die hat eine Hauppauge Primio FM eingebaut. Ich versuche gerade die zum laufen zu bringen, deshalb lirc_i2c!!
Sollte aber vom Vorgang her identisch sein.

Saedelaere
10.07.06, 14:49
Beim Start von irexec folgende Fehlermeldung



irexec
irexec: could not connect to socket
irexec: Connection refused


tztztz

Habs wohl selbst ein bissle vermasselt. Gibt es noch Rettung? Krieg ich die ganzen Daten aus lirc-0.8.1pre1 wieder weg?

Ede
10.07.06, 22:23
Hättest am besten wohl direkt lirc-0.8.0-17.i586.rpm von http://suse.inode.at installiert. Dazu müßtest du in Yast die Installationsquelle hinzufügen:
http-Server
Server: suse.inode.at
Verzeichnis auf dem Server: opensuse/distribution/SL-10.1/inst-source

Aber vielleicht geht das ja auch mit dem, was du bis jetzt gemacht hast.

irexec: could not connect to socket
irexec: Connection refused
muß so tragisch nicht sein. Das hatte ich bis jetzt auch immer am Anfang, wenn ich meine Fernbedienung am seriellen Port (Modul lirc_serial) installiert habe. irrecord und xmode2 ging, aber bei irexec kam "Connection refused".
Welches lirc-Modul für deine TV-Karte benötig wird, weiß du ja jetzt, oder? Dass irrecord funktioniert ist ja schon ein sehr gutes Zeichen.
Also um "Connection refused" zu vermeiden, mußte ich immer die Datei /etc/sysconfig/lirc einwenig editieren und evtl. die Rechte der betreffenden /dev-Dateien ändern, weiß ich nicht mehr genau.

dir /dev|grep irc
lrwxrwxrwx 1 root root 5 2006-06-12 11:59 lirc -> lirc0
crw-rw---- 1 root root 60, 0 2006-06-12 11:59 lirc0
lrwxrwxrwx 1 root root 19 2006-06-12 11:59 lircd -> /var/run/lirc/lircd

dir /var/run/lirc
insgesamt 0
srw-rw---- 1 root video 0 2006-06-12 11:59 lircd
prw-rw---- 1 root root 0 2006-07-10 17:02 lircm
/var/run/lirc/lircm ist für die Steuerung des Mauszeigers mit lircmd.


cat /etc/sysconfig/lirc
## 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="default"

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

## Type: string(lirc_bt829,lirc_gpio,lirc_i2c,lirc_it87,lir c_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=""
Diese Datei tritt in Kraft, wenn du
rclirc startmachst. Dann wird das Modul, das du in der Datei einträgst, automatisch geladen, lircd gestartet (aber nicht irexec und lircmd) usw. Brauchst du nicht extra "modprobe ..." und "lircd" einzugeben.

Saedelaere
11.07.06, 14:03
Es ist unglaublich aber ich habe erste Erfolge!

Habe meine sysconfig/lirc.conf entsprechend angepasst



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

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

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

## 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 Rechte der Dateien haben schon gestimmt.
Den Erfolg brachte allerdings erst der Befehl rclirc start. Nachdem ich den in der Konsole ausgeführt habe, funktionierte alles perfekt. Konnte danach irw ausführen und alle Tasten werden korrekt erkannt.

Nun zu meinem nächsten Problem, wie ordne ich den entsprechenden Programmen (kaffeine, amarok, tvtime ...) die entsprechenden Befehle zu.

Unter SuSe gitb es im Menü ein Programm Namens IRKick. Hier wird die Fernbedienung erkannt und ich kann auch entsprechende Prgramme auswählen. Allerdings kennt das Programm kein tvtime und es funktioniert nur in Teil der Tasten.
In kdetv funktioniert der Umschalter "Fullsreen", die Tasten 1 - 9 und die Stummschaltung. Was aber wichtig wäre ist channel_up + channel_down und volume_up + volume_down.

Gibt es da noch andere Möglichkeiten??

Vlg

Ede
11.07.06, 15:29
Also ich benutze irkick mit kdetv.
Im Konfigurationsmenü von irkick kann ich jede beliebige Taste der Fernbedienung, die in /etc/lircd.conf definiert ist, auswählen, um insgesamt 28 unterschiedliche Aktionen in kdetv auszulösen. Ich brauche natürlich nicht alle Aktionen in kdetv, aber Programm starten/beenden, channel_up, channel_down, fullscreen und videotext funktionieren bei mir einwandfrei.
Wo ist bei dir das Problem? kannst du im Konfigurationsmenü von irkick nicht alle Tasten, die in /etc/lircd.conf definiert sind, auswählen?
Kannst du im Konfigurationsmenü von irkick nicht alle Aktionen von kdetv auswählen?
Oder kannst du schon alles auswählen, aber es funktioniert schließlich nicht?
kaffeine, amarok und tvtime benutze ich nicht und habe davon keine Ahnung.
Die Laustärke ändere ich nicht über irkick/kdetv, sondern direkt über irexec und amixer.
Dafür habe ich in der Datei ~/.lircrc den folgenden Einrag:

begin
prog = irexec
button = tv_mute
config = amixer set Line mute &
config = amixer set Line unmute &
end
begin
prog = irexec
button = vol_down
repeat = 2
config = amixer set Line 3%- &
end
begin
prog = irexec
button = vol_up
repeat = 2
config = amixer set Line 3%+ &
end

Saedelaere
13.07.06, 09:38
Hi,

ich hab das ganze jetzt soweit hinbekommen. IRKick reagiert jetzt entsprechend auf meine Befehle :)
Jetzt noch zwei Probleme:
1.
Wenn der Rechner hochgefahren ist und ich als Root "rclirc start" in der Konsole ausführe funktioniert die Fernbedienung danach nicht. Ich muss vorher "modprobe lirc_dev" und "modprobe lirc_i2c" ausführen. Wenn ich danach "rclirc start" eingebe funktioniert die Fernbedienung einwandfrei. Woran könnte das liegen, und wie könnte ich das im Notfall automatisieren?
Hier noch mal meine /ete/sysconfig/lirc


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

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

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

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


Hier kann irgend etwas noch nicht stimmen, denk ich mal. Das Problem ist ja auch, dass ich zwei Module starten muss, ich aber keine Ahnung hab, wie ich das im Configfile vermerken muss.

2.
Irexec bringt bei mir überhaupt nichts. Das Teilreagiert nicht auf eine einzige Taste auf meiner Fernbedienung. Habe eine ircrc in /etc/ erstellt. Die findet irexec wohl auch, denn wenn gar keine Datei auf dem Rechner ist meckert er sofort rum. Starte ich irexec in der Konsole, dann bekomme ich sonst keine weiteren Informationen. Auf die eingetragenen Tasten reagiert der rechner aber überhaupt nicht. Gibt es da irgend etwas zu beachten? Könnte mir gut vorstellen, dass das ganze auch noch was mit der nicht ganz funktionierenden Konfiguration zu tun hat.
Hier mal nnoch die /etc/lircrc


begin
prog = irexec
button = MUTE
config = amixer set Line mute &
config = amixer set Line unmute &
end
begin
prog = irexec
button = VOLUMEDOWN
repeat = 2
config = amixer set Line 3%- &
end
begin
prog = irexec
button = VOLUMEUP
repeat = 2
config = amixer set Line 3%+ &
end


Die andere Tv Karte um die es im Titel eigentlich ging scheint mit lirc laut Entwickler nicht kompatibel zu sein. Die KArte mit zig verschiedenen Chips produziert und ich habe eine die nicht mir lirc geht. Hab mir mal schnell nen Seriellen Empfänger bestellt. Hoffe, dass es mit dem gut klappt.

Ede
13.07.06, 14:31
Zitat von Saedelaere
Wenn der Rechner hochgefahren ist und ich als Root "rclirc start" in der Konsole ausführe funktioniert die Fernbedienung danach nicht. Ich muss vorher "modprobe lirc_dev" und "modprobe lirc_i2c" ausführen.
Keine Ahnung, warum. Bei mir werden die Module von rclirc automatisch geladen.

Zitat von Saedelaere
wie könnte ich das im Notfall automatisieren?
In der Datei /etc/sysconfig/kernel kannst du einstellen, dass die beiden Module beim Booten geladen werden.

MODULES_LOADED_ON_BOOT="lirc_dev lirc_i2c"
In Yast kannst du einstellen, dass lirc beim Booten gestartet wird.
Yast --> System --> Runlevel-Editor --> Expertenmodus --> lirc in Runlevel 5 aktivieren --> Einstellungen übernehmen.


Zitat von Saedelaere
Irexec bringt bei mir überhaupt nichts. Das Teilreagiert nicht auf eine einzige Taste auf meiner Fernbedienung. Habe eine ircrc in /etc/ erstellt.
Ich habe von ~/.lircrc geschrieben. Das heißt Datei .lircrc im home-Verzeichnis des users, mit dem du irexec ausführst, anlegen. Also /home/namedesusers/.lircrc


begin
prog = irexec
button = MUTE
config = amixer set Line mute &
config = amixer set Line unmute &
end
begin
prog = irexec
button = VOLUMEDOWN
repeat = 2
config = amixer set Line 3%- &
end
begin
prog = irexec
button = VOLUMEUP
repeat = 2
config = amixer set Line 3%+ &
end
MUTE, VOLUMEDOWN und VOLUMEUP sind Bezeichnungen von Tasten in /etc/lircd.conf? Wenn ja, sollte es funktionieren.
Kannst schauen, was /var/log/lircd sagt.

Saedelaere
13.07.06, 18:58
Danke nochmals für deine Hilfe. Leider komme ich überhaupt nicht weiter.
Irexec reagiert einfach nicht. Null. Dabei funktioniert irw, mode2 und auch irkick.

Geht mir irgendwie nicht runter. Habe auch das Konfigfile schon zig mal editiert und alle möglichen Knöpfe und Funktionen ausprobiert. Interessiert meine Kiste gar nicht.
Vielleicht ist es halt doch ein Problem mit den Zugriffsrechten. Oder die Devices sind nicht richtig angelegt. Aber dann würde der Rest wohl auch nicht gehen.

Ich probiere weiter daran herum. Im Prinzip bin ich mit IRkick ja auch zufrieden, aber ich will halt mit tvtime glotzen, und das wird wohl nicht angesteuert. Oder kann ich IRkick sagen, es soll immer der Applikation die ganz oben steht diesen oder jenen Befehl geben? Also Applikationen, die nicht in der Liste stehen.