Skip to contentSkip to conversation

Wrong installation path?

Buildroot Marco Trapanese 3 participants 3 messages Jan 31, 2014 – Feb 2, 2014

lore
Share & tools
lore
#0 lore raw

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

#1 lore raw

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
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/
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/lirc device 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
#2 lore raw
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/lirc device 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_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 · 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