Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Warning: unable to open an initial console.

1,442 views
Skip to first unread message

Tom Strader

unread,
Apr 2, 2007, 3:05:53 PM4/2/07
to linux-...@vger.kernel.org
I have seen quite a few posts regarding unable to open an initial console, but my system seems to have the necessary things in place so I come looking for help.  I have not yet subscribed to this mailing list so please CC the responses to me.  Quick summary before we get to console output, this is running on a PXA270 with 16MB flash at 0x00000000, 128MB RAM at 0xa0000000.  I am able to bring up U-boot and run ls /dev and the console appears there.  The only components on the board are memory so I am just going for a basic boot for now.  I guess my question is, what are some of the reasons for the console not to start.  Also just as a side note, the kernel appears to continue past "Warning: unable to open an initial console." And find /sbin/init but then goes to an idle loop.  With that said here is the output so hopefully we can fix it.  I am fairly new to linux so if I missed anything let me know.

Thanks,
Tom.S...@Xilinx.com

U-Boot 1.1.6 (Mar 30 2007 - 14:52:10)

U-Boot code: A1700000 -> A17201BC  BSS: -> A175240C
RAM Configuration:
Bank #0: a0000000 64 MB
Bank #1: a4000000  0 kB
Bank #2: a8000000  0 kB
Bank #3: ac000000  0 kB
Flash: 16 MB
In:    serial
Out:   serial
Err:   serial
Hit any key to stop autoboot:  0
## Booting image at 00040000 ...
   Image Name:   Linux-2.6.17-pcm027-3
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    754152 Bytes = 736.5 kB
   Load Address: a0008000
   Entry Point:  a0008000
   Verifying Checksum ... OK
OK

Starting kernel ...

Uncompressing Linux................................................... done, booting the kernel.
Linux version 2.6.17-pcm027-3 (tstrader@xsjcfs20611) (gcc version 4.0.2) #7 PREEMPT Mon Apr 2 10:16:43 PDT 2007
CPU: XScale-PXA270 [69054117] revision 7 (ARMv5TE)
Machine: LogicPD PXA270 Card Engine
Memory policy: ECC disabled, Data cache writeback
On node 0 totalpages: 16384
  DMA zone: 16384 pages, LIFO batch:3
Run Mode clock: 91.00MHz (*7)
Turbo Mode clock: 182.00MHz (*2.0, inactive)
Memory clock: 91.00MHz (/1)
System bus clock: 45.50MHz
CPU0: D VIVT undefined 5 cache
CPU0: I cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
CPU0: D cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
Built 1 zonelists
Kernel command line: console=ttyS0,115200 loglevel=8 mtdparts=phys_mapped_flash:256k(uboot)ro,4096k(kernel),5m(uRamdisk),
-(jffs2_root) root=/dev/mtdblock3 rootfstype=jffs2
PID hash table entries: 512 (order: 9, 2048 bytes)
Console: colour dummy device 80x30
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 64MB 0MB 0MB 0MB = 64MB total
Memory: 63268KB available (1256K code, 261K data, 76K init)
Calibrating delay loop... 90.52 BogoMIPS (lpj=452608)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
Device 'sa1100-rtc' does not have a release() function, it is broken and must be fixed.
Device 'pxa2xx-i2s' does not have a release() function, it is broken and must be fixed.
Device 'pxa2xx-i2c.0' does not have a release() function, it is broken and must be fixed.
Device 'pxa2xx-ir' does not have a release() function, it is broken and must be fixed.
Device 'pxa2xx-uart.2' does not have a release() function, it is broken and must be fixed.
Device 'pxa2xx-uart.1' does not have a release() function, it is broken and must be fixed.
Device 'pxa2xx-uart.0' does not have a release() function, it is broken and must be fixed.
Device 'pxa2xx-fb' does not have a release() function, it is broken and must be fixed.
Device 'pxa2xx-udc' does not have a release() function, it is broken and must be fixed.
Device 'pxa2xx-mci' does not have a release() function, it is broken and must be fixed.
Initialising gpio device class.
gpio: Unrecognized option ""
JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
fuse init (API version 7.6)
io scheduler noop registered (default)
RAMDISK driver initialized: 8 RAM disks of 4096K size 1024 blocksize
loop: loaded (max 8 devices)
physmap flash device: 1000000 at 0
phys_mapped_flash: Found 1 x16 devices at 0x0 in 16-bit bank
 Amd/Fujitsu Extended Query Table at 0x0040
Using buffer write method
phys_mapped_flash: CFI does not contain boot bank location. Assuming top.
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
4 cmdlinepart partitions found on MTD device phys_mapped_flash
Creating 4 MTD partitions on "phys_mapped_flash":
0x00000000-0x00040000 : "uboot"
mtd: Giving out device 0 to uboot
0x00040000-0x00440000 : "kernel"
mtd: Giving out device 1 to kernel
0x00440000-0x00940000 : "uRamdisk"
mtd: Giving out device 2 to uRamdisk
0x00940000-0x01000000 : "jffs2_root"
mtd: Giving out device 3 to jffs2_root
mice: PS/2 mouse device common for all mice
i2c /dev entries driver
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x003c7a1c: 0x3e18 instead
Empty flash at 0x003c7a28 ends at 0x003c7a2c
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x003c7a38: 0x3e38 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x003c7a3c: 0x3e38 instead
Empty flash at 0x003c7a48 ends at 0x003c7a4c
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x003c7a58: 0x3e58 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x003c7a5c: 0x3e58 instead
Empty flash at 0x003c7a68 ends at 0x003c7a6c
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x003c7a78: 0x3e78 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x003c7a7c: 0x3e78 instead
Empty flash at 0x003c7a88 ends at 0x003c7a8c
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x003c7a98: 0x3e98 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x003c7a9c: 0x3e98 instead
Empty flash at 0x003c7aa8 ends at 0x003c7aac
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x003c7ab8: 0x3eb8 instead
Further such events for this erase block will not be printed
Empty flash at 0x003c7ac8 ends at 0x003c7acc
..
Empty flash at 0x003cffe8 ends at 0x003cffec
VFS: Mounted root (jffs2 filesystem).
Freeing init memory: 76K
Warning: unable to open an initial console.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Chris Wedgwood

unread,
Apr 2, 2007, 6:51:10 PM4/2/07
to Tom Strader
On Mon, Apr 02, 2007 at 12:04:56PM -0700, Tom Strader wrote:

> I have seen quite a few posts regarding unable to open an initial
> console, but my system seems to have the necessary things in place
> so I come looking for help.

your rootfs/initramfs/initrd is missing a valid working /dev/console

> VFS: Mounted root (jffs2 filesystem).

check /dev/ on this filesystem

Tom Strader

unread,
Apr 2, 2007, 7:20:50 PM4/2/07
to Chris Wedgwood
I checked /dev/ with U-boot and it shows the existence of /dev/console.

From U-boot prompt:

$ ls /dev
crw------- 0 Mon Apr 02 17:52:27 2007 console
crw-r--r-- 0 Mon Apr 02 17:52:27 2007 null
crw-r--r-- 0 Mon Apr 02 17:52:27 2007 zero


Also, I added a printk in the jffs2_add_fd_to_list() routine in
fs/jffs2/nodelist.c to print out the dirent adds and it shows console
being added as follows:

..
add dirent "var", ino #14
add dirent "usr", ino #13
add dirent "tmp", ino #12
add dirent "sys", ino #11
add dirent "sbin", ino #10
add dirent "proc", ino #9
add dirent "mnt", ino #8
add dirent "linuxrc", ino #7
add dirent "lib", ino #6
add dirent "home", ino #5
add dirent "etc", ino #4
add dirent "dev", ino #3
add dirent "bin", ino #2


VFS: Mounted root (jffs2 filesystem).

Freeing init memory: 76K
add dirent "zero", ino #70
add dirent "null", ino #69
add dirent "console", ino #68
Warning: unable to open an initial console.
add dirent "watchdog", ino #262
add dirent "udevstart", ino #261
add dirent "udevsend", ino #260
..

Any other ideas?
Thanks,
Tom

young dave

unread,
Apr 2, 2007, 9:34:39 PM4/2/07
to Tom Strader
Hi,
Check if your U-boot enabled the udev, try diable the udev, then using
mknod to create the /dev/console.

Regards
dave


2007/4/2, Tom Strader <tom.s...@xilinx.com>:


> I checked /dev/ with U-boot and it shows the existence of /dev/console.
>
> From U-boot prompt:
>
> $ ls /dev
> crw------- 0 Mon Apr 02 17:52:27 2007 console
> crw-r--r-- 0 Mon Apr 02 17:52:27 2007 null
> crw-r--r-- 0 Mon Apr 02 17:52:27 2007 zero
>
>
> Also, I added a printk in the jffs2_add_fd_to_list() routine in
> fs/jffs2/nodelist.c to print out the dirent adds and it shows console
> being added as follows:
>

> ...


> add dirent "var", ino #14
> add dirent "usr", ino #13
> add dirent "tmp", ino #12
> add dirent "sys", ino #11
> add dirent "sbin", ino #10
> add dirent "proc", ino #9
> add dirent "mnt", ino #8
> add dirent "linuxrc", ino #7
> add dirent "lib", ino #6
> add dirent "home", ino #5
> add dirent "etc", ino #4
> add dirent "dev", ino #3
> add dirent "bin", ino #2
> VFS: Mounted root (jffs2 filesystem).
> Freeing init memory: 76K
> add dirent "zero", ino #70
> add dirent "null", ino #69
> add dirent "console", ino #68
> Warning: unable to open an initial console.
> add dirent "watchdog", ino #262
> add dirent "udevstart", ino #261
> add dirent "udevsend", ino #260

> ...

Tom Strader

unread,
Apr 3, 2007, 2:36:00 PM4/3/07
to young dave
Hi Dave,
I'm not sure if I follow. How do I use mknod with no console to use it
from? Can this be done in the init scripts or from u-boot? Still
learning so any help would be appreciated.

I was able to trace the console opening to __dentry_open() in fs/open.c
It does open(inode, f) but returns error -6 if this is any help. I will
try to trace it further to see what is wrong.

Thanks,
Tom

young dave

unread,
Apr 3, 2007, 9:54:08 PM4/3/07
to Tom Strader
Hi;
The errno "-6" is defined as:
#define ENXIO 6 /* No such device or address*/

You can try to retrieve the rootfs and add the necessary device file
to it, then reflash the rootfs.

I'm Sorry, I have no embedded environment to test.

Regards
dave


2007/4/3, Tom Strader <tom.s...@xilinx.com>:

Tom Strader

unread,
Apr 5, 2007, 11:58:38 AM4/5/07
to young dave
The problem appears to be that the uart driver is not assigning the
port. In uart_get() located in drivers/serial/serial_core.c the code
tries to access state->port but it does not appear to exist. Where is
the port supposed to get added/setup? Should this happen in the driver
init or does the kernel add the ports to the driver after init?

Uart_get knows the correct driver name drv->driver_name = "PXA serial"
and drv->dev_name = "ttyS", but the drv->state->port does not exist.
Where should the port be added? The port info exists in
drivers/serial/pxa.c but I cant find where its initialized. Any help
would be great.
Thanks,
Tom

-----Original Message-----
From: young dave [mailto:hidave....@gmail.com]
Sent: Tuesday, April 03, 2007 6:54 PM
To: Tom Strader
Cc: linux-...@vger.kernel.org
Subject: Re: Warning: unable to open an initial console.

Hi;
The errno "-6" is defined as:
#define ENXIO 6 /* No such device or address*/

You can try to retrieve the rootfs and add the necessary device file
to it, then reflash the rootfs.

I'm Sorry, I have no embedded environment to test.

Regards
dave


0 new messages