linux kernel hang in execve("/sbin/init")

Stephen Telfer stig at lizardlogic.co.uk
Mon Jul 24 16:34:58 EST 2006


Hi Eric -

Sometimes a hang at this point can be down to a mismatch between 
toolchain, C library and kernel about whether floating point is 
implemented, emulated or absent.  Early in one of the shared libraries 
there are a string of saves of FP registers, and if your CPU has no FPU 
and your kernel has no FPU emulation this will be terminal (and 
silently so).  A printk statement in the illegal instruction trap 
handler would confirm this hypothesis.

Hope this helps,
Stig


On 22 Jul 2006, at 07:10, Eric Nuckols wrote:

> I googled...and googled...etc. etc.. when trying to solve the problem 
> of my
> linux kernel seemingly locking or hanging when it gets to the last 
> part of
> the linux init in main.c
>
> I saw lots of information and suggestions related to try /bin/sh or 
> make
> sure your initrd is ok or make sure you have more than one 
> session..etc.
> etc... .. and all of these topics were mostly from 2001-2003...well..
> 2006...it's here and apparently some of us haven't gotten smarter..
>
> I had this problem recently where my kernel would boot and freeze or 
> hang in
> execve of /sbin/init and also of /bin/sh or /bin/bash...
>
> I debugged and debugged.. and finally thougt... why not try the default
> Kernel config for my target, the PrPmc800 from Motorola... and see 
> what that
> does..   Originally, I started with the MontaVista 3.1 Pro setup for 
> the
> board and it works...so I used it's Kernel .config file to configure my
> latest and greatest (at the time) 2.6.16.18 kernel thinking... well.. 
> this
> has to work..
>
> so.. I ended up with a kernel that semingly hang/froze/locked on the 
> execve
> call in the linux init routines...
>
> guess what folks... the google searches left me just on the verge of 
> giving
> up.
>
> I am here to post this info as somewhat of another answer/alternative 
> to
> people in the same predicament...
>
> if you are having problems with your cross-compiled / embedded ppc 
> kernel
> freezing or hanging on execve, try using the default configuration for 
> your
> target when you build the kernel...
>
> in my case, I did this sort of thing and all of a sudden, my kernel was
> working:
>
> cd to kernel dir
> make distclean
> make CROSS_COMPILE=powerpc-7400-linux-gnu- prpmc800_defconfig
> make zImage.initrd
>
> etc..etc..
>
> it turns out that since I was basing my initial config off of the 2.4.x
> .config from MontaVista, my kernel didn't boot as desired...
>
> so I figured.. after all the googling and working on it that the 
> default
> PrPmc800 config had to boot... why else call it the default config..
>
> so that's my story..   since then, I have copied the kernel
> dir/arch/ppc/configs/prpmc800_defconfig to a temporary file, and 
> modified it
> as necessary...
>
> moral of the story... if you are cross-compiling and having problems 
> where
> you hang on execve("/sbin/init") or execve("/bin/sh") or
> execve("/bin/bash")..etc...   try what I did before you go crazy 
> analyzing
> the initrd or the various /etc/ file configurations or any of the other
> typical bs...
>
>
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded at ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded




More information about the Linuxppc-embedded mailing list