Bug 24660 - lirc-0.10.1-7 It's not working. No device /dev/lirc0.
Summary: lirc-0.10.1-7 It's not working. No device /dev/lirc0.
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: Cauldron
Hardware: All Linux
Priority: Normal normal
Target Milestone: ---
Assignee: Kernel and Drivers maintainers
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-04-13 12:12 CEST by Alex Kotov
Modified: 2020-01-30 15:20 CET (History)
7 users (show)

See Also:
Source RPM:
CVE:
Status comment:


Attachments
serial_ir (mode2 test) (72.37 KB, image/png)
2020-01-25 14:23 CET, Alex Kotov
Details
IR (connection diagram) (90.70 KB, image/jpeg)
2020-01-25 14:24 CET, Alex Kotov
Details
lirc_options.conf (configuration file) (1.03 KB, text/plain)
2020-01-25 14:26 CET, Alex Kotov
Details

Description Alex Kotov 2019-04-13 12:12:50 CEST
Description of problem:
I use Mageia-7-beta2 i586 & x86_64. lirc-0.10.1-7 It's not working. No device /dev/lirc0.

Version-Release number of selected component (if applicable): lirc-0.10.1-7


How reproducible:


Steps to Reproduce:
1. urpmi --auto lirc;
2. Change in the file: /etc/lirc/lirc_options.conf
device = /dev/lirc0
3. Trying to connect kernel modules...
modprobe lirc_dev;

modprobe lirc_serial;
modprobe: FATAL: Module lirc_serial not found in directory /lib/modules/5.0.7-desktop586-4.mga7

modprobe ir_lirc_codec
modprobe: FATAL: Module ir_lirc_codec not found in directory /lib/modules/5.0.7-desktop586-4.mga7

modprobe serial_ir
modprobe: FATAL: Module serial_ir not found in directory /lib/modules/5.0.7-desktop586-4.mga7

modprobe sir_ir;
dmesg
[  331.290395] sir_ir: port existence test failed, cannot continue
4. service lircd start
5. mode2
Using driver devinput on device /dev/lirc0
Cannot initiate device /dev/lirc0

It says here that "lirc_serial" has been changed to "serial_ir":
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fa5dc29c1fcc9151c3bcfd9e291a2899ae15f61d

What kernel modules are needed for correct work lirc-0.10.1-7?

With respect,
Alex
Comment 1 Marja Van Waes 2019-04-14 17:05:43 CEST
(In reply to Alex Grant from comment #0)
> Description of problem:
> I use Mageia-7-beta2 i586 & x86_64. lirc-0.10.1-7 It's not working. No
> device /dev/lirc0.
> 
> Version-Release number of selected component (if applicable): lirc-0.10.1-7
> 
> 
> How reproducible:
> 
> 
> Steps to Reproduce:
> 1. urpmi --auto lirc;
> 2. Change in the file: /etc/lirc/lirc_options.conf
> device = /dev/lirc0
> 3. Trying to connect kernel modules...
> modprobe lirc_dev;
> 
> modprobe lirc_serial;
> modprobe: FATAL: Module lirc_serial not found in directory
> /lib/modules/5.0.7-desktop586-4.mga7
> 
> modprobe ir_lirc_codec
> modprobe: FATAL: Module ir_lirc_codec not found in directory
> /lib/modules/5.0.7-desktop586-4.mga7
> 
> modprobe serial_ir
> modprobe: FATAL: Module serial_ir not found in directory
> /lib/modules/5.0.7-desktop586-4.mga7
> 
> modprobe sir_ir;
> dmesg
> [  331.290395] sir_ir: port existence test failed, cannot continue
> 4. service lircd start
> 5. mode2
> Using driver devinput on device /dev/lirc0
> Cannot initiate device /dev/lirc0
> 
> It says here that "lirc_serial" has been changed to "serial_ir":
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/
> ?id=fa5dc29c1fcc9151c3bcfd9e291a2899ae15f61d
> 
> What kernel modules are needed for correct work lirc-0.10.1-7?
> 
> With respect,
> Alex

Assigning to the kernel maintainers for the answer.

CC'ing some submitters of lirc.

Assignee: bugsquad => kernel
CC: (none) => geiger.david68210, luigiwalser, marja11, pterjan, thierry.vignaud

Comment 2 Gilles Mouchard 2019-11-27 18:45:42 CET
That bug is similar to one in fedora: https://bugzilla.redhat.com/show_bug.cgi?id=1412860

I've got that problem on Mageia 7 with my mceusb devices (USB ID 2304:0225 Pinnacle Systems, Inc. Remote Kit Infrared Transceiver).
'cat /dev/lirc0' output some data when I press keys on my remote controller.
Default configuration in /etc/lirc/lirc_options.conf make lircd use /dev/input/event2 but nothing happen when I press some keys.

The solution for me was to modify in "driver=devinput" to "driver=default" in /etc/lirc/lirc_options. This make lircd reading input from /dev/lirc0 instead of /dev/input/event2.

CC: (none) => gilles.mouchard

Comment 3 Alex Kotov 2019-12-17 00:16:27 CET
Hello. Thanks for the answer, Gilles Mouchard

Written below is intended for an outdated kernel,has not updated the system for a long time. However, this option was useful to me, because the 

system the serial_ir kernel module was missing. Meanwhile, the serial port is still present in a variety of hardware platforms. Old computers aren't 

that old when it comes to Linux.

#We update the system, we will work with the latest:
urpmi --auto --auto-update

#Update the current kernel version, for example:
uname -r
5.0.8-desktop586-1.mga7

#Install the devel-kernel packages:
urpmi --auto kernel-devel

#Install the source code of the current kernel (select from the list by number):
urpmi kernel-source

#We have accommodation (This is an example):
#/usr/lib/modules/5.0.8-desktop586-1.mga7 - working modules of the current kernel
#/usr/src/kernel-5.0.8-1.mga7 - the source code for the current kernel
#/usr/src/kernel-5.0.8-desktop586-1.mga7 - devel

#Install the necessary packages:
urpmi --auto make gcc automake bison flex

#Create a config of a kernel:
cd /usr/src/kernel-5.0.8-1.mga7
make defconfig; make modules_prepare

#Prepare modules:
cd /usr/src/kernel-5.0.8-desktop586-1.mga7
make defconfig; make modules_prepare

#Create an empty directory /111 and copy the source code into it serial_ir.c:
mkdir /111
cp /usr/src/kernel-5.0.8-1.mga7/drivers/media/rc/serial_ir.c /111

#Create in /111 file:
cd /111; touch ./Makefile

#With such content.Yu
obj-m += serial_ir.ะพ (mcedit, vi, Vim, GEdit & etc...)

#Being in the directory /111 perform:
make -C /usr/src/kernel-5.0.8-desktop586-1.mga7 M=$PWD modules

#Received serial_ir.ko compressed with a xz:
xz -z ./serial_ir.ko

#And put the module in the working modules directory of the current kernel:
cp ./serial_ir.ko.xz /usr/lib/modules/5.0.8-desktop586-1.mga7/kernel/drivers/media/rc

#Update the list of all kernel modules:
depmod -a

#Stick the module serial_ir to the kernel:
modprobe serial_ir

#Look like a stick:
dmesg

p.s. I hope it will be useful to someone. Sorry with the complexities of the English language
p.p.s How Are You, Marja van Waes? The Russian community is very worried about you.
Comment 4 Thomas Backlund 2019-12-17 00:28:44 CET
Sorry I missed this report earlier...

serial ir module is now enabled in svn, and will available in next kernel update

CC: (none) => tmb

Comment 5 Alex Kotov 2019-12-17 00:43:01 CET
Thank You, Thomas Backlund.

With respect,
Alex Kotov
Comment 6 Alex Kotov 2020-01-25 14:23:26 CET
Created attachment 11484 [details]
serial_ir (mode2 test)
Comment 7 Alex Kotov 2020-01-25 14:24:43 CET
Created attachment 11485 [details]
IR (connection diagram)
Comment 8 Alex Kotov 2020-01-25 14:26:31 CET
Created attachment 11486 [details]
lirc_options.conf (configuration file)
Comment 9 Alex Kotov 2020-01-25 14:33:07 CET
Hello, Thomas.
I decided to check how the "serial_ir" module was screwed.

Results for the kernel 5.4.12-desktop-1.mga7


urpmi --auto lirc setserial; systemctl enable lircd; service lircd restart

Contents of my file: /etc/lirc/lirc_options.conf

# 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          = /run/lirc/lircd
pidfile         = /run/lirc/lircd.pid
plugindir       = /usr/lib64/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]
code1 = /usr/sbin/rmmod serial_ir
code2 = setserial /dev/ttyS0 uart none
code3 = /usr/sbin/modprobe serial_ir

# [lircd-uinput]
# add-release-events = False
# release-timeout    = 200
# release-suffix     = _EVUP


Check the response from the infrared receiver connected to the serial port /dev/ttyS0 (device /dev/lirc0) - see the screenshot of serial_ir.png

There is a response! Further...

Using the "irrecord -f" utility, I wrote the key codes and the remote name in /etc/lirc/lircd.conf. Of course, systemctl restart lircd. Installed Kodi-18.2 Leia. Tossed in ~/.kodi/userdata/Lircmap.xml and launched. My Kodi, as in previous versions of Mageia is now fine controlled from the remote via the serial port! Hurray!

The simplest infrared receiver was built according to this scheme (if someone needs it): see the screenshot of IR.jpg

Thank you again, Thomas. I think that the topic can be closed.

With respect,
Alex Kotov

p.s. Sorry for my bad English...
Comment 10 Alex Kotov 2020-01-30 15:20:54 CET
This issue has been resolved.

Status: NEW => RESOLVED
Resolution: (none) => FIXED


Note You need to log in before you can comment on or make changes to this bug.