On Fri, 22 Apr 2011 08:00:35 +0200, Jörg Faschingbauer
> On Thu, 2011-04-21 at 16:18 -0500, chris@... wrote:
>> I've got a filesystem created with the following toolchain: (from
>> arm-unknown-linux-gnu-emerge system
>> arm-unknown-linux-gnu-emerge baselayout
>> I created the kernel separately, and was able to boot it with
>> filesystem that was created by somebody else.
>> During the boot process the kernel says "Attempted to kill init"
>> because the /init program exited for some reason.
>> The problem is that I can't get any other error from the init
>> I have no idea why it's exiting. It could be a missing library,
>> or bad invocation, so I have no idea where to start.
> Provided that /init is an executable:
> If the instruction set that the root filesystem was compiled for
> match your architecture's, then it's an "illegal instruction" signal
> that bites init. This usually happens quite early, before any
> configuration error is seen.
> You can verify this by building your own busybox-only tree with the
> toolchain you built the kernel with. Choose a static build
> (CONFIG_STATIC, "Busybox Settings"/"Build Options"/"blah static
> Copy init and all that it needs (glibc?) over from your real rootfs
> your small tree. Boot the kernel into the small tree, passing it
> init=/bin/sh (which is busybox). Call /init and see what happens.
> Alternatively, you could augment your tree with busybox, by
> it into it. Boot into the tree, but with init=/bin/sh (the augmented
> Have fun,
You were right about the "Illegal Instruction". I booted the working
filesystem and chrooted into the new one where I was able to play around
with the "broken" init file.
I'm guessing I stuck a bad flag in make.conf, since the same compiler
was able to produce a working kernel.