android boot up error

317 views
Skip to first unread message

James Li

unread,
Sep 23, 2011, 12:51:13 PM9/23/11
to android-porting
Hello Friends,

I am new to Android and I am encountering a problem that I couldn't
figure it out.

I am porting Android to one of our devices.

The info is the following:
CPU: PXA320 (runs at 800MHz)
RAM: 128MB
NAND: 1Gb

Kernel is Linux-2.6.32 with Android patches (I got from
Android.git.kernel.org before it was hacked).
I have tried to build Linux rootfs with YAFFS2 type and everything
looked fine.

Then I check out Android-2.1-r2 source code and built as generic
device.
The build succeed without any error.
I created YAFFS2 rootfs and flushed it to the NAND flash.

The Android rootfs booted but and it crashed during the booting
precess and I got kernel panic.

I dump the log using logcat and it showed that Java threw an exception
when getting resources.
I have no idea why this happened and how to fix it.

Please give me some hints.

The following is the log from logcat:

load kernel - flash_ofs = 60000

calc_obm_ver - cpuid = 69056826


Starting kernel at 0x80800000...


Uncompressing
Linux..................................................................................................................................
done, booting the kernel.
Linux version 2.6.32.9 (admin-vm@admin-vm) (gcc version 4.3.3 (GCC) )
#58 PREEMPT Thu Sep 22 12:09:12 PDT 2011
CPU: XScale-V3 based processor [69056826] revision 6 (ARMv5TE),
cr=0000397f
CPU: VIVT data cache, VIVT instruction cache
Machine: PXA3xx Platform Development Kit (aka Zylonite)
Memory policy: ECC disabled, Data cache writeback
RO Mode clock: 60.00MHz (inactive)
Run Mode clock: 403.00MHz (*31)
Turbo Mode clock: 806.00MHz (*2, active)
HSIO bus clock: 104.00MHz
Built 1 zonelists in Zone order, mobility grouping on. Total pages:
32512
Kernel command line: mem=128M console=ttyS1,115200 root=/dev/mtdblock2
rw rootfstype=yaffs2 init=/init rootdelay=1
PID hash table entries: 512 (order: -1, 2048 bytes)
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 128MB = 128MB total
Memory: 125184KB available (3664K code, 713K data, 104K init, 0K
highmem)
Hierarchical RCU implementation.
NR_IRQS:320
Console: colour dummy device 80x30
Calibrating delay loop... 804.45 BogoMIPS (lpj=4022272)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: failed, enabling work-around
XScale3 L2 cache enabled.
NET: Registered protocol family 16
++zylonite_init_lcd, FB

bio: create slab <bio-0> at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Switching to clocksource oscr0
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
NET: Registered protocol family 1
NetWinder Floating Point Emulator V0.97 (double precision)
ashmem: initialized
JFFS2 version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc.
yaffs Sep 22 2011 12:05:05 Installing.
msgmni has been set to 244
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
pxafb.c pxa2xx-fb pxa2xx-fb: pxafb_probe
pxafb.c pxa2xx-fb pxa2xx-fb: got a 800x480x16 LCD
Console: switching to colour frame buffer device 100x30
pxafb.c pxafb: Enabling LCD controller
pxafb.c fdadr0 0x87959c60
pxafb.c fdadr1 0x00000000
pxafb.c reg_lccr0 0x003008f8
pxafb.c reg_lccr1 0x50501f1f
pxafb.c reg_lccr2 0x020701df
pxafb.c reg_lccr3 0x04700002
pxafb.c pxafb: LCD power on
pxafb.c pxafb: backlight on
pxa2xx-uart.0: ttyS0 at MMIO 0x40100000 (irq = 22) is a FFUART
pxa2xx-uart.1: ttyS1 at MMIO 0x40200000 (irq = 21) is a BTUART
console [ttyS1] enabled
pxa2xx-uart.2: ttyS2 at MMIO 0x40700000 (irq = 20) is a STUART
brd: module loaded
loop: module loaded
Android kernel panic handler initialized (bind=kpanic)
pxafb.c ++C_REENABLE

pxafb.c pxafb: LCD power off
pxafb.c pxafb: Enabling LCD controller
pxafb.c fdadr0 0x87959c60
pxafb.c fdadr1 0x00000000
pxafb.c reg_lccr0 0x003008f8
pxafb.c reg_lccr1 0x50501f1f
pxafb.c reg_lccr2 0x020701df
pxafb.c reg_lccr3 0x04700002
pxafb.c pxafb: LCD power on
NAND device: Manufacturer ID: 0x20, Chip ID: 0xa1 (ST Micro NAND
128MiB 1,8V 8-bit)
Scanning device for bad blocks
Bad eraseblock 283 at 0x000002360000
Creating 5 MTD partitions on "NAND 128MiB 1,8V 8-bit":
0x000000000000-0x000000060000 : "Bootloader"
0x000000060000-0x000000260000 : "Kernel"
0x000000260000-0x000004d60000 : "system"
0x000004d60000-0x000005d60000 : "userdata"
0x000005d60000-0x000006d60000 : "cache"
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
pxa27x-ohci pxa27x-ohci: PXA27x OHCI
pxa27x-ohci pxa27x-ohci: new USB bus registered, assigned bus number 1
pxa27x-ohci pxa27x-ohci: irq 3, io mem 0x4c000000
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 3 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
pxa27x_udc: version 2008-04-18
android init
f_adb init
android_register_function adb
f_mass_storage init
android_register_function usb_mass_storage
using rtc device, pxa-rtc, for alarms
pxa-rtc pxa-rtc: rtc core: registered pxa-rtc as rtc0
Linux video capture interface: v2.00
usbcore: registered new interface driver usbhid
usbhid: v2.6:USB HID core driver
logger: created 64K log 'log_main'
logger: created 256K log 'log_events'
logger: created 64K log 'log_radio'
logger: created 64K log 'log_system'
Advanced Linux Sound Architecture Driver Version 1.0.21.
No device for DAI pxa2xx-ssp1
No device for DAI pxa2xx-ssp2
No device for DAI pxa2xx-ssp3
No device for DAI pxa2xx-ssp4
WM9713/WM9714 SoC Audio Codec 0.15
asoc: AC97 HiFi <-> pxa2xx-ac97 mapping ok
asoc: AC97 Aux <-> pxa2xx-ac97-aux mapping ok
asoc: WM9713 Voice <-> pxa2xx-ssp3 mapping ok
wm97xx-ts 0-0:WM9713: detected a wm9713 codec
++++ wm9713_phy_init

wm97xx-ts 0-0:WM9713: setting pen detect pull-up to 4266 Ohms
wm97xx-ts 0-0:WM9713: setting 5-wire touchscreen mode.
---- wm9713_phy_init

input: wm97xx touchscreen as /devices/platform/soc-audio/0-0:WM9713/
input/input0
ALSA device list:
#0: Zylonite (WM9713)
TCP cubic registered
NET: Registered protocol family 17
XScale iWMMXt coprocessor detected.
pxa-rtc pxa-rtc: setting system clock to 2000-01-01 00:00:12 UTC
(946684812)
Waiting 1sec before mounting root device...
yaffs: dev is 32505858 name is "mtdblock2"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.2, "mtdblock2"
block 265 is bad
yaffs_read_super: isCheckpointed 0
VFS: Mounted root (yaffs2 filesystem) on device 31:2.
Freeing init memory: 104K
Warning: unable to open an initial console.
init: cannot open '/initlogo.rle'
pxafb.c ++C_REENABLE

pxafb.c pxafb: LCD power off
pxafb.c pxafb: Enabling LCD controller
pxafb.c fdadr0 0x87959c60
pxafb.c fdadr1 0x00000000
pxafb.c reg_lccr0 0x003008f8
pxafb.c reg_lccr1 0x50501f1f
pxafb.c reg_lccr2 0x020701df
pxafb.c reg_lccr3 0x04700002
pxafb.c pxafb: LCD power on
save exit: isCheckpointed 1
yaffs: dev is 32505859 name is "mtdblock3"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.3, "mtdblock3"
yaffs_read_super: isCheckpointed 0
yaffs: dev is 32505860 name is "mtdblock4"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.4, "mtdblock4"
yaffs_read_super: isCheckpointed 0
init: cannot find '/system/etc/install-recovery.sh', disabling
'flash_recovery'
sh: can't access tty; job control turned off
# logcat
I/DEBUG ( 31): debuggerd: Sep 22 2011 19:16:14
I/vold ( 30): Android Volume Daemon version 2.0
D/vold ( 30): Bootstrapping complete
D/AndroidRuntime( 32):
D/AndroidRuntime( 32): >>>>>>>>>>>>>> AndroidRuntime START
<<<<<<<<<<<<<<
D/AndroidRuntime( 32): CheckJNI is ON
I/ ( 33): ServiceManager: 0xad08
W/AudioHardwareInterface( 33): Using stubbed audio hardware. No
sound will be produced.
D/AudioHardwareInterface( 33): setMode(NORMAL)
I/CameraService( 33): CameraService started: pid=33
I/AudioFlinger( 33): AudioFlinger's thread 0xb370 ready to run
D/AndroidRuntime( 32): --- registering native functions ---
I/SamplingProfilerIntegration( 32): Profiler is disabled.
I/Zygote ( 32): Preloading classes...
D/dalvikvm( 32): GC freed 793 objects / 50568 bytes in 3ms
D/dalvikvm( 32): GC freed 251 objects / 16168 bytes in 3ms
D/dalvikvm( 32): GC freed 295 objects / 18768 bytes in 4ms
D/dalvikvm( 32): GC freed 214 objects / 13712 bytes in 5ms
D/dalvikvm( 32): GC freed 413 objects / 26432 bytes in 5ms
D/skia ( 32): ------ build_power_table 1.4
D/skia ( 32): ------ build_power_table 0.714286
D/dalvikvm( 32): GC freed 420 objects / 28752 bytes in 6ms
D/dalvikvm( 32): Trying to load lib /system/lib/libmedia_jni.so 0x0
D/dalvikvm( 32): Added shared lib /system/lib/libmedia_jni.so 0x0
D/dalvikvm( 32): Trying to load lib /system/lib/libexif.so 0x0
D/dalvikvm( 32): Added shared lib /system/lib/libexif.so 0x0
D/dalvikvm( 32): GC freed 2314 objects / 121408 bytes in 8ms
D/dalvikvm( 32): Trying to load lib /system/lib/libmedia_jni.so 0x0
D/dalvikvm( 32): Shared lib '/system/lib/libmedia_jni.so' already
loaded in same CL 0x0
D/dalvikvm( 32): Trying to load lib /system/lib/libmedia_jni.so 0x0
D/dalvikvm( 32): Shared lib '/system/lib/libmedia_jni.so' already
loaded in same CL 0x0
D/dalvikvm( 32): Trying to load lib /system/lib/libmedia_jni.so 0x0
D/dalvikvm( 32): Shared lib '/system/lib/libmedia_jni.so' already
loaded in same CL 0x0
D/dalvikvm( 32): Trying to load lib /system/lib/libmedia_jni.so 0x0
D/dalvikvm( 32): Shared lib '/system/lib/libmedia_jni.so' already
loaded in same CL 0x0
D/dalvikvm( 32): GC freed 3790 objects / 197008 bytes in 14ms
D/dalvikvm( 32): GC freed 461 objects / 26352 bytes in 12ms
D/dalvikvm( 32): GC freed 294 objects / 17088 bytes in 13ms
D/dalvikvm( 32): GC freed 204 objects / 11464 bytes in 14ms
D/dalvikvm( 32): GC freed 178 objects / 9560 bytes in 15ms
D/dalvikvm( 32): Trying to load lib /system/lib/libsrec_jni.so 0x0
D/dalvikvm( 32): Added shared lib /system/lib/libsrec_jni.so 0x0
D/dalvikvm( 32): Trying to load lib /system/lib/libsrec_jni.so 0x0
D/dalvikvm( 32): Shared lib '/system/lib/libsrec_jni.so' already
loaded in same CL 0x0
W/zipro ( 32): Missed a central dir sig (at 0)
D/asset ( 32): failed to open Zip archive '/system/framework/
framework-res.apk'
W/asset ( 32): Unable to find resources file resources.arsc
W/dalvikvm( 32): Exception Landroid/content/res/Resources
$NotFoundException; thrown during Landroid/text/AutoText;.<clinit>
E/Zygote ( 32): Error preloading android.text.AutoText.
E/Zygote ( 32): java.lang.ExceptionInInitializerError
E/Zygote ( 32): at java.lang.Class.classForName(Native Method)
E/Zygote ( 32): at java.lang.Class.forName(Class.java:237)
E/Zygote ( 32): at java.lang.Class.forName(Class.java:183)
E/Zygote ( 32): at
com.android.internal.os.ZygoteInit.preloadClasses(ZygoteInit.java:295)
EKernel panic - not syncing: Attempted to kill init!
/Zygote ( 32): at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:582)
E/Zygote ( 32): at dalvik.system.NativeStart.main(Native Method)
E/Zygote ( 32): Caused by: android.content.res.Resources
$NotFoundException: Resource ID #0x10b0001
E/Zygote ( 32): at
android.content.res.Resources.getValue(Resources.java:891)
E/Zygote ( 32): at
android.content.res.Resources.loadXmlResourceParser(Resources.java:
1865)
E/Zygote ( 32): at
android.content.res.Resources.getXml(Resources.java:779)
E/Zygote ( 32): at android.text.AutoText.init(AutoText.java:160)
E/Zygote ( 32): at android.text.AutoText.<init>(AutoText.java:76)
E/Zygote ( 32): at android.text.AutoText.<clinit>(AutoText.java:
56)
E/Zygote ( 32): ... 6 more
D/AndroidRuntime( 32): Shutting down VM
W/dalvikvm( 32): threadid=3: thread exiting with uncaught exception
(group=0x4001b170)
D/dalvikvm( 32): DestroyJavaVM waiting for non-daemon threads to
exit
D/dalvikvm( 32): DestroyJavaVM shutting VM down
D/dalvikvm( 32): VM cleaning up
D/dalvikvm( 32): LinearAlloc 0x0 used 1409724 of 5242880 (26%)
D/skia ( 32): purging 6K from font cache [1 entries]

Thanks a lot,
James

Tim Bird

unread,
Sep 23, 2011, 5:28:36 PM9/23/11
to android...@googlegroups.com
On 09/23/2011 09:51 AM, James Li wrote:
> Hello Friends,
>
> I am new to Android and I am encountering a problem that I couldn't
> figure it out.
>
> I am porting Android to one of our devices.
>
> The info is the following:
> CPU: PXA320 (runs at 800MHz)
> RAM: 128MB
> NAND: 1Gb
>
> Kernel is Linux-2.6.32 with Android patches (I got from
> Android.git.kernel.org before it was hacked).
> I have tried to build Linux rootfs with YAFFS2 type and everything
> looked fine.
>
> Then I check out Android-2.1-r2 source code and built as generic
> device.
> The build succeed without any error.
> I created YAFFS2 rootfs and flushed it to the NAND flash.
>
> The Android rootfs booted but and it crashed during the booting
> precess and I got kernel panic.

I don't see any Oops output for the panic. That might be helpful.
However, the message "Kernel panic - not syncing: Attempted to kill init!"
is fairly common when something has gone wrong and init exits.
The first program run ('init' in the Android case), should never exit.
Linux presumes the user-space has become corrupted in this case
and panics.

>
> I dump the log using logcat and it showed that Java threw an exception
> when getting resources.
> I have no idea why this happened and how to fix it.
>
> Please give me some hints.

See my comment inline below.


-----------------


> W/zipro ( 32): Missed a central dir sig (at 0)
> D/asset ( 32): failed to open Zip archive '/system/framework/
> framework-res.apk'
> W/asset ( 32): Unable to find resources file resources.arsc
> W/dalvikvm( 32): Exception Landroid/content/res/Resources
> $NotFoundException; thrown during Landroid/text/AutoText;.<clinit>
> E/Zygote ( 32): Error preloading android.text.AutoText.
> E/Zygote ( 32): java.lang.ExceptionInInitializerError
> E/Zygote ( 32): at java.lang.Class.classForName(Native Method)
> E/Zygote ( 32): at java.lang.Class.forName(Class.java:237)
> E/Zygote ( 32): at java.lang.Class.forName(Class.java:183)
> E/Zygote ( 32): at
> com.android.internal.os.ZygoteInit.preloadClasses(ZygoteInit.java:295)

----------------

The above lines seem to be the source of the problem.
In ./frameworks/base/libs/utils/ZipFileRO.cpp there is a check
when reading a zip archive to validate the contents of archive
by scanning the archive index. (There are signatures in the archive
and apparently one is missing - in this case, at offset 0, so, the
first one.)

By the way, to find error messages, you can Google "Missed a central dir sig"
or do something like:
find . -name "*.[ch]*" | xargs grep "Missed a central dir sig"
at the root of the source tree.
(this matches .c, .cpp and .h files, you can use a different regex
for java files)

This check appears to have failed for the file /system/framework/framework-res.apk.
You should verify that this file is not corrupted in the file system.

If it's a filesystem corruption bug, you may have a tough time finding it.
However, it appears lots of other things are loading OK from the filesystem
(or you wouldn't have gotten this far).

Good luck!

> --
> unsubscribe: android-porti...@googlegroups.com
> website: http://groups.google.com/group/android-porting
>


--
=============================
Tim Bird
Architecture Group Chair, CE Workgroup of the Linux Foundation
Senior Staff Engineer, Sony Network Entertainment
=============================

Reply all
Reply to author
Forward
0 new messages