Thread (7 messages) flat view 7 messages, 3 authors, 2007-08-08

Re: no output to serial console from /init process on ml405

From: Anton Kowalski <hidden>
Date: 2007-08-08 19:31:29

On 8/8/07, Wolfgang Reissnegger [off-list ref] wrote:
The thing that points to a problem with init is:
  Kernel panic - not syncing: Attempted to kill init!

What is the string that is supposed to be printed? Maybe the printf
tries to print a string at an invalid address, causing init to crash?
To test that hypothesis, I created a program that loops indefinitely:

  for (;;) {
          printf("hello\n");
          sleep(1);
  }
  return 0;

This produces the following output:

[    2.715404] Freeing unused kernel memory: 116k init
[    2.776225] sys_write 1
[    3.808186] sys_write 1
[    4.840192] sys_write 1
[    5.872181] sys_write 1
[    6.904193] sys_write 1
[    7.936181] sys_write 1
....

The string "sys_write 1" is from a printk I inserted into sys_write.

So init doesn't crash, which suggests that I haven't set up the /dev
files correctly.

Thanks again.

Anton
Also, you can check if you set the option for console on serial output:
  Location:
    -> Device Drivers
      -> Character devices
        -> Serial drivers
          -> 8250/16550 and compatible serial support (SERIAL_8250 [=y])

Cheers,
   Wolfgang

Anton Kowalski wrote:
quoted
Wolfgang,

Thanks, I'll try your suggestion.

It's worth noting that the init executable is calling into the
kernel.

I put a printk in sys_write, which is on the call path of printf()
and the output is sent to the console. However, the output of printf
is not to be seen. This suggests the problem is perhaps in the serial
 device setup?

Anton

On 8/8/07, Wolfgang Reissnegger [off-list ref]
wrote:
quoted
Hi Anton,

it looks as if your init executable is not doing the right thing
and for some reason terminates. Maybe your inittab configuration is
wrong? Maybe the init executable has been compiled with the wrong
options?

You can try to copy another executable (e.g. sh, getty) into /init
and see if you get any output. If you see anything doing that then
most likely there's something wrong with your init executable.

Wolfgang

Anton Kowalski wrote:
quoted
Hi All:

I'm trying to bring up linux 2.6.21.1 on an ml405 board. The
kernel boots fine but the init process does not produce any
output. The /init program resides in an initramfs file system and
I believe the /dev device files have been set up correctly.
Here's an excerpt from my initramfs specification:

dir /dev 755 0 0 nod /dev/console 644 0 0 c 5 1 nod /dev/ttyS0
644 0 0 c 4 64

(I am able to open these files from the init program. I tested
this by sleeping for a specified time on success.)

Also, printk continues to function after /init terminates and
before the kernel panics.

Here are the last few lines of the console output:

[    0.507478] Serial: 8250/16550 driver $Revision: 1.90 $ 4
ports, IRQ sharing disabled [    0.513862] serial8250.0: ttyS0 at
MMIO 0x80201003 (irq = 3) is a 16550A [    2.927509] RAMDISK
driver initialized: 1 RAM disks of 8192K size 1024 blocksize [
3.018391] tun: Universal TUN/TAP device driver, 1.6 [
3.079115] tun: (C) 1999-2004 Max Krasnyansky [off-list ref]
[    3.154919] mice: PS/2 mouse device common for all mice [
3.218021] TCP cubic registered [    3.257034] NET: Registered
protocol family 1 [    3.309405] NET: Registered protocol family
17 [    3.363462] Freeing unused kernel memory: 300k init [
23.488277] Kernel panic - not syncing: Attempted to kill init! [
23.559517] Rebooting in 180 seconds..<NULL>

I'm using the plb uart and the 8250.c driver. (The obp uartlite
driver didn't work so I switched.) The kernel and the init
program were compiled with eldk.

Any insights into resolving this problem are greatly appreciated.



Anton _______________________________________________
Linuxppc-embedded mailing list Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help