goldfish_nand_read: invalid read, start 0, len 200, dev_size 21560000, write_size 800

android 4.3.2源碼編譯完運行模擬器提示:

init: cannot open '/initlogo.rle'
goldfish_nand_read: invalid read, start 0, len 200, dev_size 21560000, write_size 800
end_request: I/O error, dev mtdblock0, sector 2
然後下面就是一堆錯誤,提示找不到文件:

init: Unable to open persistent property directory /data/property errno: 2
init: cannot find '/system/bin/servicemanager', disabling 'servicemanager'
init: cannot find '/system/bin/vold', disabling 'vold'
init: cannot find '/system/bin/qemu-props', disabling 'qemu-props'
init: cannot find '/system/bin/netd', disabling 'netd'
init: cannot find '/system/bin/debuggerd', disabling 'debuggerd'
init: cannot find '/system/bin/rild', disabling 'ril-daemon'
init: cannot find '/system/bin/surfaceflinger', disabling 'surfaceflinger'
init: cannot find '/system/bin/app_process', disabling 'zygote'
init: cannot find '/system/bin/drmserver', disabling 'drm'
init: cannot find '/system/bin/mediaserver', disabling 'media'
init: cannot find '/system/bin/installd', disabling 'installd'
init: cannot find '/system/etc/install-recovery.sh', disabling 'flash_recovery'
init: cannot find '/system/bin/keystore', disabling 'keystore'
init: cannot find '/system/bin/qemud', disabling 'qemud'
init: cannot find '/system/bin/logcat', disabling 'goldfish-logcat'
init: cannot find '/system/etc/init.goldfish.sh', disabling 'goldfish-setup'
init: cannot find '/system/bin/sh', disabling 'console'

找了很久,一直沒解決問題,其實直接搜索錯誤提示信息,前面幾條信息就是相關的帖子,只是因爲是國外的論壇,沒怎麼仔細看。今天仔細看了下,按照上面一個人說的改了下,果然可以成功啓動了。

總結下,其實是因爲qemu模擬器的代碼有問題導致該錯誤出現,在external/qemu/hw/goldfish_nand.c文件中有

uint32_t page_size = 2048;
uint32_t extra_size = 64;
uint32_t erase_pages = 64;
此處參數是錯誤的,改爲

uint32_t page_size = 512;
uint32_t extra_size = 0;
uint32_t erase_pages = 64;

編譯再運行,一切OK。

效果跟4.0還是有點區別

最後,附上原論壇討論帖子,祝你好運!

http://stackoverflow.com/questions/17993095/android-4-3-on-emulator

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章