首页 > 其他分享 >【北京迅为】iTOP-i.MX6开发板使用手册第四部分固件编译第十四章非设备树Android4.4系统编译

【北京迅为】iTOP-i.MX6开发板使用手册第四部分固件编译第十四章非设备树Android4.4系统编译

时间:2024-09-12 15:13:35浏览次数:7  
标签:android4.4 Android4.4 编译 iTOP 使用手册 所示 iMX6

 

可根据用户需求更换,百变定制,高端产品无忧!

 

迅为IMX6Q兼容四核商业级 、双核商业级、四核工业级 、更可提供i.MX6Q家族PLUS版本核心板。

核心板采用十层PCB沉金盲埋设计,更能保证电磁兼容与系统稳定。

 

公众号:迅为电子 

-----------------------------------------

 

 

 

 

第十四章 非设备树 Android4.4 系统编译

设备树简单理解就是描述设备信息(资源)的一棵树,如下图所示。那么本章节编译的 Android4.4 描述设备信息不是采用设备树的形式,而是采用传统的方式描述设备。

 

 

 

 

Android4.4 源码在网盘目录“iTOP-i.MX6Q 开发板\IMX6Q 非设备树内核光盘资料(刻盘)\V2.6 底板\20200703(最新日期)\imx6q android4.4 光盘资料\04 源码_android 4.4 文件系统”下。

本章节是在迅为提供的“搭建好的 Ubuntu12.04 环境。”基础上进行编译的,如果您使用的 Ubuntu 编译环境不是迅为提供的,请参考第十三章节进行搭建或者自行百度。

14.1 整体编译 Android4.4

本节介绍如何将 Android 4.4 源码整体编译,即将 uboot,kernel,Android 镜像一次性全部编译出来。

注意的问题编译 Android 系统必须保证给 Ubuntu 系统提供 4G 以上内存。这里“提供 4G 以上内存”的意思,不仅仅是指在 VMware Workstations 虚拟机中设置分配 4G 内存。例如,用户在编译的时候,PC 机的内存一共是 6G,在虚拟机中设置分配 4G 内存,但是在 Windows 系统下,开着 QQ,杀毒软件,音乐播放器,浏览器等等,这样在 Windows 下占用的内存就快 2G 了,那么虚拟机会自动调整到只占用 2G,甚至不到 2G 的内存,这样就有可能没法编译通过。

正确的分配内存方法是,首先给虚拟机分配 4G 以上内存,然后在 Windows 下关掉尽量多的不必要的应用,关掉尽量多应用的后台程序。

1 输入以下命令查看 java 的版本,如果显示版本是 1.6 版本则设置 jdk 版本成功,如果设置失败请参考第十 三章 13.2.3 章节安装 jdk ,java -version

 

 

 

2 Android4.4 压缩包要先在 windows 下解压,解压之后得到单独的压缩包

iTOP-iMX6_android4.4.2_20200703.tar.gz,如下图所示:

 

 

 

 

3 将账户切换为 root 用户,将“iTOP-iMX6_android4.4.2_20200703.tar.gz”压缩包(使用最新日期的 压缩包即可)解压到 Ubuntu 下,作者放在了 Ubuntu 的/home/topeet/imx6 目录下,

 

4 使用以下命令解压源码,如下图所示:

tar -vxf iTOP-iMX6_android4.4.2_20200703.tar.gz

5 解压之后得到“iTOP-iMX6_android4.4.2”文件夹,

6 如下图所示,使用 ls 命令,可以看到编译脚本“create.sh”。

 

 

 

 

create.sh_imx6q 是编译 ITOP-IMX6Q(工业级 1G+8G)和 TOP-IMX6Q(商业级 2G+16G)的脚本,

create.sh_imx6dl 是编译 ITOP-IMX6D(商业级 1G+8G)的脚本。

我们在编译之前要根据自己手里核心板的型号选择对应的编译脚本,然后覆盖掉编译脚本 create.sh,如下表所示:

 

 

 

 

 

7 ITOP-IMX6Q(商业级 2G+16G) 整体编译 Android4.4

8 ITOP-IMX6D(商业级 1G+8G) 整体编译 Android4.4

9 ITOP-IMX6Q(工业级 1G+8G) 整体编译 Android4.4

10 编译完成之后,

 

 

11 输入以下命令进入镜像目录,使用 ls 命令,可以看到生成了“u-boot.bin”,“boot.img”,“system.img”, “recovery.img”等镜像文件,cd out/target/product/topeet_6dq

ls

 

14.2 单独编译 uboot

1 进入源码解压得到的“/iTOP-iMX6_android4.4.2/bootable/bootloader/uboot-imx/”目录下,如下图所示,可以看到脚本“build_uboot.sh”。

2 请大家工具自己手里的核心板型号,输入编译命令,如下表所示,一种颜色的代码代表一条命令:

 

 

 

 

 

 

 

 

 

3 ITOP-IMX6Q(商业级 2G+16G)单独编译 uboot,

4 ITOP-IMX6D(商业级 1G+8G)单独编译 uboot,

5 ITOP-IMX6Q(工业级 1G+8G)单独编译 uboot,

6 编译完成,如下图所示,生成了“u-boot.bin”文件,就是 uboot 的镜像。

 

14.3 单独编译 Android4.4 内核

1 如果我们只需要单独编译 Android4.4 kernel,则进入源码解压的 iTOP-iMX6_android4.4.2/kernel_imx

目录下,

2 不区分核心板的型号,全部使用以下命令开始编译内核 。

./build_android_kernel.sh

3 如下图所示,开始编译。

4 如下图所示,编译完成。

 

 

 

 

5 如下图所示,在“iTOP-iMX6_android4.4.2/kernel_imx/arch/arm/boot”目录下生成 uImage,即是内核镜像。

6 但是 iMX6 的内核烧写文件比较特殊,需要再次经过打包压缩,所以还需要重新运行整体编译 android 4.4的脚本,才能生成“boot.img”,android 编译一次之后,后面编译就非常快了。整体编译 android 4.4

请参考 14.1 章节整体编译 Android4.4。

 

 

14.4 单独编译 Linux 内核

编译出来的 Linux 内核镜像适用于 QT,最小文件系统,

Ubuntu12.04,Debian,Yocto 系统,和 Android4.4

公用一套源码。

1 如果我们需要单独编译 Linux 系统用的内核镜像,则进入源码“iTOP-iMX6_android4.4.2/kernel_imx”

目录下,

2 使用以下命令,开始编译内核,如下图所示:

./build_qt_kernel.sh

3 开始编译,

4 编译完成,

5 如下图所示,在“iTOP-iMX6_android4.4.2/kernel_imx/arch/arm/boot”目录下生成 uImage,即是内核镜像。

 

 

标签:android4.4,Android4.4,编译,iTOP,使用手册,所示,iMX6
From: https://www.cnblogs.com/topeet/p/18410237

相关文章

  • 0. 编译错误解决
    1.WARNING:Makefile'package/utils/busybox/Makefile'hasadependencyon'libpam',whichdoesnotexistWARNING:Makefile'package/utils/busybox/Makefile'hasadependencyon'libpam',whichdoesnotexistWARNING......
  • 银河麒麟服务器V10 编译升级安装 OpenSSH_9.8p1+OpenSSL 3.3.0+zlib1.3.1
    测试镜像Kylin-Server-V10-SP3-2403-Release-20240426-x86_64.iso #安装必备和常用软件包yum-yinstallgccmakevimwgettelnetnet-toolstcpdumptarperlnc #安装zlib./configure--prefix=/usr/local/zlibmake&&makeinstall #安装openssl./confi......
  • Python编译器IDE爬虫爬取3首歌曲代码
    importrequestssong_urls=[“http://music.163.com/song/media/outer/url?id=25795016.mp3”,“http://music.163.com/song/media/outer/url?id=5255631.mp3”,“http://music.163.com/song/media/outer/url?id=5255640.mp3”]forindex,song_urlinenumerate(so......
  • 手机安卓版Python编译器IDE彩色音乐播放器代码
    importpygameimporttkinterastkfromtkinterimportfiledialog初始化pygamepygame.mixer.init()current_song_index=0defplay_music():selected_indices=song_list.curselection()ifselected_indices:globalcurrent_song_indexcurrent_song_index=......
  • lazarus交叉编译riscv64应用时编译出错取巧处理方法
    lazarus交叉编译riscv64应用时自带的memdataset/lazreporr等控件如果使用到formeditingintf.pas时链接时出现出类以下提示的错误:这是fpc引起的问题,也提交给lazarus/fpc官方,不知道啥能修复(希望官方最快修复这个Bug)。以下是网友英分享的修复方法(但本方法部分控件还存在链接问题),常......
  • Jenkins 编译 .NET 6 WPF
    最近公司需求要将产品编译自动化,干了那么多年客户端开发一直都是小作坊作业最近换了一个比较正规的互联网公司一切都需要标准化流程化了,自动化也必不可少!然后我就了解到了Jenkins这玩意,找了两天资料感觉还挺简单的写篇文章收录下。因为签名UKey只要windows驱动,所以我只能将环境......
  • gcc / g++ 编译的区别
    今天在群里聊天的时候突然发现自己叫不清楚gcc/g++这两个东西。于是学习并且进行总结分享一下。GCC:GNUCompilerCollectionGNU编译器集合。那么GNU又是什么呢?是一个操作系统!具体涉及到一些历史知识和开源运动,放入下面的链接里啦https://www.gnu.org/home.zh-cn.html所以......
  • rsync 学习笔记(一)编译
    一、背景 rsync二进制程序依赖外部库,由于安全问题,有时会单独升级依赖的外部库。另外为了防止因为栈溢出攻击导致服务器被黑,需要对rsync及其依赖的外部库重新编译,开启安全编译选项,增加黑客破解的复杂度。 所有的库编译必须要求加上如下编译选项:栈保护(-fstack-protector-al......
  • 痞子衡嵌入式:在MDK开发环境下自定义安装与切换不同编译器版本的方法
    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是在MDK开发环境下自定义安装与切换不同编译器版本的方法。KeilMDK想必是嵌入式开发者最熟悉的工具之一了,自2005年Arm公司收购Keil公司之后,MDK就走上了发展快车道,从v2.50a一路狂奔到现在最新的v......
  • 使用dnSpyEx对.NET Core程序集进行反编译、编辑和调试
    前言说到.NET相关的反编译工具大家脑海里第一个想到的工具是什么?ILSpy、dnSpy、还是dotPeek?咱们今天的主要内容是讲讲dnSpyEx(dnSpyEx是dnSpy项目的非官方Fork维护版本)这个开源的.NET程序集反编译、编辑和调试工具该如何使用。4款免费且实用的.NET反编译工具.NET反编译神器ILSpy怎么......