On Tue, 17 Nov 2009 13:54 -0800, "Chris Dearman" <chris@mips.com> wrote:
> Kevin D. Kissell wrote:
> > This looks like another boot file system setup problem to me. Are you
> > sure that there's an executable init image at /mnt/root/sbin/init? I'm
> > pretty sure that the path that you provide to your new init has to be
> > relative to the new root.
>
> That sounds right.
>
> Andrew, my suggestion would be to change your initramfs /init script to
> invoke "/bin/busybox sh" as the last command instead of "exec
> switch_root". The "Kernel panic - not syncing: Attempted to kill init!"
> says that switch_root is exiting for some reason. It could be anything
> from missing files/devices on the /mnt/root file system to a bug in
> busy_box.
> By booting into the shell you can run the command by hand (maybe with
> strace if you have it) to help identify where the problem is.
>
> Chris
>
> --
> Chris Dearman Desk: +1 408 530 5092 Cell: +1 408 398 5531
> MIPS Technologies Inc 955 East Arques Ave, Sunnyvale CA 94085
Chris,
Thanks for your response. Now I changed my init file to the following -
#!/bin/busybox sh
mount -t proc proc /proc
mount -t sysfs sysfs /sys
mdev -s
/bin/busybox sh
The Kernel panic is gone but the shell still does not come up. Somehow
there is no printout on the screen. Below is the error info.
I have tried similar things previously. I also tried using a statically
linked hello world in the place of init script. But the result is
similar - no print out from either hello world or busybox.
[ 1.169000] TCP cubic registered
[ 1.173000] NET: Registered protocol family 17
[ 15.811000] Freeing unused kernel memory: 1032k freed
[ 33.978000] Algorithmics/MIPS FPU Emulator v1.5
And here is the trace on BDI -
gdb) c
Continuing.
Breakpoint 2, do_execve (filename=0x9780a000 "/init", argv=0x943dd2bc,
envp=0x943dd230, regs=0x97819e30)
at fs/exec.c:1293
1293 retval = unshare_files(&displaced);
(gdb) c
Continuing.
Breakpoint 2, do_execve (filename=0x9780a000 "/bin/busybox",
argv=0x4f73dc, envp=0x4f73ec, regs=0x97987f30)
at fs/exec.c:1293
1293 retval = unshare_files(&displaced);
(gdb) c
Continuing.
^C
Program received signal SIGSTOP, Stopped (signal).
r4k_wait () at arch/mips/kernel/genex.S:147
147 jr ra
Current language: auto; currently asm
Let me provide some history about what I am trying to do here in case it
is relevant to the issue. I have a MIPS32 board very similar to AR7.
Previously it has working toolchain/u-boot/kernel. I changed the board
from little endian to big endian mode and have been trying to upgrade
the toolchain/u-boot/kernel (gcc 4.4.1/u-boot2009.08/kernel 2.6.31). I
made some changes to the u-boot and kernel on console initialisation in
order to bring up the console. Up to the point, the kernel comes up
normally.
Since the time I start porting, I have been wondering if any change
related to exception needs to be done due to the endianess change. But
recently I found an AR7 patch for big endian mode(
https://lists.openwrt.org/pipermail/openwrt-devel/2009-May/004262.html)
and I did not see any change related to exception there. I hope the
issue is not something related to exception that messes up the
execution. Sorry if the above is a stupid question. I am trying to learn
embedded system. Your suggestion will be appreciated.
Thanks, Andrew
|