板子买了一段时间,终于有时间可以玩玩了,论坛上找浪费了很多时间。把虚拟机环境搭建起来,编译好镜像就可以直接使用烧写工具烧写到TF卡上了。由于买的是双TF卡插槽,没有nand,所以只能在TF卡上制作镜像了。制作过程参考官方文档,好好总结一下,一来以后自己再做时图懒图方便,二来可以方便后来人。
主要可以分为一下几个步骤:
一、搭建编译环境
可以在XP或win7系统上安装虚拟机,在虚拟机中安装交叉编译工具来编译Android,一份Android代码编译下来,至少占50G左右的空间,所以要准备
足够的空间,也可以直接装Ubuntu。
二、源码下载并编译
图方便,直接从cubieboard官方网站的FTP下载,有时间可以从git下载,可以同步更新。
三、使用烧写工具将固件烧入到TF卡上。
一、搭建编译环境
- $sudo apt-get update
- $sudo apt-get upgrade
- $sudo apt-get install build-essential u-boot-tools uboot-mkimage binutils-arm-linuxgnueabihf gcc-arm-linux-gnueabi gcc-arm-linux-gnueabihf cpp-arm-linux-gnueabihf libusb-1.0-0 libusb-1.0-0-dev git wget fakeroot kernel-package zlib1g-dev libncurses5-dev
- $sudo apt-get install build-essential git u-boot-tools texinfo texlive ccache zlib1g-dev gawk bison flex gettext uuid-dev
- $sudo apt-get install ia32-libs
- $sudo apt-get install ncurses-dev
1.1 首先安装虚拟机及Ubuntu
要安装vmware_tools时在win和Ubuntu之间拷贝文件。
1.2 安装JDK
编译Android需要安装JDK工具,因此安装好虚拟机后需要安装这个工具。可以到官方网站上去下:
- $wget dl.cubieboard.org/software/tools/android/jdk1.6.0_33.tar.gz
- JAVA_HOME=/work/tools/jdk1.6.0_33
- export JRE_HOME=/work/tools/jdk1.6.0_33/jre
- export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
- export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
然后source以下:$source etc/profile
1.3 编译Android需要64位的,对于其他版本的需要安装以下包来支持编译:
- sudo apt-get install git gnupg flex bison gperf build-essential \
- zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
- libx11-dev:i386 libreadline6-dev:i386 g++-multilib mingw32 tofrodos \
- python-markdown libxml2-utils xsltproc zlib1g-dev:i386
- 1. $sudo apt-get update
- 2. $sudo apt-get upgrade
- 3. $sudo apt-get install build-essential u-boot-tools uboot-mkimage binutils-arm-linuxgnueabihf gcc-arm-linux-gnueabi gcc-arm-linux-gnueabihf cpp-arm-linux-gnueabihf libusb-1.0-0 libusb-1.0-0-dev git wget fakeroot kernel-package zlib1g-dev libncurses5-dev
- 4. $sudo apt-get install build-essential git u-boot-tools texinfo texlive ccache zlib1g-dev gawk
- bison flex gettext uuid-dev
- 5. $sudo apt-get install ia32-libs
- 6. $sudo apt-get install ncurses-dev
二、源码下载并编译
2.1 可以使用git建立自己的仓库下载,也可以直接从官方网站上下载:
http://dl.cubieboard.org/software/a20-cubieboard/android/CubieBoard2_SDK_20140508.tar.gz
2.2 下载后解压源码:
- $tar xvzf CubieBoard2_SDK_20140508.tar.gz
- $cd lichee
- $cp linux-3.4/arch/arm/configs/cubieboard2_config linux-3.4/.config
- ./build.sh -p sun7i_android
INFO: build u-boot OK.
INFO: build rootfs ...
INFO: skip make rootfs for android
INFO: build rootfs OK.
INFO: build lichee OK.
2.5 编译Android部分:输入 15 (15. sugar_cubieboard2-eng)
- $cd android
- $source build/envsetup.sh
- $lunch
- $extract-bsp
- $make -j8
- $pack
三、使用烧写工具将固件烧入到TF卡上。
3.1 烧写工具下载地址:http://pan.baidu.com/s/1eQtb4eI
3.2 在PC win环境下插入读卡器,将其他多余的USB设备卸载掉,打开 PhoenixCard.exe,按照以下进行设置:
完成设置后,点击烧录,直到出现如下面图片一样的现实就表明成功了
3.3 从TF卡启动Android,在PC上安装串口环境,使用putty
启动成功信息:
- base bootcmd=run setargs_mmc boot_normal
- bootcmd set setargs_mmc
- key 0
- recovery key high 6, low 4
- cant find fstbt value
- to be run cmd=run setargs_mmc boot_normal
- the user data'magic is bad
- WORK_MODE_BOOT
- WORK_MODE_BOOT
- [ 0.965]Hit any key to stop autoboot: 0
- read boot or recovery all
- [ 6.929]sunxi flash read :offset 4000000, 12287631 bytes OK
- [ 6.939]ready to boot
- [ 6.942]
- Starting kernel ...
- aw_pm_init: not support super standby.
- aw_pm_init: script_parser_fetch err.
- notice: ir_wakeup = 0.
- can't get item for emac_power gpio !
- [hdmi]hdmi module init
- ##fb init:w=1920,h=1080,fbmode=3
- init: reading config file
- init: -----------没找到sata节点,nand启动--------------
- init: logo match failed!fbsize = 8294400
- init: HDMI status = 1, try 10 times!TV status = 0
- init: start e2fsck listening...
- [hdmi]hdmi module init
- EXT4-fs (mmcblk0p12): VFS: Can't find ext4 filesystem
- init: buffer : /dev/block/mmcblk0p12[mmc-msg] sdc0 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
- init: do_umount: /data
- init: do_umount error = Invalid argument
- init: C_IN_START
- init: path = /dev/block/data
- init: do_umount: /cache
- init: dont need format /dev/block/UDISK
- init: dont need format /dev/block/private
- init: C_IN_START
- init: path = /dev/block/cache
- init: do_umount: /databk
- ir_init: ir_wakeup script_get_item error.
- ir_init: power_key script_get_item error.
- ir_init: ir_addr_code script_get_item error.
- failed to get gpio_para used information
- [sunxi_leds_init] request gpio188 failed
- init: untracked pid 1152 exited
- init: cannot find '/system/etc/install-recovery.sh', disabling 'flash_recovery'
- android_usb: already disabled
- init: using deprecated syntax for specifying property 'sys.usb.config', use ${name} instead
- init: using deprecated syntax for specifying property 'sys.usb.config', use ${name} instead
- sh
- root@android:/ #
- root@android:/ #