大家好,又见面了,我是你们的朋友全栈君。
板子买了一段时间,终于有时间可以玩玩了,论坛上找浪费了很多时间。把虚拟机环境搭建起来,编译好镜像就可以直接使用烧写工具烧写到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
将其解压到/work/tools目录下,然后修改etc/profile文件设置一些环境配置变量,添加以下配置变量:
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:
export PATH=JAVA_HOME/bin:JRE_HOME/bin:
然后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.4 然后安装交叉编译工具工具链:
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
2.3 拷贝配置文件:
$cd lichee
$cp linux-3.4/arch/arm/configs/cubieboard2_config linux-3.4/.config
2.4 编译内核
./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
2.6 编译和打包:将uboot、kernel、rootfs等镜像打包成img文件
$extract-bsp
$make -j8
$pack
最后会打印固件生成的位置,以下为我的固件生成的位置:/lichee/tools/pack/sun7i_android_sugar-cubieboard2.img
三、使用烧写工具将固件烧入到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 foremac_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, try10 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: usingdeprecatedsyntaxforspecifying property’sys.usb.config’, use ${name} instead
init: usingdeprecatedsyntaxforspecifying property’sys.usb.config’, use ${name} instead
sh
root@android:/ #
root@android:/ #
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/163029.html原文链接:https://javaforall.cn