Android Octa源码编译和下载过程详细记录

          第一次接触Android源码,很多地方都不了解,所以下载和编译源码也格外费时费力。故将遇到的问题和步骤记录下来,以备将来复习使用:


==================================华丽的分割线================================================================

1.下载源码常见问题

jefby@jefby-P45VJ:~/arndale-octa$ repo sync -f -j16
Fetching projects:   7% (24/330)  error: The requested URL returned error: 406 while accessing https://android.googlesource.com/platform/packages/wallpapers/MusicVisualization/info/refs
fatal: HTTP request failed
Fetching projects:  21% (70/330)  error: The requested URL returned error: 406 while accessing https://android.googlesource.com/platform/external/jack/info/refs
fatal: HTTP request failed
error: The requested URL returned error: 406 while accessing https://android.googlesource.com/platform/external/libselinux/info/refs
fatal: HTTP request failed
Fetching projects:  27% (90/330)  error: The requested URL returned error: 406 while accessing https://android.googlesource.com/platform/external/srtp/info/refs
fatal: HTTP request faile
Fetching projects:  28% (93/330)  error: The requested URL returned error: 406 while accessing https://android.googlesource.com/platform/packages/apps/VoiceDialer/info/refs
fatal: HTTP request failed
Fetching projects:  54% (179/330)  error: The requested URL returned error: 406 while accessing https://android.googlesource.com/platform/hardware/qcom/wlan/info/refs
fatal: HTTP request failed
Fetching projects:  55% (182/330)  error: The requested URL returned error: 406 while accessing https://android.googlesource.com/platform/packages/apps/SpeechRecorder/info/refs
fatal: HTTP request failed
error: The requested URL returned error: 406 while accessing https://android.googlesource.com/platform/external/freetype/info/refs
fatal: HTTP request failed
Fetching projects:  99% (327/330)  error: The requested URL returned error: 406 while accessing https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/info/refs
fatal: HTTP request failed
Fetching projects: 100% (330/330), done.  

Syncing work tree: 100% (330/330), done. 

错误1:

Fetching projects:  99% (327/330)  error: The requested URL returned error: 406 while accessing https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/info/refs

是因为google对源码下载做了限制,解决方法

在网站android.googlesource.com/new-password上使用google帐号登录,并拷贝信息到~/.netrc文件中.


==============================================华丽的分割线===================================================

2.编译源码具体步骤截图和错误分析

./vendor_samsungxxx.run

Android Octa源码编译和下载过程详细记录

./vendor_insignalxx.run


Android Octa源码编译和下载过程详细记录

3.编译andorid源码,内核和u-boot就省略了(不太容易出问题)

jefby@jefby-P45VJ:~/arndale-octa$make kernel-binaries

============================================

PLATFORM_VERSION_CODENAME=REL

PLATFORM_VERSION=4.2.2

TARGET_PRODUCT=full_arndale_octa

TARGET_BUILD_VARIANT=eng

TARGET_BUILD_TYPE=release

TARGET_BUILD_APPS=

TARGET_ARCH=arm

TARGET_ARCH_VARIANT=armv7-a-neon

HOST_ARCH=x86

HOST_OS=linux

HOST_OS_EXTRA=Linux-3.5.0-23-generic-x86_64-with-Ubuntu-12.04-precise

HOST_BUILD_TYPE=release

BUILD_ID=JDQ39

OUT_DIR=out

============================================

Checkingbuild tools versions...

external/bluetooth/bluedroid/Android.mk:8:NO BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR, using only genericconfiguration

find:`../../vendor/unbundled_google/libs/gcm/gcm-client/src‘: 没有那个文件或目录

find:`../../vendor/unbundled_google/libs/gcm/gcm-server/src‘: 没有那个文件或目录

find:`../../vendor/unbundled_google/libs/gcm/gcm-client/src‘: 没有那个文件或目录

find:`../../vendor/unbundled_google/libs/gcm/gcm-server/src‘: 没有那个文件或目录

find:`src‘: 没有那个文件或目录

PRODUCT_COPY_FILESframeworks/base/data/sounds/effects/ogg/Effect_Tick.ogg:system/media/audio/ui/Effect_Tick.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/effects/ogg/KeypressStandard.ogg:system/media/audio/ui/KeypressStandard.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/effects/ogg/KeypressSpacebar.ogg:system/media/audio/ui/KeypressSpacebar.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/effects/ogg/KeypressDelete.ogg:system/media/audio/ui/KeypressDelete.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/effects/ogg/KeypressReturn.ogg:system/media/audio/ui/KeypressReturn.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/effects/ogg/VideoRecord.ogg:system/media/audio/ui/VideoRecord.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/effects/ogg/camera_click.ogg:system/media/audio/ui/camera_click.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/effects/ogg/LowBattery.ogg:system/media/audio/ui/LowBattery.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/effects/ogg/Dock.ogg:system/media/audio/ui/Dock.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/effects/ogg/Undock.ogg:system/media/audio/ui/Undock.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/effects/ogg/Lock.ogg:system/media/audio/ui/Lock.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/effects/ogg/Unlock.ogg:system/media/audio/ui/Unlock.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/ringtones/ogg/Sceptrum.ogg:system/media/audio/ringtones/Sceptrum.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/effects/ogg/KeypressStandard_120.ogg:system/media/audio/ui/KeypressStandard.oggignored. 

PRODUCT_COPY_FILESframeworks/base/data/sounds/effects/ogg/KeypressSpacebar_120.ogg:system/media/audio/ui/KeypressSpacebar.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/effects/ogg/KeypressDelete_120.ogg:system/media/audio/ui/KeypressDelete.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/effects/ogg/KeypressReturn_120.ogg:system/media/audio/ui/KeypressReturn.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/notifications/ogg/Capella.ogg:system/media/audio/notifications/Capella.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/notifications/ogg/CetiAlpha.ogg:system/media/audio/notifications/CetiAlpha.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/notifications/ogg/Polaris.ogg:system/media/audio/notifications/Polaris.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/notifications/ogg/Pollux.ogg:system/media/audio/notifications/Pollux.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/notifications/ogg/Procyon.ogg:system/media/audio/notifications/Procyon.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/ringtones/ogg/Aquila.ogg:system/media/audio/ringtones/Aquila.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/ringtones/ogg/ArgoNavis.ogg:system/media/audio/ringtones/ArgoNavis.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/ringtones/ogg/Carina.ogg:system/media/audio/ringtones/Carina.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/ringtones/ogg/Centaurus.ogg:system/media/audio/ringtones/Centaurus.oggignored. 

PRODUCT_COPY_FILESframeworks/base/data/sounds/ringtones/ogg/Cygnus.ogg:system/media/audio/ringtones/Cygnus.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/ringtones/ogg/Draco.ogg:system/media/audio/ringtones/Draco.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/ringtones/ogg/Machina.ogg:system/media/audio/ringtones/Machina.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/ringtones/ogg/Orion.ogg:system/media/audio/ringtones/Orioabin.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/ringtones/ogg/Pegasus.ogg:system/media/audio/ringtones/Pegasus.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/ringtones/ogg/Pyxis.ogg:system/media/audio/ringtones/Pyxis.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/ringtones/ogg/Rigel.ogg:system/media/audio/ringtones/Rigel.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/ringtones/ogg/Scarabaeus.ogg:system/media/audio/ringtones/Scarabaeus.oggignored.

PRODUCT_COPY_FILESframeworks/base/data/sounds/ringtones/ogg/Solarium.ogg:system/media/audio/ringtones/Solarium.oggignored.

!!WARN !! Skip set arndale_octa_android_defconfig. will use .config!

!!WARN !! Skip build zImage. will use prebuilt one!

mkdir-p /home/jefby/arndale-octa/out/target/product/arndale_octa

mkdir-p /home/jefby/arndale-octa/out/target/product/arndale_octa/system

cp /home/jefby/arndale-octa/kernel/arch/arm/boot/zImage /home/jefby/arndale-octa/out/target/product/arndale_octa/kernel

Buildingkernel modules...

make[1]:正在进入目录 `/home/jefby/arndale-octa/kernel‘

  CHK     include/linux/version.h

  CHK     include/generated/utsrelease.h

make[2]:“include/generated/mach-types.h”是最新的。

  CALL    scripts/checksyscalls.sh

  Building modules, stage 2.

  MODPOST 26 modules

make[1]:正在离开目录 `/home/jefby/arndale-octa/kernel

错误2:

/bin/bash:mkimage: can‘t find the directory

targetSharedLib: libbcinfo(out/target/product/arndale_octa/obj/SHARED_LIBRARIES/libbcinfo_intermediates/LINKED/libbcinfo.so)

targetSharedLib: libcorkscrew(out/target/product/arndale_octa/obj/SHARED_LIBRARIES/libcorkscrew_intermediates/LINKED/libcorkscrew.so)

make:*** [out/target/product/arndale_octa/ramdisk.img.ub] 错误 127

make:*** 正在等待未完成的任务....

targetSharedLib: libhardware(out/target/product/arndale_octa/obj/SHARED_LIBRARIES/libhardware_intermediates/LINKED/libhardware.so)

DroidDoctook 374 sec. to write docs to out/target/common/docs/doc-comment-check 

 ‘out/target/common/obj/APPS/Contacts_intermediates/classes.dex‘as ‘classes.dex

原因:缺乏构建镜像的工具,解决方法:

sudo apt-get install uboot-image

编译镜像文件的输出:

make -j16//配置高的话可以再调高一些,例如make -j32等。

这一步需要耐心等待,我电脑core i5 3230,4G内存,编译了3个小时。

输出:

make_ext4fs-s -l 314572800 -a systemout/target/product/arndale_octa/obj/PACKAGING/systemimage_intermediates/system.imgout/target/product/arndale_octa/system

+make_ext4fs -s -l 314572800 -a system out/target/product/arndale_octa/obj/PACKAGING/systemimage_intermediates/system.imgout/target/product/arndale_octa/system

Creatingfilesystem with parameters:

    Size: 314572800

    Block size: 4096

    Blocks per group: 32768

    Inodes per group: 6400

    Inode size: 256

    Journal blocks: 1200

    Label:

    Blocks: 76800

    Block groups: 3

    Reserved block group size:23

Createdfilesystem with 1086/19200 inodes and 57701/76800 blocks

+‘[‘ 0 -ne 0 ‘]‘

Running:  simg2imgout/target/product/arndale_octa/obj/PACKAGING/systemimage_intermediates/system.imgout/target/product/arndale_octa/obj/PACKAGING/systemimage_intermediates/unsparse_system.img

Running:  e2fsck -f -nout/target/product/arndale_octa/obj/PACKAGING/systemimage_intermediates/unsparse_system.img

e2fsck1.41.14 (22-Dec-2010)

Pass1: Checking inodes, blocks, and sizes

Pass2: Checking directory structure

Pass3: Checking directory connectivity

Pass4: Checking reference counts

Pass5: Checking group summary information

out/target/product/arndale_octa/obj/PACKAGING/systemimage_intermediates/unsparse_system.img:1086/19200 files (0.0% non-contiguous), 57701/76800 blocks

Installsystem fs image: out/target/product/arndale_octa/system.img

out/target/product/arndale_octa/system.img+maxsize=321159168 blocksize=4224 total=232984688 reserve=3244032

 

错误3:

bionic/libm/arm/e_pow.S:Assembler messages:

bionic/libm/arm/e_pow.S:139:Error: selected FPU does not support instruction -- `vmov.i64d31,#0xffffffff00000000‘

bionic/libm/arm/e_pow.S:142:Error: D register out of range for selected VFP version -- `fconstd d28,#0x70‘

bionic/libm/arm/e_pow.S:151:Error: selected processor does not support ARM mode `vshl.i64 d30,d31,#20‘

bionic/libm/arm/e_pow.S:152:Error: selected processor does not support ARM mode `vshr.u64 d29,d31,#63‘

bionic/libm/arm/e_pow.S:173:Error: selected processor does not support ARM mode `vbic.i64 d16,d0,d30‘

bionic/libm/arm/e_pow.S:176:Error: selected processor does not support ARM mode `vand.i64 d2,d0,d30‘

bionic/libm/arm/e_pow.S:191:Error: VFP single precision register expected -- `vldm r10!,{d24,d25,d26,d27}‘

bionic/libm/arm/e_pow.S:194:Error: selected processor does not support ARM mode `vorr.i64 d16,d16,d28‘

bionic/libm/arm/e_pow.S:198:Error: D register out of range for selected VFP version -- `vsub.f64d19,d16,d4‘

bionic/libm/arm/e_pow.S:199:Error: D register out of range for selected VFP version -- `vadd.f64d20,d16,d4‘

bionic/libm/arm/e_pow.S:204:Error: D register out of range for selected VFP version -- `vdiv.f64 d16,d19,d20‘

bionic/libm/arm/e_pow.S:207:Error: D register out of range for selected VFP version -- `vldrd21,.Ltwooverthreeln2‘

bionic/libm/arm/e_pow.S:210:Error: selected FPU does not support instruction -- `vsub.i64 d2,d2,d28‘

bionic/libm/arm/e_pow.S:215:Error: D register out of range for selected VFP version -- `vmul.f64d17,d16,d16‘

bionic/libm/arm/e_pow.S:218:Error: D register out of range for selected VFP version -- `vmul.f64d18,d17,d17‘

bionic/libm/arm/e_pow.S:221:Error: D register out of range for selected VFP version -- `vmul.f64d21,d21,d1‘

bionic/libm/arm/e_pow.S:224:Error: selected processor does not support ARM mode `vshr.s64 d2,d2,#52‘

bionic/libm/arm/e_pow.S:227:Error: D register out of range for selected VFP version -- `vmla.f64 d25,d17,d24‘

bionic/libm/arm/e_pow.S:230:Error: D register out of range for selected VFP version -- `vmla.f64d27,d17,d26‘

bionic/libm/arm/e_pow.S:233:Error: D register out of range for selected VFP version -- `vmul.f64d21,d16,d21‘

bionic/libm/arm/e_pow.S:236:Error: D register out of range for selected VFP version -- `vadd.f64 d0,d0,d17‘

bionic/libm/arm/e_pow.S:241:Error: D register out of range for selected VFP version -- `vmla.f64d27,d18,d25‘

bionic/libm/arm/e_pow.S:247:Error: D register out of range for selected VFP version -- `vmla.f64d0,d18,d27‘

bionic/libm/arm/e_pow.S:250:Error: D register out of range for selected VFP version -- `vmul.f64 d0,d21,d0‘

bionic/libm/arm/e_pow.S:255:Error: selected processor does not support ARM mode `vshl.u64 d4,d29,#1‘

bionic/libm/arm/e_pow.S:264:Error: selected processor does not support ARM mode `vshr.s64 d16,d0,#62‘

bionic/libm/arm/e_pow.S:265:Error: selected processor does not support ARM mode `vshr.s64 d19,d3,#62‘

bionic/libm/arm/e_pow.S:268:Error: selected FPU does not support instruction -- `vmov d17,d0‘

bionic/libm/arm/e_pow.S:273:Error: selected FPU does not support instruction -- `vmov d18,d3‘

bionic/libm/arm/e_pow.S:277:Error: VFP single precision register expected -- `vldm r10!,{d20,d21,d22,d23,d24,d25,d26,d27}‘

bionic/libm/arm/e_pow.S:280:Error: selected processor does not support ARM mode `vshl.u64 d1,d29,#2‘

bionic/libm/arm/e_pow.S:283:Error: selected processor does not support ARM mode `vorr.u64 d16,d16,d29‘

bionic/libm/arm/e_pow.S:284:Error: selected processor does not support ARM mode `vorr.u64 d19,d19,d29‘

bionic/libm/arm/e_pow.S:287:Error: selected FPU does not support instruction -- `vadd.s32 d0,d0,d16‘

bionic/libm/arm/e_pow.S:288:Error: selected FPU does not support instruction -- `vadd.s32 d3,d3,d19‘

bionic/libm/arm/e_pow.S:291:Error: selected processor does not support ARM mode `vbic.s32 d0,d0,d29‘

bionic/libm/arm/e_pow.S:293:Error: selected processor does not support ARM mode `vbic.s32 d3,d3,d29‘

bionic/libm/arm/e_pow.S:295:Error: selected FPU does not support instruction -- `vadd.s64 d31,d3,d0‘

bionic/libm/arm/e_pow.S:297:Error: selected processor does not support ARM mode `vshl.i64 d2,d31,#49‘

bionic/libm/arm/e_pow.S:299:Error: selected processor does not support ARM mode `vand.u64 d4,d4,d31‘

bionic/libm/arm/e_pow.S:300:Error: selected processor does not support ARM mode `vand.u64 d1,d1,d31‘

bionic/libm/arm/e_pow.S:308:Error: selected processor does not support ARM mode `vqshl.u64 d1,d1,#62‘

bionic/libm/arm/e_pow.S:310:Error: selected processor does not support ARM mode `vqshl.u64 d4,d4,#63‘

bionic/libm/arm/e_pow.S:313:Error: D register out of range for selected VFP version -- `vsub.f64d17,d17,d0‘

bionic/libm/arm/e_pow.S:315:Error: D register out of range for selected VFP version -- `vsub.f64d18,d18,d3‘

bionic/libm/arm/e_pow.S:318:Error: D register out of range for selected VFP version -- `vadd.f64d16,d17,d18‘

bionic/libm/arm/e_pow.S:324:Error: D register out of range for selected VFP version -- `vmul.f64d16,d5,d16‘

bionic/libm/arm/e_pow.S:329:Error: D register out of range for selected VFP version -- `vmul.f64d17,d16,d16‘

bionic/libm/arm/e_pow.S:332:Error: selected processor does not support ARM mode `vand.u64 d1,d1,d6‘

bionic/libm/arm/e_pow.S:334:Error: selected processor does not support ARM mode `vand.u64 d4,d4,d6‘

bionic/libm/arm/e_pow.S:337:Error: D register out of range for selected VFP version -- `vadd.f64 d0,d0,d16‘

bionic/libm/arm/e_pow.S:340:Error: D register out of range for selected VFP version -- `vmla.f64d21,d16,d20‘

bionic/libm/arm/e_pow.S:343:Error: D register out of range for selected VFP version -- `vmul.f64d18,d17,d17‘

bionic/libm/arm/e_pow.S:346:Error: selected processor does not support ARM mode `vorr.u64 d1,d1,d28‘

bionic/libm/arm/e_pow.S:348:Error: selected processor does not support ARM mode `vorr.u64 d4,d4,d28‘

bionic/libm/arm/e_pow.S:354:Error: D register out of range for selected VFP version -- `vmul.f64d19,d17,d16‘

bionic/libm/arm/e_pow.S:357:Error: D register out of range for selected VFP version -- `fconstd d28,#0x60‘

bionic/libm/arm/e_pow.S:360:Error: selected processor does not support ARM mode `vand.i64 d2,d2,d30‘

bionic/libm/arm/e_pow.S:368:Error: D register out of range for selected VFP version -- `vmla.f64d23,d16,d22‘

bionic/libm/arm/e_pow.S:371:Error: D register out of range for selected VFP version -- `vmla.f64d25,d16,d24‘

bionic/libm/arm/e_pow.S:374:Error: D register out of range for selected VFP version -- `vmla.f64d27,d16,d26‘

bionic/libm/arm/e_pow.S:380:Error: D register out of range for selected VFP version -- `vmla.f64d23,d17,d21‘

bionic/libm/arm/e_pow.S:383:Error: D register out of range for selected VFP version -- `vmla.f64d27,d17,d25‘

bionic/libm/arm/e_pow.S:386:Error: D register out of range for selected VFP version -- `vmla.f64d0,d17,d28‘

bionic/libm/arm/e_pow.S:389:Error: selected FPU does not support instruction -- `vadd.i64 d7,d2,d7‘

bionic/libm/arm/e_pow.S:392:Error: D register out of range for selected VFP version -- `vmla.f64d27,d18,d23‘

bionic/libm/arm/e_pow.S:395:Error: D register out of range for selected VFP version -- `vmla.f64d0,d19,d27‘

make:***[out/target/product/generic/obj/SHARED_LIBRARIES/libm_intermediates/arm/e_pow.o]错误 1

解决方法:

重新构建内核和android源码。

 

3:将编译好的镜像文件烧写到开发板上,有两种方法:一种是烧写到eMMC上,一种是烧写到SD/MMC上。默认配置是eMMC,若要修改则需重新配置并编译。

 

jefby@jefby-P45VJ:~/arndale-octa$fastboot flash fwbl1 vendor/insignal/arndale_octa/exynos5420/arndale_octa.bl1.bin

<waiting for device > 

sending‘fwbl1‘ (15 KB)...

OKAY[  0.005s]

writing‘fwbl1‘...

OKAY[  0.151s]

finished.total time: 0.157s

jefby@jefby-P45VJ:~/arndale-octa$fastboot flash bl2 vendor/insignal/arndale_octa/exynos5420/arndale_octa.bl2.bin

sending‘bl2‘ (14 KB)...

OKAY[  0.005s] 

writing‘bl2‘...

OKAY[  0.150s]

finished.total time: 0.156s

jefby@jefby-P45VJ:~/arndale-octa$fastboot flash bootloader u-boot/u-boot.bin

sending‘bootloader‘ (253 KB)...

OKAY[  0.046s]

writing‘bootloader‘...

OKAY[  0.131s]

finished.total time: 0.178s

jefby@jefby-P45VJ:~/arndale-octa$fastboot flash tzswvendor/insignal/arndale_octa/exynos5420/arndale_octa.tzsw.bin

sending‘tzsw‘ (256 KB)...

OKAY[  0.048s]

writing‘tzsw‘...

OKAY[  0.134s]

finished.total time: 0.182s

jefby@jefby-P45VJ:~/arndale-octa$fastboot flash kernel kernel/arch/arm/boot/zImage

sending‘kernel‘ (4024 KB)...

OKAY[  0.683s]

writing‘kernel‘...

OKAY[  0.726s]

finished.total time: 1.409s

jefby@jefby-P45VJ:~/arndale-octa$fastboot flash ramdisk out/target/product/arndale_octa/ramdisk.img.ub

sending‘ramdisk‘ (179 KB)...

OKAY[  0.035s]

writing‘ramdisk‘.. 

OKAY[  0.057s]

finished.total time: 0.091s

jefby@jefby-P45VJ:~/arndale-octa$fastboot flash system out/target/product/arndale_octa/system.img

sending‘system‘ (227524 KB)... 

OKAY[ 38.528s]

writing‘system‘...

OKAY[ 39.636s]

finished.total time: 78.164s

jefby@jefby-P45VJ:~/arndale-octa$ fastboot erase userdata

erasing‘userdata‘...

OKAY[  7.638s]

finished.total time: 7.638s

jefby@jefby-P45VJ:~/arndale-octa$fastboot erase cache

erasing‘cache‘... 

OKAY[  3.252s]

finished.total time: 3.252s

 

jefby@jefby-P45VJ:~/arndale-octa$fastboot reboot

 rebooting...

finished.total time: 0.019s

 可能会出现如下错误4

<waitingfor device>,一直死在这儿没有反应,

解决方法:

google后在StackOver上得到了解答,摘录如下:

The short version of the pagelinked by D Shu (and without the horrible popover ads) is that this"waiting for device" problem happens when the USB device node is notaccessible to your current user. The USB id is different in fastboot mode, soyou can easily have permission to it in adb but not in fastboot.

To fix it (on Ubuntu; othersystems may be slightly different):

Run lsusb -v | less and find the relevant section which will look something likethis:

Bus 001 Device 027: ID 18d1:4e30 Google Inc.

Couldn‘t open device, some informationwill be missing

Device Descriptor:

...

  idVendor           0x18d1 Google Inc.

Now do

sudo vi /etc/udev/rules.d/11-android.rules

it‘s ok if that file does not yetexist; create it with a line like this, inserting your own username and vendorid:

SUBSYSTEMS=="usb",ATTRS{idVendor}=="18d1", MODE="0640", OWNER="mbp"

then

sudo service udev restart

then verify the device nodepermissions have changed:

ls -Rl /dev/bus/usb

The even shorter cheesy version isto just run fastboot asroot.

5、安装完成后,界面如下图:

Android Octa源码编译和下载过程详细记录

可以看到内核版本(kernel version)处的信息是jefby@jefby-P45VJ#1,也就是自己所编译的内核和镜像。

但是比较让人失望的是eth0网卡的问题依旧没有解决掉,这就有点让人不太理解了。

 



Android Octa源码编译和下载过程详细记录,布布扣,bubuko.com

Android Octa源码编译和下载过程详细记录

上一篇:搭建企业官网应该如何挑选云服务器?


下一篇:AppleScript学习笔记(三)捕捉错误