[mythtv-users] Anyone Using LIRC on CentOS 6.6?
Alec Leamas
leamas.alec at gmail.com
Fri Jun 5 07:29:41 UTC 2015
On 05/06/15 01:32, Kirk Bocek wrote:
> On 6/4/2015 1:18 PM, Alec Leamas wrote:
> Well I am confused on this kernel decoding issue. I thought the choice
> was LIRC using /dev/lirc0 or devinput using /dev/input/eventXX. I
> thought only one or the other uses kernel decoding. Now you tell me
> *both* uses kernel decoding.
You got me wrong (my bad?) When using the devinput user-space driver,
lirc gets it's input from the kernel decoding. When using other
user-space drivers, lirc makes the decoding internally.
>> Once this this works you should be able to check the raw timing data
>> on /dev/lirc0 using mode2. This is described in a link I won't repeat :)
>
> Finally! Some output
>
> space 900
> pulse 750
> space 2550
> pulse 800
> space 6146
> pulse 550
>
> The receiver is active and getting input from my remote. But I knew this
> from the error messages.
>
>>
>> If you have this data, you could run lircd using "--device /dev/lirc0
>> --driver default". With a proper lircd.conf file should be fine. You
>> could also use irrecord(!) to try to roll your own.
>
> This is (I think) what I started with. Not specifying the device means
> LIRC uses /dev/lirc0.
To be sure you need to enable debugging, which on 0.9.0 means rebuilding
lirc. In your situation I would certainly explicitly set the device to
be sure.
> Not specifying the driver means it uses whatever
> is loaded, mceusb in my case.
Here is some confusion about "driver". Using lirc means there are two
drivers involved: The kernel driver (here mceusb) and the lirc
user-space driver. The default user-space driver is a driver which works
on top of lirc-aware kernel drivers such as mceusb.
For usb devices, the kernel automatically loads the correct kernel
driver, we don't have to mess with this. We must still specify the
user-space driver, though.
The term "user-space driver" is actually a misnomer. See it as a plugin,
it's a better idea. The term is just historical.
> $echo 'lirc' >/sys/class/rc/rc5/protocols
> $cat /sys/class/rc/rc5/protocols
> rc-5 nec rc-6 jvc sony [lirc]
This looks fine. The [lirc] here means that lirc is the enabled protocol
> Reset /etc/sysconfig/lirc to:
> LIRC_DRIVER=""
> LIRC_DEVICE=""
From above, set DEVICE=/dev/lirc0 and DRIVER=default.
> $service lirc restart
>
> And more of the same with irw:
>
> Jun 4 16:28:05 marble lircd-0.9.0[12108]: failed on bit 1
> Jun 4 16:28:05 marble lircd-0.9.0[12108]: failed on bit 5
> Jun 4 16:28:05 marble lircd-0.9.0[12108]: failed on bit 13
> Jun 4 16:28:05 marble lircd-0.9.0[12108]: failed on bit 13
So, lircd cannot decode the input... try first with correct
configuration. Otherwise, we will need to use irrecord to make a new
lircd.conf
> So when you say "fix kernel decoding" is this what you meant?
No. I meant using ir-keytable and it's various options without setting
the kernel driver protocol to lirc. Perhaps, you could then make the
kernel decoding work, which then could be shown using ir-keytable -t,
not involving lirc in any way. But again, this is unchartered territory
for me. It's also a completely other route than the rest of this
message possibly involving the devinput driver, changing device names,
udev rules and so forth.
Cheers!
--alec
More information about the mythtv-users
mailing list