On 08/01/08 15:46, Åsmund Grammeltvedt wrote: > On Tuesday 08 January 2008 15:34:09 lurker wrote: >> Greetings, >> >> Often when I build systems with catalyst I encounter the following >> >> kernel freeze after the boot loader has completed: >>> [ ... lots of kernel loading stuff which seems ok ... ] >>> Freeing unused kernel memory: 172k freed >>> request_module: runaway loop modprobe binfmt-0000 >>> request_module: runaway loop modprobe binfmt-0000 >>> request_module: runaway loop modprobe binfmt-0000 >>> request_module: runaway loop modprobe binfmt-0000 >>> request_module: runaway loop modprobe binfmt-0000 > > I had an issue with the same symptoms. It turned out that after some builds, > the initramfs would contain empty files instead of links to busybox. > > In my case, the only way I could get it to work consistently was to patch > genkernel to use symbolic links instead, when setting up the initramfs. >
Now I'm constantly plagued by this hickup. I did my homework and investigated this in depth. I'm not sure this is completely the same as what Åsmund described elsewhere in this thread. For me the hard links in /bin (of the initramfs) to /bin/busybox works. The problem is that /bin/busybox is empty. I dived into the code, focusing on how genkernel and catalyst works together, and especially how genkernel generate the initramfs. After patching in some primitive print_info debugging I discovered that genkernel fails to add busybox with cpio (this is with genkernel-3.4.9 and catalyst-2.0.6_pre6): In append_busybox() in genkernel-3.4.9/gen_initramfs.sh:36, busybox is appended to the initramfs on line 101, which looks like this: find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" I added debug prints of the size of the current initramfs (i.e. ${CPIO}) both before and after the above command, and it turns out that only 2048 bytes of data is added. Since the busybox executable that _should_ be added at that time is 1080 Kb big, it's obviously here everything goes wrong which was confirmed by extracting it. /bin/busybox is just and empty executable. This happens no matter if I use kerncache or not. Also, I have confirmed that there is a good busybox executable in ./bin from the directory the above command runs from. But why? When I do the exact same series of commands manually myself it works. Obviously most people doesn't experience this problem either so it has to be something with my system. Add to this the randomness of the problem, that it works sometimes. I would _really_ appreciate any input on this. I will gladly do any sort of debugging if you just give my a few pointers on where to look and what to do cause I'm completely lost now. Also, my system runs stable amd64 Gentoo, but I run catalyst in a i686 chroot to protect my main system. Could that have anything to do with this? -- gentoo-catalyst@lists.gentoo.org mailing list