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

cubieboard2 android,在cubieboard2双卡版上从零构建Android4.2.2系统「建议收藏」板子买了一段时间,终于有时间可以玩玩了,论坛上找浪费了很多时间。把虚拟机环境搭建起来,编译好镜像就可以直接使用烧写工具烧写到TF卡上了。由于买的是双TF卡插槽,没有nand,所以只能在TF卡上制作镜像了。制作过程参考官方文档,好好总结一下,一来以后自己再做时图懒图方便,二来可以方便后来人。主要可以分为一下几个步骤:一、搭建编译环境可以在XP或win7系统上安装虚拟机,在虚拟机中安装交叉编译工具来编…

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

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

34128833

完成设置后,点击烧录,直到出现如下面图片一样的现实就表明成功了

34128833

3.3 从TF卡启动Android,在PC上安装串口环境,使用putty

34128833

启动成功信息:

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.net/163029.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • struts2拦截器详解_拦截和修改tcp数据

    struts2拦截器详解_拦截和修改tcp数据Struts2中的拦截器和servelt中的过滤器是非常的相似的。如果学过过滤器的话,肯定能够感觉的到,尽管有些微的不同。可是struts2的拦截器到底如何使用呢,为什么会有这些配置呢?接下来一一来看。 过滤器和拦截器是非常相似的,过滤器publicinterfaceFilter接口里面有三个方法: init(FilterConfigfilterConfig),des

    2022年9月28日
    2
  • C语言开发MicroPython模块(添加module)

    C语言开发MicroPython模块(添加module)MicroPython 添加模块框架模式相对简单 只需要按照定义好的固定框架就可以添加模块 module 一 向固件里面添加 module1 1 编写 mymodule c 文件 在 ports esp32 文件夹下新建一个文件 mymodule c 文件内输入如下内容 include stdint h include stdio h include py obj h include py runtime h STATICmp obj tmp my test functio

    2025年6月3日
    4
  • STMS中QAS->PRD通信不畅[通俗易懂]

    STMS中QAS->PRD通信不畅[通俗易懂]现象:DEV->QAS->PRD的传输域配置中,DEV->QAS正常,PRD也可以检测到DEV释放的请求,但是就是无法将请求内容添加(闪电标识)至PRDbuffer。将请求文件copy至PRD的trans目录下,上载成功,导入成功。1.怀疑,PRD的\usr\sap的权限,确认也有写入权限2.怀疑QAS和PRD的通信,可以ping通3.STMS传

    2022年6月28日
    30
  • idea2022 3.4激活码【2022免费激活】[通俗易懂]

    (idea2022 3.4激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html40ZKSWCX8G-eyJsaWNlbnNlSW…

    2022年4月2日
    79
  • java中byte的用法_澄清池的工作原理

    java中byte的用法_澄清池的工作原理缓冲区在计算机世界中随处可见,内存中的多级缓冲区,io设备的缓冲区等等,还有我们经常用的内存队列,分布式队列等等。缓冲区,平衡了数据产生方和数据消费方的处理效率差异,提高了数据处理性能。JDK为了解决网络通信中的数据缓冲问题,提供了ByteBuffer(heap或者直接内存缓存)来解决缓存问题,通过缓冲区来平衡网络io和CPU之间的速度差异,等待缓冲区积累到一定量的数据再统一交给CPU去处理,从而…

    2022年9月19日
    4
  • var let const作用域_实例变量用什么声明

    var let const作用域_实例变量用什么声明读《全局作用域中,用const和let声明的变量去哪了?》

    2022年4月21日
    54

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号