[Pkg-lirc-maint] Bug#872375: lirc: irrecord segfaults when recording a button
Francois Gouget
fgouget at free.fr
Sun Sep 24 14:12:24 UTC 2017
On Sun, 24 Sep 2017, Alec Leamas wrote:
[...]
> > But it's not 100% reproducible now, particularly when I try to use
> > my own libirrecord.so so I have debugging symbols. What I can give you
> > though is the irrecord backtrace:
> >
> > #0 0x0000000000000000 in ?? ()
> > #1 0x00007f5644aaae73 in record_buttons ()
> > from /usr/lib/x86_64-linux-gnu/libirrecord.so.0
> > #2 0x000055555555802d in get_button_data (opts=0x7fffffffe2d0,
> > state=0x7fffffffe290,
> > btn_state=0x7fffffffe110) at irrecord-ui.cpp:759
> > #3 do_record_buttons (state=0x7fffffffe290, opts=0x7fffffffe2d0) at
> > irrecord-ui.cpp:814
> > #4 0x0000555555556ddf in main (argc=<optimized out>, argv=<optimized out>)
> > at irrecord-ui.cpp:1179
> >
> > Compiled from git commit be62884be227.
> > So the crash happens somewhere in record_buttons() in irrecord.c.
> > I suspect the curr_driver methods are not getting initialized...
> > sometimes.
>
> Thanks. That said, if this from a version you compiled yourself, the
> libirrecord.so seems to be the wrong one (i. e., the one installed by the
> package).
True. It might not crash in the same way as when I use the package's
irrecord with the package's libirrecord.so library. I'm done chasing it
anyway.
> > Now as to why I have driver=devinput in lirc_options.conf, it's because
> > it's the only way I found to get my remote to work. Setting
> > driver=default driver does not work and if I only provide
> > devinput.lircd.conf and no Hauppauge_PVR350.conf file then it does not
> > work either.
>
> I think you really need to take a step back here. The way you use lirc does
> not match the official guidelines in [1], which you probably need to check.
Right. The default configuration and the official guidelines don't work.
* I used the devinput.lircd.conf provided by the package, together with
driver = devinput and my remote wouldn't work.
* I ran lirc-make-devinput as recommended by irrecord to generate a new
devinput.lircd.conf file, still using driver=devinput, and the remote
still wouldn't work.
* Seconds after I regenerated the devinput.lircd.conf with
lirc-make-devinput, lircd complained that it is outdated:
Sep 24 01:33:47 habsheim lircd[1039]: lircd-0.10.0[1039]: Warning: Obsolete devinput config file used
Sep 24 01:33:47 habsheim lircd[1039]: lircd-0.10.0[1039]: Notice: Use the distributed devinput.lircd.dist by renaming it.
Sep 24 01:33:47 habsheim lircd[1039]: lircd-0.10.0[1039]: Notice: Or use irdb-get to search for "devinput" and download it.
* With both versions of the devinput.lircd.conf lircd complained that
all buttons were duplicated, which makes sense since they appear in
both the devinput-32 and devinput-64 remotes.
Sep 24 01:11:43 habsheim lircd[1047]: lircd-0.10.0[1047]: Notice: /etc/lirc/lircd.conf.d/devinput.lircd.conf: devinput-64: Multiple values for same code: BTN_MISC
Sep 24 01:11:43 habsheim lircd[1047]: lircd-0.10.0[1047]: Notice: /etc/lirc/lircd.conf.d/devinput.lircd.conf: devinput-64: Multiple values for same code: BTN_MOUSE
* Now I finally got the remote to work with the default driver (i.e. not
devinput (despite it being the default driver)) but I had to recreate
the remote configuration file from scratch as the one I used with lirc
0.9.4c wouldn't work. The official guidelines don't talk about that
incompatibility either.
* Oh, and for the remote configuration files comment lines must have a
'#' in the first column. Put spaces before and the configuration file
breaks. If that's documented somewhere then I did not find where.
So crashes in irrecord? No one will notice that bit of brittleness.
--
Francois Gouget <fgouget at free.fr> http://fgouget.free.fr/
You can have my guns when you pry them from my kids cold, dead hands.
More information about the Pkg-lirc-maint
mailing list