因为是最高权限生成rootfs_dir的,因此也要使用最高权限才能cp,比如rootfs_dir/dev/下的设备文件,
上面的错误就是使用一般权限导致/dev/console没有拷贝过去!
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
网上很多人也出现了同样的错误。归纳起来主要三个原因:
1 system/lib/hw/下缺少gralloc.default.so
把out/target/product/OK6410/obj/SHARED_LIBRARIES/gralloc.default_intermediates/LINKED下把这个文件放到文件系统的/system/lib/hw下就可以启动了
2 如果是挂载nfs,检查nfs权限
a 关闭防火墙
b 可以在/etc/exports 中配置nfs服务,增加rw,no_root_squash,可以解决此问题
3 还出现该问题,说明init程序所在的分区权限不够。
参看:
Android系统移植问题
错误: request_suspend_state: wakeup init: untracked pid 123 exited
原因:
(1)检查发现这是由于init.rc里面会重新mount根文件系统为只读,导致init.rc不能创建子目录。
(2)如果在ICS启动时,串口输出init: untracked pid之类的错误,说明init程序所在的分区权限不够,需要修改,在Telechips的代码中。
解决方法:需要修改init.rc,注释掉:mount yaffs2 mtd@system /system ro remount语句即可。
有这样一行:mount rootfs rootfs / ro remount。把它注释掉就可以了
mount rootfs rootfs / ro remount
改成
mount rootfs rootfs / rw remount