busybox sh does not run and cannot login when eabi enabled
cytan299 at netzero.net
cytan299 at netzero.net
Sun Jan 15 14:37:28 UTC 2012
Hi guys,
I've done more work with trying to get sh to work but to no avail. I have made the
hello world test from the busybox FAQ at http://busybox.net/FAQ.html#init and hello world
works.
So, I decided to make an execl() program to see whether spawning /bin/sh directy will
actually do anything. I put init=/bin/testit as one of the LINUX boot options.
(Note: the program has been tested on UBUNTU and it does work as expected.) First do a
"ls" exec() as a check
testit.c
********************************************
#include <stdio.h>
#include <unistd.h>
int main()
{
fprintf(stderr, "Launching ...\n");
execl("/bin/ls", "/bin/ls", "-r", "-t",
"-l", NULL);
// execl("/bin/sh", "/bin/sh", NULL);
fprintf(stderr, "Done!!!!\n");
sleep(999999999);
return 0;
}
********************************************
and the result is:
********************************************
RAMDISK: gzip image found at block 0
VFS: Mounted root (ext2 filesystem) readonly on device 1:0.
Freeing init memory: 84K
Launching ...
drwxrwxr-x 3 root root 1024 Nov 30 2011 var
drwxr-xr-x 2 root root 1024 Jan 7 2012 sys
drwxrwxr-x 2 root root 1024 Jan 7 2012 root
drwxrwxr-x 2 root root 1024 Jan 7 2012 proc
drwxrwxr-x 2 root root 1024 Jan 7 2012 opt
drwxrwxr-x 6 root root 1024 Jan 7 2012 usr
drwxrwxrwt 3 root root 1024 Jan 7 2012 tmp
drwxr-xr-x 3 root root 1024 Jan 7 2012 mnt
drwxrwxr-x 4 root root 1024 Jan 7 2012 home
drwxr-xr-x 6 root root 3072 Jan 7 2012 dev
lrwxrwxrwx 1 root root 11 Jan 14 2012 linuxrc -> bin/busybox
drwxrwxr-x 2 root root 1024 Jan 14 2012 sbin
drwxrwxr-x 3 root root 1024 Jan 14 2012 lib
drwxr-xr-x 5 root root 1024 Jan 14 2012 etc
drwxrwxr-x 2 root root 2048 Jan 14 2012 bin
drwx------ 2 root root 139264 Jan 14 2012 lost+found
s3c24xx_serial_stop_rx: port=c01e8058
Kernel panic - not syncing: Attempted to kill init!
*******************************************************************
Notice serial port stopping and kernel panic at the end. Why?
Now, I try spawning /bin/sh by commenting out the /bin/ls line:
********************************************************
#include <stdio.h>
#include <unistd.h>
int main()
{
fprintf(stderr, "Launching ...\n");
//execl("/bin/ls", "/bin/ls", "-r", "-t",
"-l", NULL);
execl("/bin/sh", "/bin/sh", NULL);
fprintf(stderr, "Done!!!!\n");
sleep(999999999);
return 0;
}
****************************************************
And the results are
****************************************************
VFS: Mounted root (ext2 filesystem) readonly on device 1:0.
Freeing init memory: 84K
Launching ...
s3c24xx_serial_stop_rx: port=c01e8058
Kernel panic - not syncing: Attempted to kill init!
s3c2410-ohci s3c2410-ohci: auto-stop root hub
******************************************************
And there's no shell!
Any pointers?
Thanks!
More information about the busybox
mailing list