编译出来的system.img有问题

系统:ubuntu 14.04 x64
RAM:12G
CPU:AMD 8350 8核8线程
硬盘:2T
Android SDK:4.4.2
编译环境搭建:
http://wiki.t-firefly.com/index.php/Firefly-RK3288/Build_android

我编译出来的system.img,在ubuntu里提示:不能挂载Android,无法打开MTP设备(无法使用adb)

> adb shell
- exec '/system/bin/sh' failed: No such file or directory(2) -

不能挂载MTP设备和正常的log之间的差异:
[ 3.385519] EXT4-fs (rknand_system): VFS: Can’t find ext4 filesystem
[ 3.385679] fs_mgr: Cannot mount filesystem on /dev/block/rknand_system at /system
[ 3.385732] init: fs_mgr_mount_all returned an error
[ 3.386505] fs_mgr: parse_link_device : path = NULL
[ 3.386563] fs_mgr: parse_link_device : path = NULL
[ 3.386607] fs_mgr: parse_link_device : path = NULL
[ 3.388993] Unable to find swap-space signature
[ 3.389101] fs_mgr: swapon failed for /dev/block/zram0
[ 3.399533] init: /dev/hw_random not found
[ 3.407290] init: cannot find ‘/system/vendor/bin/pvrsrvctl’, disabling ‘pvrsrvctl’
[ 3.407367] init: cannot find ‘/system/bin/servicemanager’, disabling ‘servicemanager’
[ 3.407422] init: cannot find ‘/system/bin/vold’, disabling ‘vold’
[ 3.407522] init: cannot find ‘/system/bin/netd’, disabling ‘netd’
[ 3.407568] init: cannot find ‘/system/bin/debuggerd’, disabling ‘debuggerd’
[ 3.407644] init: cannot find ‘/system/bin/rild3’, disabling ‘ril-daemon3’
[ 3.407689] init: cannot find ‘/system/bin/surfaceflinger’, disabling ‘surfaceflinger’
[ 3.407734] init: cannot find ‘/system/bin/app_process’, disabling ‘zygote’
[ 3.407771] init: cannot find ‘/system/bin/drmserver’, disabling ‘drm’
[ 3.407817] init: cannot find ‘/system/bin/mediaserver’, disabling ‘media’
[ 3.407856] init: cannot find ‘/system/bin/installd’, disabling ‘installd’
[ 3.407895] init: cannot find ‘/system/etc/install-recovery.sh’, disabling ‘flash_recovery’
[ 3.407931] init: cannot find ‘/system/bin/keystore’, disabling ‘keystore’
[ 3.407974] init: cannot find ‘/system/bin/drmservice’, disabling ‘drmservice’
[ 3.408019] init: cannot find ‘/system/bin/bmd’, disabling ‘bmd’
[ 3.408088] init: cannot find ‘/system/bin/sdcard’, disabling ‘sdcard’
[ 3.408130] init: cannot find ‘/system/bin/chrome.sh’, disabling ‘chrome’
[ 3.408197] init: cannot find ‘/system/bin/akmd’, disabling ‘akmd’
……

log说明是无法挂载ext4文件系统的原因

然后我用file命令查看了下system.img的文件类型
可以正常使用的system.img显示:

> file system.img
system.img: Linux rev 1.0 ext4 filesystem data, UUID=da594c53-9beb-f85c-85c5-cedf76546f7a, volume name "system" (extents) (large files)

提示无法挂载MTP设备的system.img显示:

> file system.img
system.img : data

求助:该怎么编译出是 ext4的 system.img?
重装过系统,重新下载过4.4.2的SDK,也根据教程重新搭建过编译环境,但是问题依旧

不行是单烧system.img吗
试一下全部重新烧,包括loader和parameter

zhansb 发表于 2016-7-19 10:11
不行是单烧system.img吗
试一下全部重新烧,包括loader和parameter

是的,单独烧录system.img不行
全部重新烧录的话也不行

把编译、烧录的完整步骤列一下

zhansb 发表于 2016-7-21 09:41
把编译、烧录的完整步骤列一下

系统:ubuntu 14.04 x64
RAM:12G
CPU:AMD 8350 8核8线程
硬盘:2T
Android SDK: firefly-rk3288_android4.4_git_20141211.tar.gz
编译参考:编译 Android 4.4 固件
编译步骤:
kernel

> cd ~/firefly-rk3288/kernel
> make firefly-rk3288_defconfig
> make -j8 firefly-rk3288.img

Android

> cd ~/firefly-rk3288
> make -j8
> ./mkimage.sh

烧录:

在Android开发工具中选择1、2、6、7、8、10一起烧录

misch和recovery也一起烧,烧写工具用对应SDK FFTool里面对应的AndroidTool
这样试一下

zhansb 发表于 2016-7-24 14:08
misch和recovery也一起烧,烧写工具用对应SDK FFTool里面对应的AndroidTool
这样试一下

谢谢了,问题已经解决了。我烧录的是out/下生成的system.img所以有问题,rochdev/Image-rk3288/下的system.img就可以。一直以为它们没有区别,没想到还是有的

zhansb 发表于 2016-7-24 14:08
misch和recovery也一起烧,烧写工具用对应SDK FFTool里面对应的AndroidTool
这样试一下

谢谢了,问题已经解决了。我烧录的是out/下生成的system.img所以有问题,rochdev/Image-rk3288/下的system.img就可以。一直以为它们没有区别,没想到还是有的