Ich nehme gerade meinen zweiten ODROID N2 in Betrieb und habe daran ebenfalls einen TSOP 4838 anstelle des originalen IR-Empfängers gelötet. Stecke ich den USB Stick des ersten Odroids ein, dann funktioniert die Fernbedienung per Lirc ohne Probleme. Für den zweiten Odroid bin ich auf Ubuntu 22.04 Jammy gegangen und habe eine frische Installation auf eine eMMC gemacht (gleiche Lirc Konfiguration. Dort hat die Fernbedienung erstmal gar nicht funktioniert. Nach langer Fehlersuche habe ich als letzte Verzweiflungstat die Fernbedienung einfach neu angelernt (im Raw-Modus von irrecord, da er sonst am Ende einen Fehler bringt - war beim ersten Odroid genauso). Das ging direkt und zeigte mir, dass sich irgendwie die Timings verändert haben müssen. Ich habe dann die Raw-Codes mittels irrecord -a umgewandelt und in das Konfigurationsverzeichnis kopiert. Und siehe da: die Fernbedienung geht, jede Taste wird problemlos erkannt.
Einziges Problem: es werden keine Tastenwiederholungen erkannt. Jeder Tastendruck, egal wie lange, erzeugt nur ein Event bei irw. Starte ich mode2 sehe ich aber, dass bei längerem Drücken der Tasten auch entsprechend mehr Zeiten erkannt werden. Ein erster Vergleich der Ausgabe von mode2 auf dem ersten und dem zweiten Odroid zeigen nur minimale Timing-Unterschiede. Vermutlich ist es nur eine kleine Einstellung, ich erinnere mich aber nicht daran, beim ersten Odroid hier etwas besonderes gemacht zu haben.
Hier meine lirc_options.conf (exakt gleicher Inhalt wie beim ersten Odroid).
# These are the default options to lircd, if installed as
# /etc/lirc/lirc_options.conf. See the lircd(8) and lircmd(8)
# manpages for info on the different options.
#
# Some tools including mode2 and irw uses values such as
# driver, device, plugindir and loglevel as fallback values
# in not defined elsewhere.
[lircd]
nodaemon = False
driver = default
device = /dev/lirc0
output = /var/run/lirc/lircd
pidfile = /var/run/lirc/lircd.pid
plugindir = /usr/lib/aarch64-linux-gnu/lirc/plugins
permission = 666
allow-simulate = No
repeat-max = 600
#effective-user =
#listen = [address:]port
#connect = host[:port]
#loglevel = 6
#release = true
#release_suffix = _EVUP
#logfile = ...
#driver-options = ...
[lircmd]
uinput = False
nodaemon = False
[modinit]
code = /sbin/modprobe meson-ir
# code1 = /usr/bin/setfacl -m g:lirc:rw /dev/uinput
# code2 = ...
[lircd-uinput]
add-release-events = True
release-timeout = 500
release-suffix = _EVUP
Alles anzeigen
Hier meine remote.conf (im lircd.conf.d Verzeichnis)
Warning: Running as root.
Using driver default on device /dev/lirc0
#
# This config file was automatically generated
# using lirc-0.10.1(emulation) on Sun May 5 18:48:51 2024
# Command line used: -a /root/dreambox-1.lircd.conf.org
# Kernel version (uname -r): 4.9.337-35
#
# Remote name (as of config file): dreambox-1
# Brand of remote device, the thing you hold in your hand:
# Remote device model nr:
# Remote device info url:
# Does remote device has a bundled capture device e. g., a
# usb dongle? :
# For bundled USB devices: usb vendor id, product id
# and device string (use dmesg or lsusb):
# Type of device controlled
# (TV, VCR, Audio, DVD, Satellite, Cable, HTPC, ...) :
# Device(s) controlled by this remote:
begin remote
name dreambox-1
bits 32
flags SPACE_ENC|CONST_LENGTH
eps 30
aeps 100
header 8938 4456
one 571 1622
zero 571 508
ptrail 571
gap 106221
toggle_bit_mask 0x0
frequency 38000
begin codes
KEY_POWER 0xFFFFFFFFCC3300FF
KEY_HELP 0xFFFFFFFFCC336897
KEY_0 0xFFFFFFFFCC33D02F
KEY_1 0xFFFFFFFFCC33807F
KEY_2 0xFFFFFFFFCC3340BF
KEY_3 0xFFFFFFFFCC33C03F
KEY_4 0xFFFFFFFFCC3320DF
KEY_5 0xFFFFFFFFCC33A05F
KEY_6 0xFFFFFFFFCC33609F
KEY_7 0xFFFFFFFFCC33E01F
KEY_8 0xFFFFFFFFCC3310EF
KEY_9 0xFFFFFFFFCC33906F
BTN_LEFT 0xFFFFFFFFCC3350AF
BTN_RIGHT 0xFFFFFFFFCC3330CF
KEY_RED 0xFFFFFFFFCC33F807
KEY_GREEN 0xFFFFFFFFCC3304FB
KEY_YELLOW 0xFFFFFFFFCC33847B
KEY_BLUE 0xFFFFFFFFCC3344BB
KEY_INFO 0xFFFFFFFFCC3308F7
KEY_MENU 0xFFFFFFFFCC3348B7
KEY_AUDIO 0xFFFFFFFFCC33708F
KEY_PVR 0xFFFFFFFFCC3318E7
KEY_LEFT 0xFFFFFFFFCC33C837
KEY_RIGHT 0xFFFFFFFFCC33A857
KEY_UP 0xFFFFFFFFCC338877
KEY_DOWN 0xFFFFFFFFCC33E817
KEY_OK 0xFFFFFFFFCC3328D7
KEY_VOLUMEUP 0xFFFFFFFFCC339867
KEY_VOLUMEDOWN 0xFFFFFFFFCC3338C7
KEY_EXIT 0xFFFFFFFFCC33B847
KEY_MUTE 0xFFFFFFFFCC3358A7
KEY_CHANNELUP 0xFFFFFFFFCC33D827
KEY_CHANNELDOWN 0xFFFFFFFFCC337887
KEY_BACK 0xFFFFFFFFCC33C43B
KEY_FORWARD 0xFFFFFFFFCC33649B
KEY_STOP 0xFFFFFFFFCC33A45B
KEY_PLAYPAUSE 0xFFFFFFFFCC3324DB
KEY_TV 0xFFFFFFFFCC33E41B
KEY_RADIO 0xFFFFFFFFCC3314EB
KEY_TEXT 0xFFFFFFFFCC33946B
KEY_RECORD 0xFFFFFFFFCC3354AB
end codes
end remote
Alles anzeigen
Was mir auffiel: die remote.conf, die ich auf dem ersten Odroid erstellt hatte, hatte kürzere Codes (der Header am Anfang bis einschliesslich frequency 38000 ist aber exakt gleich). Hier 2 Beispiele:
Einziger bekannter Unterschied zwischen beiden Odroids: der erste Odroid läuft mit Ubuntu 20.04 Focal Basis, der zweite mit Ubuntu 22.04 Jammy (mit entsprechend neuerem Kernel). Beide jedoch lircd 0.10.1.
Hat jemand eine Idee, wie man die Tastenwiederholungen ans Laufen bekommt oder habe ich mir mit der neuen Ubuntu-Version u.U. ein Ei ins Nest gelegt?
Alternativ würde ich die nächsten Tage nochmals ein Ubuntu 20.04 auf eine eMMC installieren. Dann sehe ich schnell, ob es an der Ubuntu Version liegt.