View Single Post
Community Council | Posts: 4,920 | Thanked: 12,867 times | Joined on May 2012 @ Southerrn Finland
#1378
OK search me, just how stupid can one be...

I realized the reason my modules were incompatible, and now I remembered I actually knew this 4 years ago but had forgotten it. Woot, me growing old or what???

So; this is the problem/solution; I'll note it down here so when in another 4 years I forget it again someone can point me to this and call me a bloody feather-head...

When building a kernel with modules that are to be included in the built-in-initramfs there is a slight inconsistancy in the build mechanics; the initramfs image is built in "make" phase but the modules are built in "make modules"; this means that you have to build modules before zImage, else your make will of course fail due to the missing modules.
Now, when you do "make modules" before "make", you get the modules but there are some dependencies missing and the build system will not warn you about it....

The correct procedure to do it is this;
  • make clean; make mrprop
  • ARCH=arm make ubiboot-02_defconfig
  • [edit your ubifs/ubifs.list so that you comment out all modules-to-be-included]
  • ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- make
  • ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- make modules
  • rm -rf ./usr/built-in.o usr/initramfs_data.cpio ./usr/initramfs_data.o ./arch/arm/boot/zImage ./arch/arm/boot/Image
  • [edit your ubifs/ubifs.list so that you re-enable all modules-to-be-included]
  • ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- make

And now Bob's your uncle and you will have a new shiny working combined kernel image in ./arch/arm/boot/zImage

Note to self; I need to write a sedscript to do the comment/uncomment thingy...
 

The Following 6 Users Say Thank You to juiceme For This Useful Post: