Discussion:
[Sisuite-devel] RE : [PROVENANCE INTERNET] RE : systemimager build fixed with latest kernel+latest udev.
LAHAYE Olivier
2013-03-15 08:29:23 UTC
Permalink
Dear all,

I've just hit this problem:
http://trac.mondorescue.org/ticket/589

1 - Recent udev versions (>173) had change udevadm and udevd paths, and also changed some udevadm options.

2 - The replacement of module-init-tools by kmod, because module-init-tools has been declared as a dead project by his maintainer. The result was that modprobe, insmod, rmmod, lsmod and modinfo are now links to /usr/bin/kmod, and their paths also changed.

This should be fixeable......

I'm working on it.

Olivier.


--
Olivier LAHAYE
CEA DRT/LIST/DCSI/DIR
________________________________
De : LAHAYE Olivier
Date d'envoi : jeudi 14 mars 2013 19:45
À : sisuite-***@lists.sourceforge.net
Objet : [PROVENANCE INTERNET] [Sisuite-devel] RE : systemimager build fixed with latest kernel+latest udev.


After a short test, the initrd boots without kernel panic, but the udev init script needs changes, I'll work on that tomorrow.

Best regards,

Olivier.

--
Olivier LAHAYE
CEA DRT/LIST/DCSI/DIR
________________________________
De : LAHAYE Olivier
Date d'envoi : jeudi 14 mars 2013 19:12
À : sisuite-***@lists.sourceforge.net
Objet : [PROVENANCE INTERNET] [Sisuite-devel] systemimager build fixed with latest kernel +latest udev.


Dear all,

I've finaly managed to build latest udev using a recent kernel.

The trick I used is not beautifull, but I saw no other solution.

The situation before:
The build system did build the components for the initrd image using system installed includes.
Thus, when building udev for exmaple, it was compiled with the running kernel headers instead of the built kernel headers and it was linked with system installed libs, not with built libraries like blkid and such.

The solution I used is the following:
when preparing the initrd build dir, I copy the running system includes in it (to have a base).
Then I build the kernel and install the kernel headers on top of includes I've copied from the system. This simulates the fact I installed the kernel on the running system.
Then for each components, I use a CFLAGS and LDFLAG that points to the build dir to use as much as possible the built stuffs, and I make install (instead of make install-exec) in to the build_dir. This also installs the newer includes and the newer libs that will be used by subsequents build.
In the end, before building the initrd, I remove unnecessary files like /usr/include, /usr/share, /share, /lib/*.la and so.

This is not perfect, but far better than previous situation when udev was build whith 2.6.34.1 kernel headers and ran under kernel 3.7.5 which memory structures that had slightly changed.

The current issue is that util-linux needs udev and that udev needs util-linux. (chicken and egg problem). For the moment, util-linux is built before udev so udev can use the latest libblkid that match the kernel.

Hopefully, this will work. No kernel panic when udevd starts.

I've built successfully the fedora rpms and I'm currently building the CentOS-6.3 ones.

They'll be available here:

http://olivier.lahaye1.free.fr/OSCAR/unstable/

I'll test tomorrow...

Best regards,

Olivier.

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

Loading...