Discussion:
[Sisuite-devel] Need help (udev build needs newer kernel includes)
LAHAYE Olivier
2013-01-30 14:21:11 UTC
Permalink
Hi,

I've understood a little bit better the udev problem (udev not loading required drivers).

According to this link (http://my.safaribooksonline.com/book/operating-systems-and-server-administration/embedded-linux/9780137061129/udev/ch19lev1sec8#X2ludGVybmFsX0h0bWxWaWV3P3htbGlkPTk3ODAxMzcwNjExMjklMkZjaDE5bGV2MXNlYzgmcXVlcnk9) the modprobe command from busybox is not compatible with udev, thus no module is loaded and no error is displayed.

The solution is to build module-init-tools wich seems not too complicated.

But before fixing this, we need to be able to build a recent udev that is aware of recent hardware. Unfortunately, the initrd build mechanisme assumes that we can use build host includes and libraries to build its components. While it should work in most cases, it's a problem with components depending on something newer that the version present on the build host.

for udev, we hit this problem several times:
1st we need a newer libblkid (fixed)
2nd, we need libkmod (not present at least on centos6) (fixed)
3rd, we need includes (input.h) for kernel 3.2+ and this is my problem.

I've tryed to add a -I$(INITRD_BUILD_DIR)/src/linux-2.7.5/include to the CFLAGS, unfortunately, this is far not sufficient. as those includes assumes some other definitions that are not yet in the build host /usr/include (too old version).

I've also tryed to do a "make install" instead of "make install-exec" in many rules so includes are installed in the $(INITRD_BUILD_DIR)/usr/include (then cleared at the end before the mkinitrd) but this seems not sufficient.

So I think this is the wrong approach.

So for now, I'm stuck with udev. The current version is far too old for recent hardwares, and newer versions can't be build.

ANY advise or help would be greatly apreciated

Best regards,

Olivier.

--
Olivier LAHAYE
CEA DRT/LIST/DCSI/DIR

Loading...