主题 : 移植Android2.1(附获取freerunner 2.1 源码的方法) 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 7025
精华: 0
发帖: 29
金钱: 255 两
威望: 114 点
贡献值: 0 点
综合积分: 58 分
注册时间: 2009-06-29
最后登录: 2012-05-03
楼主  发表于: 2010-04-09 22:08

 移植Android2.1(附获取freerunner 2.1 源码的方法)

管理提醒: 本帖被 kasim 执行置顶操作(2010-07-09)
一、获取freerunner2.1源码
目前freerunner的主线已经2.2(froyo)版本,当我们下载源码是指定branch为eclair时,发现已经编译不过了。究其原因是google官方已经将eclair部分代码移到eclair分支,而freerunner的eclair部分的代码依然留在master分支,导致两部分代码不一致而编译不过。好在git是一个强大的版本库管理软件,我们还是有办法拿到一个完整的freerunner2.1源码的。具体方法如下:
1)初始化版本库,使用默认的master分支
      repo init -u git://gitorious.org/android-on-freerunner/freerunner_platform_manifest.git
2)修改.repo/manifest.xml文件,将default的revision改为eclair,将freerunner部分项目的revision改为master。具体见附件
3)同步源码 ,执行repo sync,所需时间视网络环境而定
4)同步完源码后,还不能直接编译,因为目前freerunner的master分支目前已经是2.2的代码,我们需要利用git的回溯功能来时光倒流一下。步骤如下:
      1.将附件的goback.py拷贝到源码的根目录下
      2.执行 ./goback.py "2010-04-11 00:00"
5)经过以上的步骤后,我们已经可以得到一个完整的Android2.1源码了,但这时候的源码还没有解决mp3播放的问题,我们还需要将opencore的源码checkout到较新的版本
      进入 external/opencore,然后执行git checkout  ea1f1c41
6)编译源码
  manifest.xml.zip (3 K) 下载次数:453    goback.py.zip (1 K) 下载次数:369

二、移植Android2.1到mini2440
最近有点时间,尝试了移植Android on Freerunner开源项目所提供的Android2.1,还是使用之前的2.6.27内核,在上面做了一点少少的修改。
到目前为止,触摸屏已经校正,网络正常,声卡驱动用原来的OSS驱动,拨号有声音,但不能播放音乐,估计是libmediaplayer库的问题。
截图:


  
下面简单介绍一下移植的过程:
一、文件系统:
1.下载源文件:
建立源文件目录 mkdir ~/android_src
初始化repo  cd ~/android_src & repo init -u git://gitorious.org/android-on-freerunner/freerunner_platform_manifest.git (主线是2.1版本)
同步源文件 repo sync
整个过程会比较慢,可以同时开几个窗口来分别同步一些较大的project,例如 repo sync kernel,repo sync prebuilt,repo external/opencore,这样会快很多。
2.编译文件系统:
make
大概需要3─4个小时,这个跟机器的性能有关。
3.修改文件系统以适应Mini2440。
1)添加tslib触摸屏校正工具已经tslib所依赖的libc库和c++库,android系统本身使用的是Bionic c库。
2)添加buzybox,/myDev文件夹,/system/etc/shine文件夹
3)创建linuxrc启动脚本,/system/etc/myInit.rc初始化脚本,/system/etc/net.conf网络配置文件。
4)修改init.rc,去掉除mount tmpfs tmpfs /sqlite_stmt_journals size=4m之外所有的mount命令,并添加以下语句:
symlink /dev/snd/dsp /dev/eac 创建声卡的软连接
service console /bin/busybox sh //让系统使用buzybox的shell控制台
    console
service myInit /bin/busybox sh /system/etc/shine/myInit.rc //运行myInit.rc脚本,进行网络初始化等
    oneshot
5)将无线网卡的库文件复制的/system/etc/firmware下

二、内核
在原来2.6.27内核的基础下,做了以下的改动:
1.添加kasim大侠所提供的power supply class驱动,但是不能将该设备添加到smdk2440_devices[] __initdata下,否则不能用linuxrc启动脚本来启动系统。
2.配置内核是要选上Power management options中的Wake lock,Wake lock stats和Userspace wake locks,否则触摸屏会没有反应。
3.使SD卡能够被系统识别,必须要选上General setup-->Create deprecated sysfs files,并修改/system/etc/vold.conf文件,将media_path设置为/devices/platform/s3c2440-sdi/mmc_host/mmc0/
4.修改LCD驱动(drivers/video/s3c2410fb.c)以支持双重缓冲,android的显示系统需要双缓冲的支持。
5.修正触摸屏驱动中坐标方向错误的问题。

三、精简系统
64M内存对与Android系统来说实在是太少了,加载所有系统程序后,再打开其他程序会变得很慢。
为此可以删掉一些暂时用不到的系统软件如Phone,AlarmClock等(位于/system/app下),甚至可以只保留以下六个较为重要的系统程序:
LatinIME.apk,Launcher.apk,PackageInstaller.apk,Settings.apk,SettingsProvider.apk,UserDictionaryProvider.apk
然后再安装自己的软件,经过精简后,系统运行的效率会有很大的提高,个人感觉要比1.5版本系统更为流畅。



四、其他问题
系统休眠后不能唤醒,目前的解决办法是将系统设置成保持唤醒状态:
设置-->应用程序-->开发-->保持唤醒状态



在精简后的系统上安装最新的Android版QQ,运行很流畅,Android版QQ的UI也做得非常漂亮的说,下面是运行截图:



希望这些内容对大家用所帮助,也欢迎大家一起来分享自己的移植经验以及成果!

附件:
根文件系统:下载
内核镜像:下载
内核源码:下载

ps:
安装文件系统之前先把/system/etc/shine/pointercal删掉,否则触摸屏可能会不准。如果想重新校正触摸屏,也可以先删掉pointercal文件再重启系统。
为了能正确配置网络,还需要创建ifconfig和route的软连接,具体如下:
rm /system/bin/ifconfig
rm /system/bin/route
cd /bin
ln -s busybox ifconfig
ln -s busybox route
[ 此帖被shinelk在2010-11-15 11:43重新编辑 ]
级别: 新手上路
UID: 11160
精华: 0
发帖: 25
金钱: 145 两
威望: 29 点
贡献值: 0 点
综合积分: 50 分
注册时间: 2009-11-29
最后登录: 2012-07-26
1楼  发表于: 2010-10-21 19:26
版主,你好。最近在编译android的源码总是不成功。然后按照楼主的方法下载了源码
repo init -u git://gitorious.org/android-on-freerunner/freerunner_platform_manifest.git
进去直接make就发生错误了。问题如下:
bionic/libc/arch-arm/bionic/memcmp.S: Assembler messages:
bionic/libc/arch-arm/bionic/memcmp.S:48: Error: missing ')'
bionic/libc/arch-arm/bionic/memcmp.S:48: Error: garbage following instruction -- `pld (r0,#0)'
bionic/libc/arch-arm/bionic/memcmp.S:49: Error: missing ')'
bionic/libc/arch-arm/bionic/memcmp.S:49: Error: garbage following instruction -- `pld (r1,#0)'
bionic/libc/arch-arm/bionic/memcmp.S:61: Error: missing ')'
bionic/libc/arch-arm/bionic/memcmp.S:61: Error: garbage following instruction -- `pld (r0,#32)'
bionic/libc/arch-arm/bionic/memcmp.S:62: Error: missing ')'
bionic/libc/arch-arm/bionic/memcmp.S:62: Error: garbage following instruction -- `pld (r1,#32)'
bionic/libc/arch-arm/bionic/memcmp.S:112: Error: missing ')'
bionic/libc/arch-arm/bionic/memcmp.S:112: Error: garbage following instruction -- `pld (r4,#64)'
bionic/libc/arch-arm/bionic/memcmp.S:113: Error: missing ')'
bionic/libc/arch-arm/bionic/memcmp.S:113: Error: garbage following instruction -- `pld (r1,#64)'
bionic/libc/arch-arm/bionic/memcmp.S:201: Error: missing ')'
bionic/libc/arch-arm/bionic/memcmp.S:201: Error: garbage following instruction -- `pld (r1,#64)'
bionic/libc/arch-arm/bionic/memcmp.S:202: Error: missing ')'
bionic/libc/arch-arm/bionic/memcmp.S:202: Error: garbage following instruction -- `pld (r4,#64)'
make: *** [out/target/product/generic/obj/STATIC_LIBRARIES/libc_common_intermediates/arch-

arm/bionic/memcmp.o] 错误
另外,想请问一下这个是要用java6还是java5编译的?两个版本都试过了,都是同样问题。。在线等待回复,实在没办法了,弄了很多天都是移植不成功。
级别: 新手上路
UID: 11160
精华: 0
发帖: 25
金钱: 145 两
威望: 29 点
贡献值: 0 点
综合积分: 50 分
注册时间: 2009-11-29
最后登录: 2012-07-26
2楼  发表于: 2010-10-22 13:47

 回 107楼(kasim) 的帖子

版主,你好。memcmp.S文件内容如下
#include <machine/cpu-features.h>

    .text

    .global memcmp
    .type memcmp, %function
    .align 4

/*
* Optimized memcmp() for ARM9.
* This would not be optimal on XScale or ARM11, where more prefetching
* and use of PLD will be needed.
* The 2 major optimzations here are
* (1) The main loop compares 16 bytes at a time
* (2) The loads are scheduled in a way they won't stall
*/

memcmp:
        .fnstart
        PLD         (r0, #0)
        PLD         (r1, #0)

        /* take of the case where length is 0 or the buffers are the same */
        cmp         r0, r1
        cmpne       r2, #0
        moveq       r0, #0
        bxeq        lr

        .save {r4, lr}
        /* save registers */
        stmfd       sp!, {r4, lr}
        
        PLD         (r0, #32)
        PLD         (r1, #32)

        /* since r0 hold the result, move the first source
         * pointer somewhere else
         */
        
         mov        r4, r0
        
         /* make sure we have at least 8+4 bytes, this simplify things below
          * and avoid some overhead for small blocks
          */
         cmp        r2, #(8+4)
         bmi        8f
        
        /* align first pointer to word boundary
         * offset = -src & 3
         */
        rsb         r3, r4, #0
        ands        r3, r3, #3
        beq         0f

        /* align first pointer  */
        sub         r2, r2, r3
1:      ldrb        r0, [r4], #1
        ldrb        ip, [r1], #1
        subs        r0, r0, ip
        bne         9f
        subs        r3, r3, #1
        bne         1b


0:      /* here the first pointer is aligned, and we have at least 4 bytes
         * to process.
         */

        /* see if the pointers are congruent */
        eor         r0, r4, r1
        ands        r0, r0, #3
        bne         5f

        /* congruent case, 32 bytes per iteration
         * We need to make sure there are at least 32+4 bytes left
         * because we effectively read ahead one word, and we could
         * read past the buffer (and segfault) if we're not careful.
         */

        ldr         ip, [r1]
        subs        r2, r2, #(32 + 4)
        bmi         1f
        
0:      PLD         (r4, #64)
        PLD         (r1, #64)
        ldr         r0, [r4], #4
        ldr         lr, [r1, #4]!
        eors        r0, r0, ip
        ldreq       r0, [r4], #4
        ldreq       ip, [r1, #4]!
        eoreqs      r0, r0, lr
        ldreq       r0, [r4], #4
        ldreq       lr, [r1, #4]!
        eoreqs      r0, r0, ip
        ldreq       r0, [r4], #4
        ldreq       ip, [r1, #4]!
        eoreqs      r0, r0, lr
        ldreq       r0, [r4], #4
        ldreq       lr, [r1, #4]!
        eoreqs      r0, r0, ip
        ldreq       r0, [r4], #4
        ldreq       ip, [r1, #4]!
        eoreqs      r0, r0, lr
        ldreq       r0, [r4], #4
        ldreq       lr, [r1, #4]!
        eoreqs      r0, r0, ip
        ldreq       r0, [r4], #4
        ldreq       ip, [r1, #4]!
        eoreqs      r0, r0, lr
        bne         2f        
        subs        r2, r2, #32
        bhs         0b

        /* do we have at least 4 bytes left? */
1:      adds        r2, r2, #(32 - 4 + 4)
        bmi         4f
        
        /* finish off 4 bytes at a time */
3:      ldr         r0, [r4], #4
        ldr         ip, [r1], #4
        eors        r0, r0, ip
        bne         2f
        subs        r2, r2, #4
        bhs         3b

        /* are we done? */
4:      adds        r2, r2, #4
        moveq       r0, #0
        beq         9f

        /* finish off the remaining bytes */
        b           8f

2:      /* the last 4 bytes are different, restart them */
        sub         r4, r4, #4
        sub         r1, r1, #4
        mov         r2, #4

        /* process the last few bytes */
8:      ldrb        r0, [r4], #1
        ldrb        ip, [r1], #1
        // stall
        subs        r0, r0, ip
        bne         9f
        subs        r2, r2, #1
        bne         8b

9:      /* restore registers and return */
        ldmfd       sp!, {r4, lr}
        bx          lr
        .fnend





5:      /*************** non-congruent case ***************/
        and         r0, r1, #3      
        cmp         r0, #2
        bne         4f

        /* here, offset is 2 (16-bits aligned, special cased) */
        
        /* make sure we have at least 16 bytes to process */
        subs        r2, r2, #16
        addmi       r2, r2, #16
        bmi         8b

        /* align the unaligned pointer */
        bic         r1, r1, #3
        ldr         lr, [r1], #4

6:      PLD         (r1, #64)
        PLD         (r4, #64)
        mov         ip, lr, lsr #16
        ldr         lr, [r1], #4
        ldr         r0, [r4], #4
        orr         ip, ip, lr, lsl #16
        eors        r0, r0, ip
        moveq       ip, lr, lsr #16
        ldreq       lr, [r1], #4
        ldreq       r0, [r4], #4
        orreq       ip, ip, lr, lsl #16
        eoreqs      r0, r0, ip
        moveq       ip, lr, lsr #16
        ldreq       lr, [r1], #4
        ldreq       r0, [r4], #4
        orreq       ip, ip, lr, lsl #16
        eoreqs      r0, r0, ip
        moveq       ip, lr, lsr #16
        ldreq       lr, [r1], #4
        ldreq       r0, [r4], #4
        orreq       ip, ip, lr, lsl #16
        eoreqs      r0, r0, ip
        bne         7f
        subs        r2, r2, #16
        bhs         6b
        sub         r1, r1, #2
        /* are we done? */
        adds        r2, r2, #16
        moveq       r0, #0
        beq         9b
        /* finish off the remaining bytes */
        b           8b

7:      /* fix up the 2 pointers and fallthrough... */
        sub         r1, r1, #(4+2)
        sub         r4, r4, #4
        mov         r2, #4
        b           8b


4:      /*************** offset is 1 or 3 (less optimized) ***************/

        stmfd        sp!, {r5, r6, r7}

        // r5 = rhs
        // r6 = lhs
        // r7 = scratch

        mov         r5, r0, lsl #3        /* r5 = right shift */
        rsb         r6, r5, #32         /* r6 = left shift */

        /* align the unaligned pointer */
        bic         r1, r1, #3
        ldr         r7, [r1], #4
        sub         r2, r2, #8

6:      mov         ip, r7, lsr r5
        ldr         r7, [r1], #4
        ldr         r0, [r4], #4
        orr         ip, ip, r7, lsl r6
        eors        r0, r0, ip
        moveq       ip, r7, lsr r5
        ldreq       r7, [r1], #4
        ldreq       r0, [r4], #4
        orreq       ip, ip, r7, lsl r6
        eoreqs      r0, r0, ip
        bne         7f
        subs        r2, r2, #8
        bhs         6b

        sub         r1, r1, r6, lsr #3
        ldmfd       sp!, {r5, r6, r7}

        /* are we done? */
        adds        r2, r2, #8
        moveq       r0, #0
        beq         9b

        /* finish off the remaining bytes */
        b           8b

7:      /* fix up the 2 pointers and fallthrough... */
        sub         r1, r1, #4
        sub         r1, r1, r6, lsr #3
        sub         r4, r4, #4
        mov         r2, #4
        ldmfd        sp!, {r5, r6, r7}
        b           8b
不知道是不是我缺乏什么库文件呢?请版主赐教。。感激不尽。。
级别: 新手上路
UID: 11160
精华: 0
发帖: 25
金钱: 145 两
威望: 29 点
贡献值: 0 点
综合积分: 50 分
注册时间: 2009-11-29
最后登录: 2012-07-26
3楼  发表于: 2010-10-23 21:38
没人能救救我吗!?
级别: 新手上路
UID: 11160
精华: 0
发帖: 25
金钱: 145 两
威望: 29 点
贡献值: 0 点
综合积分: 50 分
注册时间: 2009-11-29
最后登录: 2012-07-26
4楼  发表于: 2010-11-04 17:47
你好,版主。移植android可以在板子上跑了。可是按按键的时候就显示以下信息。我在其他帖子说过电源问题,可是我修改了源码,在屏幕上可以看见电源充满的。就卡在一个对话框上。内容如下
(No service)
12:01 AM
01-01-1970
Charging(100%)
按按键就提示以下锁屏信息,是不是哪里出问题了?请帮帮忙。。
D/KeyguardViewMediator( 1522): wakeWhenReadyLocked(4)                          
D/KeyguardViewMediator( 1522): handleWakeWhenReady(4)                          
D/KeyguardViewMediator( 1522): wakeWhenReadyLocked(4)                          
D/KeyguardViewMediator( 1522): pokeWakelock(5000)                              
D/KeyguardViewMediator( 1522): handleWakeWhenReady(4)                          
D/KeyguardViewMediator( 1522): pokeWakelock(5000)                              
D/KeyguardViewMediator( 1522): wakeWhenReadyLocked(4)                          
D/KeyguardViewMediator( 1522): handleWakeWhenReady(4)                          
D/KeyguardViewMediator( 1522): pokeWakelock(5000)                              
D/KeyguardViewMediator( 1522): wakeWhenReadyLocked(82)                          
D/KeyguardViewMediator( 1522): handleWakeWhenReady(82)                          
D/KeyguardViewMediator( 1522): pokeWakelock(5000)    
级别: 新手上路
UID: 11160
精华: 0
发帖: 25
金钱: 145 两
威望: 29 点
贡献值: 0 点
综合积分: 50 分
注册时间: 2009-11-29
最后登录: 2012-07-26
5楼  发表于: 2010-11-26 16:00
下载不了附件,怎么回事?~
级别: 新手上路
UID: 11160
精华: 0
发帖: 25
金钱: 145 两
威望: 29 点
贡献值: 0 点
综合积分: 50 分
注册时间: 2009-11-29
最后登录: 2012-07-26
6楼  发表于: 2010-12-17 12:53
楼主,我用你的附件下载了android2.1的源码,编译完成之后。我烧你的内核镜像和自己编译的文件系统镜像进去之后,启动后屏幕黑屏。Logcat打印的信息如下,找不到什么问题。版主可以帮忙解决一下吗?谢谢!
/ # logcat                                                                      
I/DEBUG   (  737): debuggerd: Dec 17 2010 10:12:11                              
I/vold    (  735): Android Volume Daemon version 2.0                            
I/vold    (  735): New MMC card 'SA02G' (serial 2625879499) added @ /class/mmc_4
E/vold    (  735): Unable to open '/sys/class/switch' (No such file or director)
D/vold    (  735): Bootstrapping complete                                      
D/AndroidRuntime(  739):                                                        
D/AndroidRuntime(  739): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<    
D/AndroidRuntime(  739): CheckJNI is ON                                        
I/        (  740): ServiceManager: 0xad08                                      
D/AudioHardwareInterface(  740): setMode(NORMAL)                                
I/CameraService(  740): CameraService started: pid=740                          
I/AudioFlinger(  740): AudioFlinger's thread 0xb398 ready to run                
D/dalvikvm(  739): DexOpt: --- BEGIN 'core.jar' (bootstrap=1) ---              
D/dalvikvm(  754): Ignoring duplicate verify attempt on Ljava/lang/Object;      
D/dalvikvm(  754): Ignoring duplicate verify attempt on Ljava/lang/Class;      
D/dalvikvm(  754): DexOpt: load 726ms, verify 5663ms, opt 209ms                
D/dalvikvm(  739): DexOpt: --- END 'core.jar' (success) ---                    
D/dalvikvm(  739): DEX prep '/system/framework/core.jar': unzip in 2517ms, rewrs
D/dalvikvm(  739): DexOpt: --- BEGIN 'ext.jar' (bootstrap=1) ---                
D/dalvikvm(  755): DexOpt: load 175ms, verify 1422ms, opt 45ms                  
D/dalvikvm(  739): DexOpt: --- END 'ext.jar' (success) ---                      
D/dalvikvm(  739): DEX prep '/system/framework/ext.jar': unzip in 501ms, rewrits
D/dalvikvm(  739): DexOpt: --- BEGIN 'framework.jar' (bootstrap=1) ---          
D/dalvikvm(  757): DexOpt: load 2389ms, verify 9125ms, opt 328ms                
D/dalvikvm(  739): DexOpt: --- END 'framework.jar' (success) ---                
D/dalvikvm(  739): DEX prep '/system/framework/framework.jar': unzip in 3298ms,s
D/dalvikvm(  739): DexOpt: --- BEGIN 'android.policy.jar' (bootstrap=1) ---    
D/dalvikvm(  758): DexOpt: load 128ms, verify 436ms, opt 8ms                    
D/dalvikvm(  739): DexOpt: --- END 'android.policy.jar' (success) ---          
D/dalvikvm(  739): DEX prep '/system/framework/android.policy.jar': unzip in 74s
D/dalvikvm(  739): DexOpt: --- BEGIN 'services.jar' (bootstrap=1) ---          
D/dalvikvm(  759): DexOpt: load 294ms, verify 2384ms, opt 68ms                  
D/dalvikvm(  739): DexOpt: --- END 'services.jar' (success) ---                
D/dalvikvm(  739): DEX prep '/system/framework/services.jar': unzip in 568ms, rs
D/AndroidRuntime(  739): --- registering native functions ---                  
I/SamplingProfilerIntegration(  739): Profiler is disabled.                    
I/Zygote  (  739): Preloading classes...                                        
D/dalvikvm(  739): GC freed 793 objects / 50568 bytes in 7ms                    
D/dalvikvm(  739): GC freed 251 objects / 16168 bytes in 7ms                    
D/dalvikvm(  739): GC freed 295 objects / 18768 bytes in 9ms                    
D/dalvikvm(  739): GC freed 214 objects / 13712 bytes in 11ms                  
D/dalvikvm(  739): GC freed 413 objects / 26440 bytes in 12ms                  
D/skia    (  739): ------ build_power_table 1.4                                
D/skia    (  739): ------ build_power_table 0.714286                            
D/dalvikvm(  739): GC freed 420 objects / 28712 bytes in 12ms                  
D/dalvikvm(  739): Trying to load lib /system/lib/libmedia_jni.so 0x0          
D/dalvikvm(  739): Added shared lib /system/lib/libmedia_jni.so 0x0            
D/dalvikvm(  739): Trying to load lib /system/lib/libexif.so 0x0                
D/dalvikvm(  739): Added shared lib /system/lib/libexif.so 0x0                  
D/dalvikvm(  739): GC freed 2299 objects / 120848 bytes in 17ms                
D/dalvikvm(  739): Trying to load lib /system/lib/libmedia_jni.so 0x0          
D/dalvikvm(  739): Shared lib '/system/lib/libmedia_jni.so' already loaded in s0
D/dalvikvm(  739): Trying to load lib /system/lib/libmedia_jni.so 0x0          
D/dalvikvm(  739): Shared lib '/system/lib/libmedia_jni.so' already loaded in s0
D/dalvikvm(  739): Trying to load lib /system/lib/libmedia_jni.so 0x0          
D/dalvikvm(  739): Shared lib '/system/lib/libmedia_jni.so' already loaded in s0
D/dalvikvm(  739): Trying to load lib /system/lib/libmedia_jni.so 0x0          
D/dalvikvm(  739): Shared lib '/system/lib/libmedia_jni.so' already loaded in s0
D/dalvikvm(  739): GC freed 3790 objects / 197016 bytes in 29ms                
D/dalvikvm(  739): GC freed 463 objects / 26368 bytes in 27ms                  
D/dalvikvm(  739): GC freed 294 objects / 17024 bytes in 28ms                  
D/dalvikvm(  739): GC freed 204 objects / 11400 bytes in 31ms                  
D/dalvikvm(  739): GC freed 178 objects / 9560 bytes in 32ms                    
D/dalvikvm(  739): Trying to load lib /system/lib/libsrec_jni.so 0x0            
D/dalvikvm(  739): Added shared lib /system/lib/libsrec_jni.so 0x0              
D/dalvikvm(  739): Trying to load lib /system/lib/libsrec_jni.so 0x0            
D/dalvikvm(  739): Shared lib '/system/lib/libsrec_jni.so' already loaded in sa0
D/dalvikvm(  739): GC freed 294 objects / 34640 bytes in 34ms                  
D/dalvikvm(  739): GC freed 787 objects / 47960 bytes in 49ms                  
D/dalvikvm(  739): GC freed 337 objects / 38424 bytes in 49ms                  
D/dalvikvm(  739): GC freed 418 objects / 25848 bytes in 50ms                  
D/dalvikvm(  739): Trying to load lib /system/lib/libwebcore.so 0x0            
D/dalvikvm(  739): Added shared lib /system/lib/libwebcore.so 0x0              
D/dalvikvm(  739): GC freed 432 objects / 25128 bytes in 51ms                  
D/dalvikvm(  739): GC freed 489 objects / 30736 bytes in 52ms                  
D/dalvikvm(  739): GC freed 349 objects / 28952 bytes in 52ms                  
D/dalvikvm(  739): GC freed 309 objects / 21896 bytes in 53ms                  
D/dalvikvm(  739): GC freed 916 objects / 80504 bytes in 60ms                  
D/dalvikvm(  739): GC freed 664 objects / 35888 bytes in 60ms                  
D/dalvikvm(  739): GC freed 709 objects / 41184 bytes in 61ms                  
D/dalvikvm(  739): GC freed 735 objects / 40592 bytes in 61ms                  
D/dalvikvm(  739): GC freed 14029 objects / 475056 bytes in 75ms                
D/dalvikvm(  739): GC freed 10452 objects / 448048 bytes in 78ms                
D/dalvikvm(  739): GC freed 10794 objects / 470032 bytes in 82ms                
D/dalvikvm(  739): GC freed 8445 objects / 460760 bytes in 82ms                
D/dalvikvm(  739): GC freed 7718 objects / 461944 bytes in 83ms                
D/dalvikvm(  739): GC freed 8692 objects / 518736 bytes in 85ms                
D/dalvikvm(  739): GC freed 6464 objects / 389992 bytes in 84ms                
D/dalvikvm(  739): GC freed 832 objects / 49800 bytes in 80ms                  
D/dalvikvm(  739): GC freed 541 objects / 38968 bytes in 80ms                  
D/dalvikvm(  739): GC freed 456 objects / 31352 bytes in 81ms                  
D/dalvikvm(  739): GC freed 430 objects / 29936 bytes in 81ms                  
I/Zygote  (  739): ...preloaded 1939 classes in 12305ms.                        
D/dalvikvm(  739): GC freed 112 objects / 14544 bytes in 85ms                  
I/Zygote  (  739): Preloading resources...                                      
D/dalvikvm(  739): GC freed 5 objects / 224 bytes in 81ms                      
D/dalvikvm(  739): GC freed 324 objects / 13784 bytes in 83ms                  
D/dalvikvm(  739): GC freed 111 objects / 4472 bytes in 83ms                    
D/dalvikvm(  739): GC freed 587 objects / 26840 bytes in 85ms                  
I/Zygote  (  739): ...preloaded 48 resources in 1451ms.                        
D/dalvikvm(  739): GC freed 26 objects / 2704 bytes in 84ms                    
I/Zygote  (  739): ...preloaded 15 resources in 117ms.                          
D/dalvikvm(  739): GC freed 376 objects / 18144 bytes in 84ms                  
D/dalvikvm(  739): GC freed 104 objects / 4128 bytes in 83ms                    
D/dalvikvm(  739): GC freed 2 objects / 48 bytes in 83ms                        
I/dalvikvm(  739): Splitting out new zygote heap                                
warning: `zygote' uses 32-bit capabilities (legacy support in use)              
I/dalvikvm(  739): System server process 760 has been created                  
I/Zygote  (  739): Accepting command socket connections                        
D/dalvikvm(  760): Trying to load lib /system/lib/libandroid_servers.so 0x0    
D/dalvikvm(  760): Added shared lib /system/lib/libandroid_servers.so 0x0      
I/sysproc (  760): Entered system_init()                                        
I/sysproc (  760): ServiceManager: 0x134668                                    
I/SurfaceFlinger(  760): SurfaceFlinger is starting                            
I/SurfaceFlinger(  760): SurfaceFlinger's main thread ready to run. Initializin.
E/SurfaceFlinger(  760): Couldn't open /sys/power/wait_for_fb_sleep or /sys/powe
W/gralloc (  760): FBIOPAN_DISPLAY failed, page flipping not supported          
W/gralloc (  760): page flipping not supported (yres_virtual=320, requested=640)
I/gralloc (  760): using (fd=22)                                                
I/gralloc (  760): id           = s3c2410fb                                    
I/gralloc (  760): xres         = 240 px                                        
I/gralloc (  760): yres         = 320 px                                        
I/gralloc (  760): xres_virtual = 240 px                                        
I/gralloc (  760): yres_virtual = 320 px                                        
I/gralloc (  760): bpp          = 16                                            
I/gralloc (  760): r            = 11:5                                          
I/gralloc (  760): g            =  5:6                                          
I/gralloc (  760): b            =  0:5                                          
I/gralloc (  760): width        = 240 mm (25.400000 dpi)                        
I/gralloc (  760): height       = 320 mm (25.400000 dpi)                        
I/gralloc (  760): refresh rate = 63.44 Hz


就到这里就没有信息打印了。请问有遇到这种问题的吗?