前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >cubieboard2 android,在cubieboard2双卡版上从零构建Android4.2.2系统「建议收藏」

cubieboard2 android,在cubieboard2双卡版上从零构建Android4.2.2系统「建议收藏」

作者头像
全栈程序员站长
发布2022-09-16 15:27:30
1.5K0
发布2022-09-16 15:27:30
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

板子买了一段时间,终于有时间可以玩玩了,论坛上找浪费了很多时间。把虚拟机环境搭建起来,编译好镜像就可以直接使用烧写工具烧写到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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档