Re: lirc bug in kernel 4.10-rc2

From: Wim Osterholt
Date: Sat Jan 07 2017 - 11:12:02 EST


On Thu, Dec 29, 2016 at 05:53:58PM +0100, Wim Osterholt wrote:

L.S.,
>
> after appearance of kernel-4.10-rc1 two days ago I was pleasantly surprised
> to find a question about lirc_serial in 'make oldconfig':
>
> Homebrew Serial Port Receiver (IR_SERIAL) [N/m/?] (NEW) m
> Serial Port Transmitter (IR_SERIAL_TRANSMITTER) [Y/n/?] y

A quickly following release of 4.10-rc2 made sure that lirc_dev was loaded
together with serial_ir. However, things still don't work.

I just need to send some codes.
I'm using lirc-0.9.0, which worked fine up to kernel-4.9.1 .

With kernel-4.10-rc1/2 there are two bugs.

1) With the same setup - only the kernel has changed from 4.9 to 4.10 -
irsend does not work anymore. I get these logs:

Jan 7 01:55:23 localhost kernel: serial_ir: unknown parameter 'debug' ignored
Jan 7 01:55:24 localhost kernel: serial_ir serial_ir.0: auto-detected active high receiver
Jan 7 01:55:24 localhost kernel: rc_core: IR keymap rc-rc6-mce not found
Jan 7 01:55:24 localhost kernel: Registered IR keymap rc-empty
Jan 7 01:55:24 localhost kernel: input: Serial IR type home-brew as /devices/platform/serial_ir.0/rc/rc0/input10
Jan 7 01:55:24 localhost kernel: rc rc0: Serial IR type home-brew as /devices/platform/serial_ir.0/rc/rc0
Jan 7 01:55:24 localhost kernel: input: MCE IR Keyboard/Mouse (serial_ir) as /devices/virtual/input/input11
Jan 7 01:55:24 localhost kernel: lirc_dev: IR Remote Control driver registered, major 249
Jan 7 01:55:24 localhost kernel: rc rc0: lirc_dev: driver ir-lirc-codec (serial_ir) registered at minor = 0
Jan 7 01:55:24 localhost kernel: IR LIRC bridge handler initialized
Jan 7 01:55:56 localhost lircd-0.9.0[2171]: lircd(default) ready, using /dev/lircd1
Jan 7 01:56:52 localhost lircd-0.9.0[2171]: accepted new client on /dev/lircd1
Jan 7 01:56:52 localhost lircd-0.9.0[2171]: write failed
Jan 7 01:56:52 localhost lircd-0.9.0[2171]: Invalid argument
Jan 7 01:56:52 localhost lircd-0.9.0[2171]: error processing command: SEND_ONCE bat KEY_1
Jan 7 01:56:52 localhost lircd-0.9.0[2171]: transmission failed
Jan 7 01:56:53 localhost lircd-0.9.0[2171]: removed client

Where under kernel 4.9 things go well like:

Jan 7 02:25:08 localhost kernel: lirc_dev: IR Remote Control driver registered, major 250
Jan 7 02:25:08 localhost kernel: lirc_serial: module is from the staging directory, the quality is unknown, you have been warned.
Jan 7 02:25:08 localhost kernel: lirc_serial: unknown parameter 'debug' ignored
Jan 7 02:25:09 localhost kernel: lirc_serial lirc_serial.0: auto-detected active high receiver
Jan 7 02:25:09 localhost kernel: lirc_serial lirc_serial.0: lirc_dev: driver lirc_serial registered at minor = 0
Jan 7 02:25:19 localhost lircd-0.9.0[1970]: lircd(default) ready, using /dev/lircd1
Jan 7 02:25:33 localhost lircd-0.9.0[1970]: accepted new client on /dev/lircd1
Jan 7 02:25:33 localhost lircd-0.9.0[1970]: removed client
Jan 7 02:25:33 localhost lircd-0.9.0[1970]: accepted new client on /dev/lircd1
Jan 7 02:25:34 localhost lircd-0.9.0[1970]: removed client
Jan 7 02:25:34 localhost lircd-0.9.0[1970]: accepted new client on /dev/lircd1
Jan 7 02:25:34 localhost lircd-0.9.0[1970]: removed client
Jan 7 02:25:34 localhost lircd-0.9.0[1970]: accepted new client on /dev/lircd1
Jan 7 02:25:34 localhost lircd-0.9.0[1970]: removed client


2) lirc-0.9.0 gives me the charming choice of using the lirc-made modules
(lirc_serial, lirc_dev) or the kernel-made modules (lirc_serial,lirc_dev).
Now kernel-4.10 ruined things, I should at least have the option of using
the lirc-made modules instead of serial_ir and lirc_dev.
However, the modules that lirc makes when using kernel-4.10 do not offer
the possibily of transmission. (It has no variable txsense anywhere in it.)
Although compiling says '--with-transmitter', there is something in the
kernel source that prevents lirc from building that in. That is not
derived from the .config file it finds in the source. I don't know what
else it is looking for and doesn't find anymore.


Regards, Wim.