staging.inyokaproject.org

ir-keytable

Status: Gelöst | Ubuntu-Version: Ubuntu 20.04 (Focal Fossa)
Antworten |
Dieses Thema ist die Diskussion des Artikels ir-keytable.

Bleys

Avatar von Bleys

Anmeldungsdatum:
13. August 2006

Beiträge: 6053

Das erste Gerüst ist fertig. Es geht am WE weiter.

Bleys

(Themenstarter)
Avatar von Bleys

Anmeldungsdatum:
13. August 2006

Beiträge: 6053

Die Basis ist fertig. Wer kann, bitte schon mal drüber schauen.

noisefloor Team-Icon

Ehemaliger
Avatar von noisefloor

Anmeldungsdatum:
6. Juni 2006

Beiträge: 28316

Hallo,

bis jetzt eine Frage:

Falls Lirc läuft, muss dieses gestoppt oder besser noch, deinstalliert werden

Das ist ja ein ziemlicher Unterschied. IMHO sollte hier nur das eine oder das anderen stehen, keine Option. Sonst ist das ja nach meinem Verständnis ein potentielle Fehlerquelle für den weiteren Verlauf des Artikels.

Gruß, noisefloor

Bleys

(Themenstarter)
Avatar von Bleys

Anmeldungsdatum:
13. August 2006

Beiträge: 6053

noisefloor schrieb:

Hallo,

bis jetzt eine Frage:

Falls Lirc läuft, muss dieses gestoppt oder besser noch, deinstalliert werden

Das ist ja ein ziemlicher Unterschied. IMHO sollte hier nur das eine oder das anderen stehen, keine Option. Sonst ist das ja nach meinem Verständnis ein potentielle Fehlerquelle für den weiteren Verlauf des Artikels.

Gruß, noisefloor

Ja, ich muss das in 2 Varianten aufteilen. Wer das nur testen möchte sollte für den Test die Dienste stoppen. Alle anderen gleich deinstallieren.

Bleys

(Themenstarter)
Avatar von Bleys

Anmeldungsdatum:
13. August 2006

Beiträge: 6053

Während der Erstellung des Artikel stelle ich fest das die Installation eines TBS Treibers für TBS DVB Karten die Funktionen für die aktuelle ir-keytable Version 1.18.0, die in den Quellen von 20.04 enthalten ist, einschränkt. Der TBS Treiber schreibt praktisch das gesamte v4l System und die Module die dazu gehören, neu. Dabei werden etliche der Protokolle die ir-keytable nutzt, anscheinend entfernt.

Aufgefallen ist mir das, weil ich eine TBS Karte eingebaut habe :/

Es geht also erst weiter wenn ich eine neue DVB-S2 eingebaut habe. Es wird ca. eine Woche dauern bis ich sie habe.

noisefloor Team-Icon

Ehemaliger
Avatar von noisefloor

Anmeldungsdatum:
6. Juni 2006

Beiträge: 28316

Hallo,

kein Problem. Einfach hier nochmal posten, wenn du soweit bist.

Gruß, noisefloor

Bleys

(Themenstarter)
Avatar von Bleys

Anmeldungsdatum:
13. August 2006

Beiträge: 6053

So.. das Problem sitzt tiefer. Hat nichts mit den TBS Treibern zu tun. ir-keytable findet einfach nicht die notwendigen Protokolle obwohl sie in /lib/modules/5.4.0-29-generic/kernel/drivers/media/rc/ vorhanden sind. Ich habe eine entsprechende Mail an den Supporter des Paket gesendet obwohl ich das Problem wohl eher in Ubuntu vermute.

[Nachtrag]

Der Entwickler hat geantwortet

Oops. Yes, I broke this. ir-keytable should not be doing this. I'll fix this; in the mean time those messages can be ignored.

Bleys

(Themenstarter)
Avatar von Bleys

Anmeldungsdatum:
13. August 2006

Beiträge: 6053

EMail vom Entwickler. Der Patch ist fertig:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
---
 utils/keytable/keytable.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/utils/keytable/keytable.c b/utils/keytable/keytable.c
index 4db91267..3df5fcf2 100644
--- a/utils/keytable/keytable.c
+++ b/utils/keytable/keytable.c
@@ -945,12 +945,21 @@ static struct sysfs_names *find_device(char *name)
 	return names;
 }
 
+/*
+ * If an rcdev does not have a decoder for a protocol, try to load a bpf
+ * replacement.
+ */
 static enum sysfs_protocols load_bpf_for_unsupported(enum sysfs_protocols protocols, enum sysfs_protocols supported)
 {
 	const struct protocol_map_entry *pme;
 	struct bpf_protocol *b;
 
 	for (pme = protocol_map; pme->name; pme++) {
+		// So far, we only have a replacement for the xbox_dvd
+		// protocol
+		if (pme->sysfs_protocol != SYSFS_XBOX_DVD)
+			continue;
+
 		if (!(protocols & pme->sysfs_protocol) ||
 		    (supported & pme->sysfs_protocol))
 			continue;
@@ -1156,7 +1165,7 @@ static int v2_set_protocols(struct rc_device *rc_dev)
 
 	if (!stat(name, &st) && !(st.st_mode & 0222)) {
 		fprintf(stderr, _("Protocols for device can not be changed\n"));
-		return 0;
+		return EINVAL;
 	}
 
 	fp = fopen(name, "w");
@@ -1323,8 +1332,7 @@ static int set_proto(struct rc_device *rc_dev)
 	int rc = 0;
 
 	if (rc_dev->version == VERSION_2) {
-		rc = v2_set_protocols(rc_dev);
-		return rc;
+		return v2_set_protocols(rc_dev);
 	}
 
 	rc_dev->current &= rc_dev->supported;
@@ -2151,9 +2159,7 @@ int main(int argc, char *argv[])
 
 		rc_dev.current = load_bpf_for_unsupported(ch_proto, rc_dev.supported);
 
-		if (set_proto(&rc_dev))
-			fprintf(stderr, _("Couldn't change the IR protocols\n"));
-		else {
+		if (!set_proto(&rc_dev)) {
 			fprintf(stderr, _("Protocols changed to "));
 			write_sysfs_protocols(rc_dev.current, stderr, "%s ");
 			fprintf(stderr, "\n");
-- 
2.26.2

Funktioniert. Dann warte ich noch bis die Änderung in in den Quellen angekommen ist.

[Nachtrag]

Kann es sein das ir-keytable innerhalb der 20.04LTS nicht mehr aktualisiert wird? 31.07.20

[Nachtrag]

Ja, die Änderungen werden wohl erst mit Groovy erscheinen: https://packages.ubuntu.com/groovy/ir-keytable

Heinrich_Schwietering Team-Icon

Wikiteam
Avatar von Heinrich_Schwietering

Anmeldungsdatum:
12. November 2005

Beiträge: 11288

Hi!

Was ist mit dieser Baustelle? Seit Mai unbearbeitet, das Baustellenschild ist raus? Ist das fertig?

so long
hank

Bleys

(Themenstarter)
Avatar von Bleys

Anmeldungsdatum:
13. August 2006

Beiträge: 6053

Heinrich_Schwietering schrieb:

Hi!

Was ist mit dieser Baustelle? Seit Mai unbearbeitet, das Baustellenschild ist raus? Ist das fertig?

Ich hatte gehofft das die neue Version, die alle Protokolle unterstützt, auch in 20.04 erscheint. Ist ja ein Fehler der behoben wurde. So wie es aussieht ist das nicht der Fall. Mit der Version von ir-keytable in 20.04 lassen sich nur Funk Fernbedienungen einrichten. Ein PPA für ir-keytable ist mir nicht bekannt.

Ich würde sagen: komplett löschen und 22.04 einen neuen Versuch starten...

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 10978

Bleys schrieb:

Ein PPA für ir-keytable ist mir nicht bekannt.

Das sollte kein Problem sein das zurück zu portieren und in ein PPA für focal zu legen. Ich hatte die Version 1.20.0-1.1 schon mal lokal gebaut und bin mit dem BPF-Filter daran gescheitert, dass das Feature im Kernel nicht aktiv war (und deswegen extra einen neuen Kernel zu bauen war mir dann doch zu viel).

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 10978

Hier ist es in einem PPA: https://launchpad.net/~seahawk1986-hotmail/+archive/ubuntu/misc?field.series_filter=focal - das ir-keytable Paket (das aus den v4l-utils Sourcen gebaut wird) wurde erfolgreich gebaut und muss nur noch veröffentlicht werden.

Heinrich_Schwietering Team-Icon

Wikiteam
Avatar von Heinrich_Schwietering

Anmeldungsdatum:
12. November 2005

Beiträge: 11288

Hi!

Und damit ist das alles OK, und der Artikel kann ins Wiki? Was soll den aus dem PPA installiert werden? v4l-utils? Und dagegen dann den ir-keytable-Sourcecode bauen?

so long
hank

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 10978

Heinrich_Schwietering schrieb:

Und damit ist das alles OK, und der Artikel kann ins Wiki?

Ich hatte mit der bei Ubuntu 20.04 ausgelieferten Version keine Probleme - soweit ich das was Bleys geschrieben hat verstehe, ist das ein Spezialfall bei seinem Empfänger, ich habe das mit einem CIR-Empfänger auf einem Intel-Board und dem IR-Empfänger einer Hauppauge WinTV Solo HD ausprobiert und von den yaVDR-Nutzern, die ihren VDR auf Basis von 20.04 betreiben haben auch noch nicht auf vdr-portal.de sichtbar darüber gemeckert, dass etwas nicht klappt...

Was soll den aus dem PPA installiert werden? v4l-utils? Un dagegen dann denn ir-keytable-Sourcecode bauen?

Wenn man die neuere ir-keytable Version haben will, reicht es das gleichnamige Paket aus dem PPA zu installieren. v4l-utils ist der Name des Quellpakets, aus dem eine Reihe von Paketen gebaut werden.

Was bei den ir-keytable-Versionen in den Ubuntu-Paketquellen bis groovy immer noch nicht auf dem Upstream-Stand ist (ich fixe das gleich noch im Paket im PPA), ist die udev-Regel zum Anwenden der Regeln in der /etc/rc_maps.cfg auf die angesteckten Empfänger - dazu hatte ich in https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=974567 schon mal einen Bugreport aufgemacht, ab hirsute sollte das auch in Ubuntu gefixt sein.

Bleys

(Themenstarter)
Avatar von Bleys

Anmeldungsdatum:
13. August 2006

Beiträge: 6053

Aktuell kann ich das nicht testen, ich habe nur 2 Funkfernbedienungen hier :/

Die Ausgabe mit ir-keytable aus den Quellen:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
sudo ir-keytable -c -p all
[sudo] Passwort für ralf: 
alte Schlüsseltabelle geleert
Protokolle für das Gerät können nicht geändert werden.
Protokolle geändert in other 
/dev/lirc0: kein Empfangsgerät für unverarbeitetes Infrarot
BPF-Protokoll rc-mm konnte weder in /etc/rc_keymaps/protocols noch in /lib/udev/rc_keymaps/protocols gefunden werden.
BPF-Protokoll imon konnte weder in /etc/rc_keymaps/protocols noch in /lib/udev/rc_keymaps/protocols gefunden werden.
BPF-Protokoll cec konnte weder in /etc/rc_keymaps/protocols noch in /lib/udev/rc_keymaps/protocols gefunden werden.
BPF-Protokoll xmp konnte weder in /etc/rc_keymaps/protocols noch in /lib/udev/rc_keymaps/protocols gefunden werden.
BPF-Protokoll sharp konnte weder in /etc/rc_keymaps/protocols noch in /lib/udev/rc_keymaps/protocols gefunden werden.
BPF-Protokoll rc-6 konnte weder in /etc/rc_keymaps/protocols noch in /lib/udev/rc_keymaps/protocols gefunden werden.
BPF-Protokoll mce_kbd konnte weder in /etc/rc_keymaps/protocols noch in /lib/udev/rc_keymaps/protocols gefunden werden.
BPF-Protokoll sanyo konnte weder in /etc/rc_keymaps/protocols noch in /lib/udev/rc_keymaps/protocols gefunden werden.
BPF-Protokoll nec konnte weder in /etc/rc_keymaps/protocols noch in /lib/udev/rc_keymaps/protocols gefunden werden.
BPF-Protokoll sony konnte weder in /etc/rc_keymaps/protocols noch in /lib/udev/rc_keymaps/protocols gefunden werden.
BPF-Protokoll jvc konnte weder in /etc/rc_keymaps/protocols noch in /lib/udev/rc_keymaps/protocols gefunden werden.
BPF-Protokoll rc-5-sz konnte weder in /etc/rc_keymaps/protocols noch in /lib/udev/rc_keymaps/protocols gefunden werden.
BPF-Protokoll rc-5 konnte weder in /etc/rc_keymaps/protocols noch in /lib/udev/rc_keymaps/protocols gefunden werden.
BPF-Protokoll lirc konnte weder in /etc/rc_keymaps/protocols noch in /lib/udev/rc_keymaps/protocols gefunden werden.
BPF-Protokoll unknown konnte weder in /etc/rc_keymaps/protocols noch in /lib/udev/rc_keymaps/protocols gefunden werden.

Die Ausgabe von ir-keytable aus dem PPA:

1
2
3
4
sudo ir-keytable -c -p all
alte Schlüsseltabelle geleert
Protokolle für das Gerät können nicht geändert werden.
/dev/lirc0: kein Empfangsgerät für unverarbeitetes Infrarot

Die Protokolle fehlen auch nach Installation von ir-keytable aus dem PPA.

Antworten |