Erreur LIRC + Buster : lircd: undefined symbol: release_map_remotes*

Bonjour à tous,

Je suis en train d’upgrader une machine de Wheezy vers Buster. Cette VDR box utilise LIRC pour gérer une télécommande via un port série.

Il y a eu des changements sous LIRC, et malgré pas mal de recherches, je n’arrive pas à faire démarrer lircd sur cette version (cf. message d’erreur en titre de post).

Pourriez-vous m’aider à trouver ce qui coince svp ?
D’avance merci.

Côté pilote, cela semble OK
(télécommande Philips 8139, rc5)

/sbin/modprobe ir_rc5_decoder
/sbin/modprobe serial_ir 

lsmod | grep ir
serial_ir              20480  0
ir_rc5_decoder         16384  0
ir_rc6_decoder         16384  0
irqbypass              16384  1 kvm
rc_core                53248  9 budget_ci,ir_rc6_decoder,rc_rc6_mce,cx23885,ir_rc5_decoder,serial_ir,rc_tt_1500

Mon fichier lirc_options.conf :

[lircd]
driver = default
device = /dev/lirc1

[modinit]
code = /usr/bin/setserial /dev/ttyS0 uart none
code1 = /usr/sbin/modprobe serial_ir

Adapté à ceci :

ls /dev/lirc* -l
crw-rw---- 1 root video 243, 0 janv.  5 10:14 /dev/lirc0
crw-rw---- 1 root video 243, 1 janv.  5 10:57 /dev/lirc1

Cela coince ici; impossible de lancer lircd !

/etc/init.d/lircd start
[....] Starting lircd (via systemctl): lircd.serviceJob for lircd.service failed because the control process exited with error code.
See "systemctl status lircd.service" and "journalctl -xe" for details.
failed!

contenu de journalctl -xe, on y voit les erreurs :

-- L'unité (unit) lircd.service a commencé à démarrer.
janv. 05 16:33:01 pctest lircd[2091]: /usr/sbin/lircd: symbol lookup error: /usr/sbin/lircd: undefined symbol: release_map_remotes
janv. 05 16:33:01 pctest systemd[1]: lircd.service: Main process exited, code=exited, status=127/n/a
-- Subject: Unit process exited
-- Defined-By: systemd
-- Support: https://www.debian.org/support
-- 
-- An ExecStart= process belonging to unit lircd.service has exited.
-- 
-- The process' exit code is 'exited' and its exit status is 127.
janv. 05 16:33:01 pctest systemd[1]: lircd.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
-- 
-- The unit lircd.service has entered the 'failed' state with result 'exit-code'.
janv. 05 16:33:01 pctest systemd[1]: Failed to start Flexible IR remote input/output application support.
-- Subject: L'unité (unit) lircd.service a échoué
-- Defined-By: systemd
-- Support: https://www.debian.org/support
-- 
-- L'unité (unit) lircd.service a échoué, avec le résultat failed.
janv. 05 16:33:01 pctest sudo[2087]: pam_unix(sudo:session): session closed for user root
janv. 05 16:33:17 pctest sudo[2097]:     test : TTY=pts/0 ; PWD=/home/test ; USER=root ; COMMAND=/usr/bin/journalctl -xe
janv. 05 16:33:17 pctest sudo[2097]: pam_unix(sudo:session): session opened for user root by (uid=0)
lines 2432-2528/2528 (END)

C’est fait ou en cours ?

Que dit apt policy lirc, tu as bien la dernière version ?

Et sur quel noyau tournes tu ?

C’est fait. J’aurais du dire “passé à” et non “upgradé” car je suis parti d’une fresh install. Je suis sous Debian 10.2 amd64, noyau 4.19.

Installation de l’OS et de LIRC OK :

apt policy lirc
lirc:
  Installé : 0.10.1-5.2
  Candidat : 0.10.1-5.2
 Table de version :
 *** 0.10.1-5.2 500
        500 http://deb.debian.org/debian buster/main amd64 Packages
        500 http://httpredir.debian.org/debian buster/main amd64 Packages
        100 /var/lib/dpkg/status

Le hardware est bien reconnu :

dmesg | grep serial_ir
[   51.547849] serial_ir serial_ir.0: auto-detected active low receiver
[   51.623473] rc rc1: Serial IR type home-brew as /devices/platform/serial_ir.0/rc/rc1
[   51.623507] input: Serial IR type home-brew as /devices/platform/serial_ir.0/rc/rc1/input19
[   51.623719] rc rc1: lirc_dev: driver serial_ir registered at minor = 1, raw IR receiver, raw IR transmitter
[ 1889.300256] serial_ir serial_ir.0: ignoring spike: 1 1 1889663874252ns 1886407568025ns
[10605.819851] serial_ir serial_ir.0: ignoring spike: 1 1 10606035031312ns 10581997144730ns
[11213.701505] serial_ir serial_ir.0: ignoring spike: 1 1 11213906348185ns 11204891588393ns
[11311.838252] serial_ir serial_ir.0: ignoring spike: 1 1 11312041621984ns 11304216555324ns

Je pense avoir loupé quelque chose côté configuration mais je sèche !

EDIT je ne sais quel driver choisir pour la gestion via port série :

mode2
Available drivers:
accent           asusdh           atwf83           bte              bw6130           creative         creative_infracd devinput         dsp              dvico            
ea65             file             girs             i2cuser          irlink           irtoy            livedrive_midi   livedrive_seq    logitech         macmini          
mouseremote      mouseremote_ps2  mp3anywhere      mplay            mplay2           pcmak            pinsys           pixelview        samsung          sb0540           
silitek          sonyir           tira             tira_raw         udp              uirt2            uirt2_raw        usb_uirt_raw     usbx             zotac

Après recherches, j’ai réussi à passer la première étape :
mode2 et irrecord sont parfaitement fonctionnels.

Il reste à régler lircd dont le chargement est toujours KO :
/sbin/lircd: symbol lookup error: /sbin/lircd: undefined symbol: release_map_remotes

Quelqu’un aurait une idée ou un tuto à partager ?
Merci.

Je m’avance peut-être mais ne faut-il pas un support au niveau kernel ?
Le kernel Vanilla de Debian a t’il le support lirc à yes lors de sa compilation ???

Getting the key symbols using lirc drivers

  ---------------------------------
  |    kernel devices             |
  ---------------------------------
       |       | kernel rc driver |  Needs configuration
       |       -- -----------------
       |                  |
       v                  v          Pulse data on
       |                  |          a kernel device like
  ---------------         |          /dev/lirc0 or /dev/ttyACM0
  | LIRC driver |----------
  ---------------
       |
       v      pulses                 Use mode2 to debug
       |
  ---------------
  | LIRC pass 1 |                    lircd.conf
  ---------------
       |
       |      keysyms on             Use irw(1) to debug
       v      /var/run/lirc/lircd
       |
    

http://www.lirc.org/html/configuration-guide.html

J’ai installé le paquet lirc en complément, il me semble que c’est suffisant suite aux différents tutos que j’ai lus.

S’il manquait un truc côté kernel, “mode2” et “irw” ne fonctionnerait pas, non ? Or là je vois bien l’appui des touches apparaitre en console.

Je ne comprends pas ce qui se passe…

Bonsoir,

Pour information, j’ai laissé tomber Buster.
Sous Linux Mint 19.3 Tricia, tout est fonctionnel.

Bonne soirée.