Wrong installation path?
Hello,
I'm trying to get lirc works on my buildroot environment. Looking at package/lirc/src I see the S70lircd script has a lot of hardcoded paths, i.e.:
if [ -f /etc/lirc/hardware.conf ];then
. /etc/lirc/hardware.conf
fi
if [ ! -f /etc/lirc/lircd.conf ] || grep -q "^#UNCONFIGURED" /etc/lirc/lircd.conf; then
if [ "$1" = "start" ]; then
The lirc.mk instead contains the following:
define LIRC_INSTALL_TARGET_SCRIPTS
mkdir -p $(TARGET_DIR)/etc/init.d
$(INSTALL) -m 0755 package/lirc/src/S70lircd
$(TARGET_DIR)/etc/init.d/
$(INSTALL) -m 0755 package/lirc/src/hardware.conf
$(TARGET_DIR)/etc/
$(INSTALL) -m 0755 package/lirc/src/lircd.conf $(TARGET_DIR)/etc/endef
In my opinion the destination directory should be $(TARGET_DIR)/etc/lirc/ Is there any reason why /lirc/ is missing? I mean: I am sure that the package has worked for those who have uploaded.
The second question is more generic. I can't still understand when I have to learn about buildroot and when about the specific package. For example, the lirc documentation says I should find a /dev/lirc device if I'm using udev.
But on my target (which has udev!) there is no such a device.
Where should I look at? How to know if I missed something in the buildroot/kernel configuration or just in the package (lirc) configuration files?
Thanks
Marco
Dear Marco Trapanese,
Quoted 22 lines · Marco Trapanese
I'm trying to get lirc works on my buildroot environment. Looking at package/lirc/src I see the S70lircd script has a lot of hardcoded paths, i.e.:
if [ -f
/etc/lirc/hardware.conf];then
./etc/lirc/hardware.conf
fiif [ ! -f
/etc/lirc/lircd.conf] || grep -q "^#UNCONFIGURED"/etc/lirc/lircd.conf; thenif [ "$1" = "start" ]; thenThe lirc.mk instead contains the following:
define
LIRC_INSTALL_TARGET_SCRIPTSmkdir -p $(TARGET_DIR)/etc/init.d $(INSTALL) -m 0755 package/lirc/src/S70lircd $(TARGET_DIR)/etc/init.d/ $(INSTALL) -m 0755 package/lirc/src/hardware.conf $(TARGET_DIR)/etc/ $(INSTALL) -m 0755 package/lirc/src/lircd.conf $(TARGET_DIR)/etc/
Quoted 5 lines
endef
In my opinion the destination directory should be $(TARGET_DIR)/etc/lirc/ Is there any reason why /lirc/ is missing? I mean: I am sure that the package has worked for those who have uploaded.
You are not using the mainline Buildroot. There is no package for lirc in the mainline Buildroot, so this bug does not apply to the mainline Buildroot. That being said, it certainly looks wrong.
Can you recommend to the author of your Buildroot fork to submit his changes to the official version? It would have a lot of benefits:
*) Core Buildroot developers would review the changes, and through
this review, several quality improvements would be made.
*) The users, such as you, could benefit from the support of the
entire Buildroot community, which you cannot at the moment since you're using a derivative version.
Alternatively, you could also yourself start using only the official Buildroot version, grab the few changes you need from this derivative version, and push them to the official Buildroot version. On the long-run, it is the most efficient solution.
Quoted 2 lines
The second question is more generic. I can't still understand when I have to learn about buildroot and when about the specific package.
You have to learn about both, depending on what problem you're trying to fix.
Quoted 3 lines
For example, the lirc documentation says I should find a
/dev/lircdevice if I'm using udev.
But on my target (which has udev!) there is no such a device.
Probably because your kernel configuration lacks the support for the proper kernel subsystem or kernel drivers.
Quoted 3 lines
Where should I look at? How to know if I missed something in the buildroot/kernel configuration or just in the package (lirc) configuration files?
The package (lirc) is independent from the presence of absence of /dev/lirc<X>. As long as /dev/lirc<X> is not visible, then your problem is a kernel configuration problem. Of course, make sure your kernel has CONFIG_DEVTMPFS and CONFIG_DEVTMPFS_MOUNT enabled, these are mandatory if you use Buildroot udev support. See
http://buildroot.org/downloads/manual/manual.html#_dev_management for details.
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
Quoted 3 lines · Thomas Petazzoni
Dear Marco Trapanese,
On Fri, 31 Jan 2014 09:45:17 +0100, Marco Trapanese wrote:
[snip]
Quoted 11 lines
Quoted 4 lines
For example, the lirc documentation says I should find a
/dev/lircdevice if I'm using udev.
But on my target (which has udev!) there is no such a device.Probably because your kernel configuration lacks the support for the proper kernel subsystem or kernel drivers.
Quoted 3 lines
Where should I look at? How to know if I missed something in the buildroot/kernel configuration or just in the package (lirc) configuration files?
Or because lirc should install a udev rule but the buildroot wrapper
doesn't install it correctly (seems like since it looks like it also didn't get the init script right).
Regards,
Arnout
Quoted 13 lines
The package (lirc) is independent from the presence of absence of /dev/lirc<X>. As long as /dev/lirc<X> is not visible, then your problem is a kernel configuration problem. Of course, make sure your kernel has
CONFIG_DEVTMPFSandCONFIG_DEVTMPFS_MOUNTenabled, these are mandatory if you use Buildroot udev support. See
http://buildroot.org/downloads/manual/manual.html#_dev_management for details.Best regards,
Thomas
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F