Linux Kernel hangs after execve('/bin/sh')
Daris A Nevil
dnevil at snmc.com
Thu Jan 23 02:22:59 EST 2003
Prakash,
Try compiling your hello.c program with the -Bstatic flag. That will
eliminate the need to load libraries, and should show if there are other
problems. If that works OK then we can focus on why your library loading
is failing.
Regards,
Daris Nevil
Prakash kanthi said:
>
> Hi FOlks,
>
> I finally reached the last step (hopefully) of linux
> kernel booting process. Kernel gets stuck after doing
> a 'execve("/bin/sh")'. I tried using different
> ramdisks, still no difference.
>
> I added few printk's in the source, following the
> function call path from 'execve' call. Following is
> the output. You can see that, execve goes through
> without any file permission problems and subsequently
> it tries to open /lib/ld.so.1 flawlessly. After that i
> see nothing on the terminal.
>
> ---------
> init:Trying to bring /bin/sh up.
> do_execve:enter for /bin/sh
> open_exec:enter for /bin/sh.
> open_exec:Permission error=0.
> dentry_open:enter.
> dentry_open: after file->f_op->open. 0
> open_exec:enter for /lib/ld.so.1.
> open_exec:Permission error=0.
> dentry_open:enter.
> dentry_open: after file->f_op->open. 0
> do_execve: after search_binary_handler. retval=0
> -----------
>
>
> I wrote a small standalone program hello.c to test, if
> i can dynamically load it from init() instead of
> loading /bin/sh. I compiled the program added it to my
> ramdisk and called from init(). Following is the
> output. You can see that, it did all of it that it did
> for /bin/sh and also tried to open /etc/ld.so.preload
> and /etc/ld.so.cache and failed. But again towards the
> end, it tries to open /lib/libc.so.6 and succeds but
> still no output is displayed that hello.c is trying to
> print.
>
> ---------
> init:Trying to bring /bin/hello up.
> do_execve:enter for /bin/hello
> open_exec:enter for /bin/hello.
> open_exec:Permission error=0.
> dentry_open:enter.
> dentry_open: after file->f_op->open. 0
> open_exec:enter for /lib/ld.so.1.
> open_exec:Permission error=0.
> dentry_open:enter.
> dentry_open: after file->f_op->open. 0
> do_execve: after search_binary_handler. retval=0
> sys_open:enter for /etc/ld.so.preload.
> sys_open:unused_fd=3.
> filp_open:enter for /etc/ld.so.preload.
> filp_open:open_namei error -2.
> sys_open:enter for /etc/ld.so.cache.
> sys_open:unused_fd=3.
> filp_open:enter for /etc/ld.so.cache.
> filp_open:open_namei error -2.
> sys_open:enter for /lib/libc.so.6.
> sys_open:unused_fd=3.
> filp_open:enter for /lib/libc.so.6.
> filp_open:open_namei error 0.
> dentry_open:enter.
> dentry_open: after file->f_op->open. 0
> -----------
>
> Can someone please throw some light on this?
>
> Thanks,
> Prakash
>
>
Daris A Nevil
Simple Network Magic Corporation
401 Kentucky
McKinney, Texas 75069
http://www.snmc.com
972-562-3751
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-embedded
mailing list