MYZR-I.MX6-DEMO Android5.1.1环境搭建

来自明远智睿的wiki
Admin讨论 | 贡献2017年6月26日 (一) 17:25的版本

跳转至: 导航搜索

安装ubuntu12.04(install ubuntu12.04)

(如果使用下载明远智睿的虚拟机,请直接跳到 下载源码并解压 这一节)
(if virtual machine downloaded from MYZR is going to be used,please skip to the section"download source code and decompress"
在这里建议用户使用64bit的ubuntu12.04的操作系统,已经真机编译验证过。
here it is recommended to users to use operating system of 64bit ubuntu12.04 of which has been proven in compilation by real machine

安装openjdk1.7(install openjdk1.7)

运行一下命令安装openjdk1.7
execute command to install openjdk1.7
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
sudo apt-get update
sudo apt-get install openjdk-7-jdk
$ sudo gedit /etc/profile
增加以下环境变量
add the following environment variables
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH:$JRE_HOME/bin
$ source /etc/profile
$ java –version
(看到版本为1.7.0_101就表示成功)
(when version 1.6.0_45 is seen,which represent a success)
MY I.MX6 DEMO Android5.1.1 1.png

安装编译Android系统所需要的库(install libraries needed to compile Android system)

(详细信息,请看网站http://source.android.com/source/initializing.html)
( for detailed information, please visit http://source.android.com/source/initializing.html))
$ 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 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
$ sudo apt-get install uuid uuid-dev
$ sudo apt-get install zlib1g-dev liblz-dev
$ sudo apt-get install liblzo2-2 liblzo2-dev
$ sudo apt-get install lzop
$ sudo apt-get install git-core curl
$ sudo apt-get install u-boot-tools
$ sudo apt-get install mtd-utils
$ sudo apt-get install android-tools-fsutils

下载源码并解压源码(download source code and decompress)

4.1下载源码(4.1 download source code)

登陆http://www.myzr.com.cn下载专区下载Android5.1源码
login downloads in http://www.myzr.com.cn to download source code of Android5.1
Android5.1.1的分卷压缩解压后的源码包:myzr_android-5.1.1.tar.bz2
source code package of Android5.1 sub-volume compression decompressed is :

解压源码(decompress source code)

$ mkdir ~/myandroid5.1
$ cd ~
$ tar -jxvf myzr_android-5.1.1_r1.tar.bz2

编译源码(Android系统)(compile source code(Android system))

设置环境变量(set environment variables)

$ export ARCH=arm
$ export CROSS_COMPILE=~/myandroid5.1/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi- $ export PATH=~/myandroid5.1/bootable/bootloader/uboot-imx/tools:$PATH

编译uboot(compile uboot)

$ cd ~/myandroid5.1/bootable/bootloader/uboot-imx
$ make distclean
$ make myimx6ek200-6q_android_defconfig (EK200-6Q-1G配置)
$ make myimx6ek200-6q_android_defconfig (EK200-6Q-1G configuration
或 $ make myimx6ek200-6q-2g_android_defconfig (EK200-6Q-2G配置)
or $ make myimx6ek200-6q-2g_android_defconfig (EK200-6Q-2G configuration
或 $ make myimx6ek200-6qp_android_defconfig (EK200-6QP-1G配置)
or $ make myimx6ek200-6qp_android_defconfig (EK200-6QP-1G configuration
或 $ make myimx6ek200-6s-1g_android_defconfig (EK200-6S-1G配置)
or $ make myimx6ek200-6s-1g_android_defconfig (EK200-6S-1G configuration
或 $ make myimx6ek200-6u_android_defconfig (EK200-6U-1G配置)
or $ make myimx6ek200-6u_android_defconfig (EK200-6U-1G configuration
或 $ make myimx6ek314-6q-2g_android_defconfig (EK314-6Q-2G配置)
or $ make myimx6ek314-6q-2g_android_defconfig (EK314-6Q-2G configuration
或 $ make myimx6ek314-6q_android_defconfig (EK314-6Q-1G配置)
or $ make myimx6ek314-6q_android_defconfig (EK314-6Q-1G configuration
或 $ make myimx6ek314-6u_android_defconfig (EK314-6U-2G配置)
or $ make myimx6ek314-6u_android_defconfig (EK314-6U-2G configuration
$ make

编译kernel(compile kernetl)

$ cd ~/myandroid5.1/kernel_imx
$ cp myzr.config .config
$ make uImage LOADADDR=0x10008000

编译bootimg (uImage和ramdisk)(compile bootimg (uImage and ramdisk))

$ cd ~/myandroid5.1
$ source build/envsetup.sh
$ lunch myimx6ek_6dq-user
$ make bootimage

编译system(compile system)

$ cd ~/myandroid5.1
$ source build/envsetup.sh
$ lunch myimx6ek_6dq-user
$ make
结果如下图所示:
results as the following figures showed
MY I.MX6 DEMO Android5.1.1 2.png
注意:生成的u-boot.imx在~/myandroid/bootable/bootloader/uboot-imx目录下,boot.img和recovery.img和system.img在~/myandroid/out/target/product/myimx6ek_6dq目录下。
note:u-boot.imx generated is in the directory of ~/myandroid/bootable/bootloader/uboot-imx,boot.img and recovery.img and system.img are in the directory of ~/myandroid/out/target/product/myimx6ek_6dq

启动环境变量设置(start up the setting of environment variables)

单屏显示(single screen display)

LVDS设置(LVDS setting)

setenv bootargs console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off vmalloc=256M androidboot.console=ttymxc0 consoleblank=0 androidboot.hardware=freescale cma=384M(不能用调试串口)
setenv bootargs console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off vmalloc=256M androidboot.console=ttymxc0 consoleblank=0 androidboot.hardware=freescale cma=384M(debug serial port can't be used)

setenv bootargs console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,bpp=32
video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off vmalloc=256M androidboot.console=ttymxc0 consoleblank=0 androidboot.hardware=freescale cma=384M androidboot.selinux=disabled androidboot.dm_verity=disabled(可以用调试串口)
setenv bootargs console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,bpp=32
video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off vmalloc=256M androidboot.console=ttymxc0 consoleblank=0 androidboot.hardware=freescale cma=384M androidboot.selinux=disabled androidboot.dm_verity=disabled(debug serial port can be used)

HDMI设置(HDMI setting)

setenv bootargs console=ttymxc0,115200 androidboot.console=ttymxc0 consoleblank=0 vmalloc=256M init=/init video=mxcfb0:dev=hdmi,1920x1080M@60,bpp=32 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off androidboot.hardware=freescale cma=384M
(不能用调试串口)
setenv bootargs console=ttymxc0,115200 androidboot.console=ttymxc0 consoleblank=0 vmalloc=256M init=/init video=mxcfb0:dev=hdmi,1920x1080M@60,bpp=32 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off androidboot.hardware=freescale cma=384M
(serial port can't be use)

setenv bootargs console=ttymxc0,115200 androidboot.console=ttymxc0 consoleblank=0 vmalloc=256M init=/init video=mxcfb0:dev=hdmi,1920x1080M@60,bpp=32 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off androidboot.hardware=freescale cma=384M
androidboot.selinux=disabled androidboot.dm_verity=disabled(可以用调试串口)
setenv bootargs console=ttymxc0,115200 androidboot.console=ttymxc0 consoleblank=0 vmalloc=256M init=/init video=mxcfb0:dev=hdmi,1920x1080M@60,bpp=32 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off androidboot.hardware=freescale cma=384M
androidboot.selinux=disabled androidboot.dm_verity=disabled(serial port can be used)

双屏显示(dual screen display)

LVDS+HDMI设置(LVDS+HDMI setting)

setenv bootargs console=ttymxc0,115200 androidboot.console=ttymxc0 consoleblank=0 vmalloc=256M init=/init video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:dev=hdmi,
1920x1080M@60,bpp=32 video=mxcfb2:off video=mxcfb3:off androidboot.hardware=freescale cma=384M (不能用调试串口)
setenv bootargs console=ttymxc0,115200 androidboot.console=ttymxc0 consoleblank=0 vmalloc=256M init=/init video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:dev=hdmi,
1920x1080M@60,bpp=32 video=mxcfb2:off video=mxcfb3:off androidboot.hardware=freescale cma=384M (serial port can't be used)

setenv bootargs console=ttymxc0,115200 androidboot.console=ttymxc0 consoleblank=0 vmalloc=256M init=/init video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:dev=hdmi,1920x1080M@60,bpp=32 video=mxcfb2:off video=mxcfb3:off androidboot.hardware=freescale cma=384M androidboot.selinux=disabled androidboot.dm_verity=disabled (可以用调试串口)
setenv bootargs console=ttymxc0,115200 androidboot.console=ttymxc0 consoleblank=0 vmalloc=256M init=/init video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:dev=hdmi,1920x1080M@60,bpp=32 video=mxcfb2:off video=mxcfb3:off androidboot.hardware=freescale cma=384M androidboot.selinux=disabled androidboot.dm_verity=disabled (serial port can be used)