原创作品,转载请注明原作者及地址!
by 飞鸿惊雪
这两天玩android,做个小结吧。
console=ttySAC0,115200 root=/dev/nfs nfsroot=192.168.0.100:/tftpboot/nfs ip=192.168.0.101:192.168.0.100:192.168.0.1:255.255.255.0:www.richardnee.com:eth0:off init=/linuxrc androidboot.console=s3c2410_serial0
console=ttySAC0,115200 root=/dev/nfs nfsroot=192.168.0.100:/tftpboot/nfs ip=192.168.0.101:192.168.0.100:192.168.0.1:255.255.255.0:www.richardnee.com:eth0:off init=/linuxrc
console=ttySAC0,115200 root=/dev/nfs nfsroot=192.168.0.100:/tftpboot/nfs ip=192.168.0.101:192.168.0.100:192.168.0.1:255.255.255.0:www.richardnee.com:eth0:off
使用第1个是用来测试启动android。
使用自己稍加修改编译好的tiny210自带kernel,uboot可以成功启动tiny210自带的android系统。
下面内核保持不变,启动自己编译的android-2.3.1(目前这个源代码还是友善自带的,自己还没开始动手移植),出现如下情况:
[ 3.642451] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 [ 4.646504] IP-Config: Complete: [ 4.646535] device=eth0, addr=192.168.0.101, mask=255.255.255.0, gw=192.168.0.1, [ 4.646615] host=www, domain=, nis-domain=richardnee.com, [ 4.646665] bootserver=192.168.0.100, rootserver=192.168.0.100, rootpath= [ 4.648396] DBUG_PORT must not use AFC! [ 4.652311] Freeing init memory: 1436K 1Wire touchscreen OK /init: line 103: can't open /r/dev/console: no such file [ 4.841750] Kernel panic - not syncing: Attempted to kill init! [ 4.841812] Backtrace: [ 4.841864] [<c0173efc>] (dump_backtrace+0x0/0x110) from [<c05c2be0>] (dump_stack+0x18/0x1c) [ 4.841940] r6:dfc34000 r5:c07dc2a0 r4:c07daafc r3:00000000 [ 4.842008] [<c05c2bc8>] (dump_stack+0x0/0x1c) from [<c05c2c58>] (panic+0x74/0xf0)
sudo ./genrootfs.sh sudo cp rootfs_dir/ /tftpboot/nfs -fpRv
[ 139.032041] request_suspend_state: wakeup (0->0) at 138479524004 (2011-08-13 20:12:20.456813585 UTC) [ 139.034670] init: untracked pid 144 exited [ 139.035349] init: untracked pid 145 exited
参看:http://blog.csdn.net/zjg555543/article/details/7787905
参看:http://blog.csdn.net/zjg555543/article/details/7787905
3 还出现该问题,说明init程序所在的分区权限不够。 参看:http://my.oschina.net/u/246816/blog/48892
mount rootfs rootfs / ro remount 改成 mount rootfs rootfs / rw remount
其他还有比如opengl等驱动不正确等问题导致的(http://blog.chinaunix.net/uid-7922708-id-3048378.html)。
一开始我也苦苦找寻原因,可是上面三者都不是我的原因。因此来招笨的,直接把友善自带的android/system/代替自己编译的,ok,一起成功启动。
然后我就对比了友善tiny210自带android和我编译的有啥区别:############ android编译生成的 ########## system/framework system/xbin system/app system/lib/libhardware_legacy.so system/lib/libmock_ril.so system/lib/libwebcore.so system/etc/security/otacerts.zip (android-2.3.1自带) +system/etc/ts.detected (tslib校验时生成的) ########### 开发板BSP ############ system/lib/modules/2.6.35.7-FriendlyARM/ 没有不同 +system/lib/hw/gps.mini6410.so 只多出了gps.mini6410.so system/lib/hw/gps.mini210.so
-rw------- 1 richardnee richardnee 2.8M 2012-10-26 04:07 framework.jar -rw-r--r-- 1 richardnee richardnee 4.4M 2012-10-26 04:02 framework-res.apk -rw------- 1 richardnee richardnee 1.8M 2012-10-26 04:04 core.jar -rw-r--r-- 1 richardnee richardnee 9.9K 2012-10-26 04:05 core-junit.jar
原来是这个原因!!实际上就是刚刚提到的第三个原因:权限不够!!
原创作品,转载请注明原作者及地址!
by 飞鸿惊雪