verzögert sich auf morgen...
Dann schau am besten auch gleich mal, ob du RC5-Signale von der Fernbedienung bekommst:
verzögert sich auf morgen...
Dann schau am besten auch gleich mal, ob du RC5-Signale von der Fernbedienung bekommst:
Servus,
systemctl stop eventlircd.{service,socket}
sudo ir-keytable
Found /sys/class/rc/rc0/ with:
Name: Serial IR type home-brew
Driver: serial_ir
Default keymap: rc-rc6-mce
Input device: /dev/input/event6
LIRC device: /dev/lirc0
Attached BPF protocols: Operation not supported
Supported kernel protocols: lirc rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp imon rc-mm
Enabled kernel protocols: lirc rc-6
bus: 25, vendor/product: 0001:0001, version: 0x0100
Repeat delay = 500 ms, repeat period = 125 ms
Alles anzeigen
systemctl disable --now eventlircd.{service,socket}
==== AUTHENTICATION COMPLETE ===
Removed /etc/systemd/system/sockets.target.wants/eventlircd.socket.
Removed /etc/systemd/system/multi-user.target.wants/eventlircd.service.
sudo ir-keytable -p rc5 -c
Old keytable cleared
Protocols changed to rc-5
sudo ir-keytable -t
Testing events. Please, press CTRL-C to abort.
638.699384: lirc protocol(rc5): scancode = 0x150f
638.699410: event type EV_MSC(0x04): scancode = 0x150f
638.699410: event type EV_SYN(0x00).
638.803388: lirc protocol(rc5): scancode = 0x150f
638.803410: event type EV_MSC(0x04): scancode = 0x150f
638.803410: event type EV_SYN(0x00).
639.707381: lirc protocol(rc5): scancode = 0x150d toggle=1
639.707405: event type EV_MSC(0x04): scancode = 0x150d
639.707405: event type EV_SYN(0x00).
640.463378: lirc protocol(rc5): scancode = 0x150e
640.463399: event type EV_MSC(0x04): scancode = 0x150e
640.463399: event type EV_SYN(0x00).
640.571369: lirc protocol(rc5): scancode = 0x150e
640.571392: event type EV_MSC(0x04): scancode = 0x150e
640.571392: event type EV_SYN(0x00).
640.995349: lirc protocol(rc5): scancode = 0x1510 toggle=1
640.995372: event type EV_MSC(0x04): scancode = 0x1510
640.995372: event type EV_SYN(0x00).
641.535349: lirc protocol(rc5): scancode = 0x150d
641.535373: event type EV_MSC(0x04): scancode = 0x150d
641.535373: event type EV_SYN(0x00).
Alles anzeigen
Wie mache ich das jetzt das der rc5-code permanent abgerufen wird. Bzw. ich muss ja irgendwie ne lircd.conf erstellen...
Wie mache ich das jetzt das der rc5-code permanent abgerufen wird. Bzw. ich muss ja irgendwie ne lircd.conf erstellen...
Du brauchst eine Keymap, die du dann in der /etc/rc_map.cfg (bzw. im Template dafür) dem Empfänger zuordnest.
In https://www.yavdr.org/document…mentation.html#org26d72fd habe ich unter "Automatisiertes Anlernen von rc-core Empfängern" ein Python-Skript hinterlegt, das das erstellen der Keymap etwas angenehmer macht - hier mal eine Weiterentwicklung davon mit allen Tasten aus dem yaVDR-Namensschema, die auch die keymap gleich in eine Datei schreiben kann:
#!/usr/bin/env python3
import functools
import contextlib
import signal
import sys
import time
from argparse import ArgumentParser
from pathlib import Path
from evdev import InputDevice, ecodes
BUTTONS = [
"KEY_OK",
"KEY_MENU",
"KEY_ESC",
"KEY_UP",
"KEY_DOWN",
"KEY_LEFT",
"KEY_RIGHT",
"KEY_RED",
"KEY_GREEN",
"KEY_YELLOW",
"KEY_BLUE",
"KEY_0",
"KEY_1",
"KEY_2",
"KEY_3",
"KEY_4",
"KEY_5",
"KEY_6",
"KEY_7",
"KEY_8",
"KEY_9",
"KEY_INFO",
"KEY_PLAY",
"KEY_PAUSE",
"KEY_STOP",
"KEY_RECORD",
"KEY_FASTFORWARD",
"KEY_REWIND",
"KEY_NEXT",
"KEY_BACK",
"KEY_POWER2",
"KEY_CHANNELUP",
"KEY_CHANNELDOWN",
"KEY_PREVIOUS",
"KEY_VOLUMEUP",
"KEY_VOLUMEDOWN",
"KEY_MUTE",
"KEY_SUBTITLE",
"KEY_EPG",
"KEY_CHANNEL",
"KEY_FAVORITES",
"KEY_MODE",
"KEY_TIME",
"KEY_PVR",
"KEY_SETUP",
"KEY_TEXT",
"KEY_PROG1",
"KEY_PROG2",
"KEY_PROG3",
"KEY_PROG4",
"KEY_AUDIO",
"KEY_VIDEO",
"KEY_IMAGES",
"KEY_FN",
"KEY_SCREEN",
]
RC_SYS_DEVICES = Path('/sys/class/rc/')
DEVPATH = Path('/dev')
debug = functools.partial(print, file=sys.stderr)
def print_keymap(keytable, protocol, keys, output):
print(f"\n# table: {keytable}, type: {protocol}", file=output)
for keyname, scancode in keys.items():
print(f"{scancode:#06x} {keyname}", file=output)
def read_from_device(dev):
def btn_generator():
for btn in BUTTONS:
yield btn
while True:
yield None
btn_gen = btn_generator()
keymap = {}
last_scancode = None
last_ts = float('inf')
button = next(btn_gen)
first_btn = button
with contextlib.closing(InputDevice(dev)) as dev:
debug(f"Please press a button for {button}")
for ev in dev.read_loop():
advance_button = False
if ev.type == ecodes.EV_MSC:
ts = ev.timestamp()
if (
ev.value == keymap.get(first_btn)
and last_scancode == keymap.get(first_btn)
and ts - last_ts > .5
):
# skip button because user pressed KEY_OK
# and it's not an unwanted repeat
advance_button = True
debug(f"skipped learning button {button}")
elif last_scancode == ev.value:
# repeated key
pass
elif ev.value != keymap.get(first_btn):
if ev.value < 0:
ev.value &= 0xffffffff
debug(f"Got scancode {ev.value:#06x} for {button}.")
advance_button = True
keymap[button] = ev.value
last_scancode = ev.value
last_ts = ts
last_scancode = ev.value
if advance_button:
button = next(btn_gen)
if button:
debug(f"Please press a button for {button} (press KEY_OK to skip)")
else:
break
return keymap
def list_devices():
devices = []
for rc_device in RC_SYS_DEVICES.glob('rc*'):
device = {}
device["path"] = rc_device
device["sys"] = rc_device.name
with open(next(rc_device.glob('input*/event*/uevent'))) as f:
# read DEVNAME attribute (and others)
for line in f:
key, value = line.rstrip().split('=')
device[key] = value
with open(rc_device.joinpath('uevent')) as f:
for line in f:
key, value = line.rstrip().split('=')
device[key] = value
with open(rc_device.joinpath('protocols')) as f:
protocols = f.read().rstrip().split()
active_protocols = [p[1:-1] for p in protocols if (
p.startswith('[') and p != "[lirc]")]
inactive_protocols = [p for p in protocols if not p.startswith('[')]
device["protocols"] = protocols
device["inactive_protocols"] = inactive_protocols
device["active_protocols"] = active_protocols
devices.append(device)
return devices
if __name__ == '__main__':
parser = ArgumentParser(description="create keymaps for rc-core devices")
parser.add_argument('-p', '--protocol', metavar='PROTOCOL',
help='set ir-protocol')
parser.add_argument('-d', '--device', metavar='DEVICE', default=None,
help='ir device (e.g. rc0)')
parser.add_argument('-o', '--output', metavar='KEYMAP', default=None,
help='write the keymap to this file instead of printing to stdout')
args = parser.parse_args()
devices = list_devices()
if not devices:
sys.exit("No rc-core devices found. Exiting.")
elif len(devices) == 1:
print(f"Using device {devices[0]['NAME']}", file=sys.stderr)
dev = devices[0]['path']
input_dev = devices[0]['DEVNAME']
keytable = devices[0]['NAME']
protocol = ",".join(devices[0]['active_protocols'])
else:
if args.device:
for d in devices:
if (d['sys'] == args.device
or d['path'] == RC_SYS_DEVICES.joinpath(args.device)):
dev = RC_SYS_DEVICES.joinpath(args.device)
input_dev = d['DEVNAME']
keytable = d['NAME']
protocol = ",".join(d['active_protocols'])
else:
for i, d in enumerate(devices, start=1):
if not args.protocol:
print(f"{i}) {d['DEV_NAME']} ({','.join(d.get('active_protocols'))})")
else:
print(f"{i}) {d['DEV_NAME']}")
try:
dev_num = int(input("\tUse device numer: "))
if dev_num < 0 or dev_num > len(devices):
raise ValueError
d = devices[dev_num - 1]
except (ValueError, IndexError):
sys.exit("invalid device number")
input_dev = d['DEVNAME']
keytable = d['NAME']
protocol = ",".join(d['active_protocols'])
dev = d['path']
# set ir-protocol(s)
if args.protocol:
try:
with open(dev.joinpath('protocols'), 'w') as f:
f.write(args.protocol)
except PermissionError as e:
sys.exit(f"Error: insifficient permissions to change protocol - are you root?")
except IOError as e:
sys.exit(f"Error: could not set protocol(s) to {args.protocol}: {e}")
protocol = args.protocol
input_dev = DEVPATH.joinpath(input_dev)
debug("using device: ", input_dev)
def signal_handler(signum, frame):
sys.exit()
for signame in {'SIGINT', 'SIGTERM'}:
signal.signal(
getattr(signal, signame),
signal_handler)
try:
keymap = read_from_device(input_dev)
except PermissionError as e:
sys.exit(f"Error: can't open {input_dev} - are you root?")
else:
if args.output:
with open(args.output, 'w') as output:
print_keymap(keytable, protocol, keymap, output)
else:
print_keymap(keytable, protocol, keymap, None)
Alles anzeigen
Das Skript solltest du so nutzen können:
sudo apt install python3-evdev
sudo python3 rc-core-learn.py -p rc-5 -o /etc/rc_keymaps/rc-TT-black_CT-3650
Danach kannst du eventlircd wieder aktivieren sudo systemctl enable --now eventlircd.{socket,service} und die Keymap probeweise laden: sudo ir-keytable -w /etc/rc_keymaps/rc-TT-black_CT-3650 - dann mal schauen, ob sich der VDR mit der Fernbedienung steuern lässt.
Wenn alles passt, änderst du noch in der rc_maps.cfg (bzw. im Template dafür, wenn es den nächsten Playbook Lauf überleben soll) die Zeile für serial_ir von
in
Dann sollte die Keymap bei einem Neustart automatisch geladen werden.
PS: ich habe gerade bemerkt, dass das für RC-5 gut funktioniert, aber bei RC-6A negative Werte für den Event-Code zurückkommen, die nicht zu dem passen, was in der keytable erwartet wird - das muss ich mir noch mal genauer ansehen...
PPS: da scheint man bei negativen Werten ein ev.value &= 0xffffffff machen zu müssen, dann passt es wieder - ich habe das Skript entsprechend angepasst.
ZitatDas Skin vom Menü müsste man ja auch irgendwie wechseln können auf ein anderes. Gibts da weitere Skins zum Download ausser die schon vorhandenen im Menü?
Ja klar, hab grade das vdr-plugin-skindesigner installiert das sieht wirklich super aus da sind ootb Skins drinnen wie z.b: metrix oder estuary4vdr
wobei mir ganz klar der estuary4vdr viel besser gefällt als Metrix.
Channellogos werden mir leider noch keine angezeigt weiss nicht wo die wieder hin müssen damit sie angezeigt werden.
Weitere Skins können über das Skindesigner Plugin auch nachinstalliert werden, da aber immer zuerst gucken welche Fonts usw. die benötigen
z.b: bei blackhole brauchts unter Anderem "fonts-ds-digital" was ich nicht installieren konnte obwohl ich das ppa von gandalf installiert habe
(gibts wohl nicht mehr den font).
Gruss
Bert
Moing,
nach dem erneuten aktivieren von lirc und dem
sudo ir-keytable -w /etc/rc_keymaps/rc-TT-black_CT-3650
bekomme ich
"Segmentation fault"
Ich habe die Verknüpfung in der rc_maps.cfg korrigiert, nach Neustart leider keine Bedienung mögĺich.
Vermutlich passt die neue Tabelle nicht? Habe sie aber schon gegenkontrolliert, würde passen.
Bei disable von lirc und erneuten sudo ir-keytable steht unter Default keymap:
rc-rc6-mce
Müsste da nicht die neue stehen? Oder passt das so?
steht ja so in der rc_maps.cfg drin...mein Fehler
Das man die vdr-skins runterladen kann weis ich. Ich meinte halt andere...so z.B. antrha... Muss ich mir später nochmal genau ansehen.
Grüsse
sudo ir-keytable -w /etc/rc_keymaps/rc-TT-black_CT-3650
bekomme ich
"Segmentation fault"
Kannst du mal bitte die von meinem Skript erstellte Keymap zeigen?
Hi,
Anthra ist kein Skindesigner-Skin sondern ein Text2skin-Plugin Skin. Dafür brauchst du das. Und elchi enigma... Sind alles eigene Skinplugins.
Mfg Stefan
Tomas hat doch nach den anthra-Skins auch schicke Skins für den skindesigner gemacht, schau dir dochmal den shady & shady_kiss an.
Hmm, komisch, shady und shady_KISS wollen einfach nicht bei mir - er fällt immer auf LCARS zurück. Mal die Logs studieren
Gerade getestet, jetzt geht's ... kann sein, weil ich für den reufer die Channellogos verlinkt habe (dem war es weitgehend egal vorher)?
Hier mal die Ausgabe von meiner erstellten rc-TT-black_CT-3650
# table: rc-rc6-mce, type: rc-5
0x150f KEY_OK
0x1519 KEY_MENU
0x1513 KEY_ESC
0x150d KEY_UP
0x1511 KEY_DOWN
0x150e KEY_LEFT
0x1510 KEY_RIGHT
0x1514 KEY_RED
0x1515 KEY_GREEN
0x1516 KEY_YELLOW
0x1517 KEY_BLUE
0x150c KEY_0
0x1503 KEY_1
0x1504 KEY_2
0x1505 KEY_3
0x1506 KEY_4
0x1507 KEY_5
0x1508 KEY_6
0x1509 KEY_7
0x150a KEY_8
0x150b KEY_9
0x1512 KEY_INFO
0x153b KEY_PLAY
0x153e KEY_PAUSE
0x153c KEY_STOP
0x153a KEY_RECORD
0x153f KEY_FASTFORWARD
0x153d KEY_REWIND
0x1501 KEY_POWER2
0x1523 KEY_CHANNELUP
0x1524 KEY_CHANNELDOWN
0x1525 KEY_VOLUMEUP
0x1526 KEY_VOLUMEDOWN
0x1518 KEY_MUTE
0x1522 KEY_EPG
0x1502 KEY_CHANNEL
0x1519 KEY_SETUP
0x151a KEY_AUDIO
Alles anzeigen
und gleich noch 3 dumme Fragen...
Wiso sind manche Teile im vdr-Menü auf englisch, kann man das irgendwo umstellen? In einer setup-Datei?
Grüsse
Hier mal die Ausgabe von meiner erstellten rc-TT-black_CT-3650
Ich kann die von dir gezeigte Keymap problemlos mit ir-keytable laden, mir ist nicht ganz klar, warum es da zu einem Segfault kommen sollte:
$ sudo ir-keytable -w test_map_rc5
Lesen von Tabelle rc-rc6-mce
38 Schlüsselcode(s) wurden in den Treiber geschrieben.
Protokolle geändert in rc-5
Wiso sind manche Teile im vdr-Menü auf englisch, kann man das irgendwo umstellen? In einer setup-Datei?
Welche Teile sind auf Englisch und wie hast du die Locale-Einstellungen des Systems bei der Installation gesetzt (was sagt localectl)?
Das Menü wird gemäß der Vorgaben der /var/lib/vdr/plugins/menuorg.xml dargestellt und die Datei wird aus diesem Template erzeugt: https://github.com/yavdr/yavdr…/templates/menuorg.xml.j2 - wobei sich der translate-Filter für die Templates (https://github.com/yavdr/yavdr…lugins/translate_yavdr.py) unter Berücksichtigung der Locale-Einstellungen die Übersetzung aus den Sprachdateien aus dem Paket yavdr-i18n holt.
Der VDR übersetzt seine Menüeinträge selbst, wenn menuorg da nichts anderes für einen Eintrag vorgibt und nutzt dabei standardmäßig die Locale, mit der er gestartet wurde (das sollte die als Vorgabe für das System gesetzte Locale sein) - das kann man im Setup-Menü des VDR bei den OSD-Einstellungen übersteuern.
Mittels sudo dpkg-reconfigure locales kannst du festlegen welche Locales erzeugt werden und was der Vorgabewert ist.
Servus,
als was muss die 3650 sein? benutzer, root oder vdr? rechte?
644 müsste ja reichen denke ich..
Ähm...kann es sein, das es daran liegt, wenn ich das ganze in Konsole 7 mache?
Ich gehe im vdr-menü auf applications/internet/firefox
dann startet ja der firefox (desktop) dort mach ich ein vt auf. Dort logge ich mich mit su ubuntu ein.
Muss ich das in einer Konsole 2 oder 3 machen?
Bei der Einrichtung/Installation von Ubuntu hatte ich alles auf Deutsch ausgewählt.
Da ist gerade ne test-aufnahme gestartet, ich berichte später wenn sie beendet ist
Grüsse
als was muss die 3650 sein? benutzer, root oder vdr? rechte?
Die Keymap muss eigentlich nur von root lesbar sein, weil die udev-Regel /lib/udev/rules.d/60-ir-keytable.rules ir-keytable die Konfigurationsdatei und die keymap einlesen lässt und ir-keytable dabei mit root-Rechten ausgeführt wird.
Wie du an eine Shell-Sitzung kommst, sollte eigentlich egal sein (wobei es einem das Ausgabeplugin ggf. übel nimmt, wenn man die virtuelle Konsole umschaltet, während es aktiv ist) - ich mache das normalerweise alles über SSH.
Servus zusammen mal wieder,
wollte mal "Bescheid" geben. Habe die Fernbedienung heute zum laufen gebracht.
Das vermutliche Problem war: Die Leerzeile
Ich hatte ja die rc-TT-black_CT-3650 erstellt und wollte sie laden, aktivieren what ever...
Dies schlug mit "Segmentation fault" fehl.
Bin heute nochmals alles durchgegangen und kappierte es nicht....das muss gehen!!
Irgendwann fiel mir auf, das die erste Zeile in rc-TT-black_CT-3650 eine Leerzeile war.
Gegenkontrolle -->> Bei der /lib/udev/rc_keymaps/rc-rc6-mce war diese Leerzeile nicht.
Also die Leerzeile entfernt. Der "Lade-Befehl" bringt jetzt ...oh Wunder
Fernbedienen funktioniert jetzt im Vdr
Wiso macht das Skript die Leerzeile?
Bis auf weitere Fragen
Grüsse
Hallo,
gibt es eine Funktion oder ein Plugin, mit dem ich das OSD "sortieren" kann? Z.b. "Audio" unsichtbar machen oder verschieben nach "Applications"
Oder "Video" in Aufnahmen umändern.
Oder die laufende Nummer 1-9 erweitern auf die vorgegebene Anzahl der Einträge (sind 12 oder 13 glaub ich)
Grüsse
vdr-plugin-menuorg ist dein freund
Servus,
das ist schon installiert, aber da kann ich nix machen.
Da gibts genau 2 Einträge und die ändern nicht wirklich was an der Menü-Struktur.
Zum Thema Sprachen nochmal.
Es ist z.B. im OSD Anwendungen englisch und alle Unterpunkte. Im Systempunkt Befehle sind alle englisch.
Ich hatte eigentlich beim installieren von Ubuntu schon aufgepasst, das ich deutsch auswähle.
Habe den dpkg-reconfigure locales - Befehl ausgeführt, danach wurde es besser, aber noch immer nicht ganz.
Grüsse
die menuorg.xml muss händisch editiert werden. also vdr stoppen, datei anpassen und wieder starten.
Ok, anpassen in
/var/lib/vdr/plugins/menorg.xml
oder
/etc/vdr/plugins/menorog.xml
?
Grüsse
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!