【北京迅为】iTOP-i.MX6开发板使用手册第四部分固件编译第十四章非设备树Android4.4系统编译
可根据用户需求更换,百变定制,高端产品无忧!
迅为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,即是内核镜像。

相关文章:
【北京迅为】iTOP-i.MX6开发板使用手册第四部分固件编译第十四章非设备树Android4.4系统编译
可根据用户需求更换,百变定制,高端产品无忧! 迅为IMX6Q兼容四核商业级 、双核商业级、四核工业级 、更可提供i.MX6Q家族PLUS版本核心板。 核心板采用十层PCB沉金盲埋设计,更能保证电磁兼容与系统稳定。 公众号:迅为电…...
测评造假?Mistral首个多模态模型Pixtral 12B发布
测评造假?Mistral首个多模态模型Pixtral 12B发布! 近日,法国人工智能(AI)初创公司Mistral于9月11日宣布推出其首款多模态AI大模型——Pixtral 12B,成功吸引了全球科技界的广泛关注。这款集图像与文本处理能…...
【Java-简单练习题】
1.”AABBBCCC“>>"A2B3C3" public class Test6 {public static void main(String[] args) {String ns "AABBBCCCC";String retcompress(ns);System.out.println(ret);}public static String compress(String str) {StringBuilder ret new StringB…...
Notepad++ 下载安装教程
目录 1.下教程 2.安装教程 1.下教程 Downloads | Notepad (notepad-plus-plus.org) 进入下载地址后选择最新版点击连接 点击链接后,向下滑动,下载适合自己电脑版本的安装包 这里大家没有梯子可能打不开页面,可以直接从本文开头下载。 2.安…...
shader 案例学习笔记之smoothstep函数
参考:smoothstep 用来生成0-1的平滑过渡值 smoothstep函数源码实现: float smoothstep(float t1, float t2, float x) {// Scale, bias and saturate x to 0..1 rangex clamp((x - t1) / (t2 - t1), 0.0, 1.0); // Evaluate polynomialreturn x * x *…...
大模型的第一个杀手级应用场景出来了
大家终于都意识到大模型首先改变的是软件行业自己,而软件的根基是代码生成。代码生成第一波就是AI辅助开发,这个会是大模型第一个杀手级应用。大家苦苦逼问自己的大模型杀手级应用,为什么会是辅助编程,这里说下什么: 必…...
不允许有程序员不知道这款AI代码扩写工具
01CodeGeeX编程大模型 在介绍什么是codeGeeX之前,先上图。 想象一下,自己写代码的时候旁边有个专家助手,随时跟你解释前面别人写的代码是什么意思,有什么缺陷。在你自己写的时候也可以每一步进行代码提示和代码扩写,是…...
java 的list集合排序自定义元素
在 Java 中,可以对包含自定义元素的List集合进行排序。通常可以使用Collections.sort()方法结合自定义的比较器来实现。 一、定义包含自定义元素的类 假设我们有一个表示学生的类Student: class Student {private int id;private String name;private …...
【数学建模】2024数学建模国赛经验分享
文章目录 一、关于我二、我的数模历程三、经验总结: 一、关于我 我的CSDN主页:https://gxdxyl.blog.csdn.net/ 2020年7月(大二结束的暑假)开始在CSDN写作: 阿里云博客专家: 接触的领域挺多的ÿ…...
Scala尾递归解决爆栈问题
引言 我在上篇中详细的讲了递归的一系列问题,多路递归,爆栈问题,尾递归优化等,今天就实际演示一下尾递归是如何解决爆栈问题的,以及它的原理是什么? 支持尾递归优化的语言 尾递归是一种特殊的递归形式,如果…...
【观察者】设计模式:构建灵活且响应式的软件系统
引言 在软件开发中,我们经常面临需要在多个对象之间进行通信的挑战。特别是当一个对象的状态发生变化时,我们希望所有依赖于这个状态的对象都能自动更新。这就是观察者设计模式大显身手的地方。 简介 观察者模式是一种行为设计模式,它定义…...
开源网安斩获CCIA中国网络安全创新创业大赛总决赛三等奖
近日,由中央网信办指导,中国网络安全产业联盟(CCIA)主办的2024年中国网络安全创新创业大赛总决赛及颁奖典礼在国家网络安全宣传周落下帷幕。开源网安“AI代码审核平台CodeSec V4.0” 凭借在AI方向的技术创新、技术突破及功能应用创…...
进程的同步与互斥
目录 一、进程同步 二、进程互斥 1.临界资源访问代码: ①进入区 ②临界区 ③退出区 ④剩余区 注: 2.互斥准则: ①.空闲让进。 ②.忙则等待。 ③.有限等待。 ④.让权等待。 三、进程互斥的软件实现方法 1.单标志法 2.双标志先…...
基础的八股
JS this 全局:this指向window 函数:this指向window 对象:this指向调用它的 get、post的区别 1、写的地方不同:get在地址栏里 地址栏有多长就只能写多少、post在请求体里 没有上限 2、关于回退和刷新:get回退和刷新没问…...
使用Python从头开始创建PowerPoint演示文稿
目录 一、环境搭建与基础知识 1.1 环境搭建 1.2 基础知识 二、创建演示文稿对象 三、添加幻灯片 3.1 选择幻灯片布局 3.2 设置幻灯片内容 3.2.1 设置标题和副标题 3.2.2 添加文本内容 3.2.3 插入图片 3.2.4 插入图表 四、高级应用:批量生成演示文稿 4.…...
【C++ Primer Plus习题】15.4
大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream> #include "sales.h"…...
Pipeline Scheduling(UVA 690)
网址如下: Pipeline Scheduling - UVA 690 - Virtual Judge (vjudge.net) (第三方网站) 噫,好!我中了! 这题还是有点折磨的,刚开始我只会递归下一个程序运行的时间(范围在1~n&…...
萤石举办2024清洁机器人新品发布会 多维智能再造行业标杆
导言:作为智慧生活守护者,萤石今日发布了两款清洁机器人,AI扫拖机器人RS20 Pro Ultra 和AI洗地机器人RX30 Max ,标志着萤石在智能清洁领域的全新突破。RS20 Pro Ultra基于CutFree 2.0内切割滚刷专利,有效解决毛发缠绕难…...
企业级Ansible自动化运维项目案例:实战与技巧
在企业级的IT运维中,自动化已成为提高效率、减少人为错误和保证服务一致性的关键手段。Ansible作为一种简单但功能强大的自动化工具,广泛应用于配置管理、应用程序部署、任务自动化和IT编排。本文将通过一个企业级的Ansible自动化运维项目案例࿰…...
JavaSE-易错题集-005
1. 下面有关java object默认的基本方法,说法错误的是? A equals(Object obj) 指示某个其他对象是否与此对象“相等” B copy() 创建并返回此对象的一个副本 C wait() 导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyA…...
Agent 性能优化:降低 Token 消耗的 5 个技巧
Agent 性能优化:降低 Token 消耗的 5 个技巧系列文章: 《AI Agent 开发实战》第 7 期 难度等级: ⭐⭐⭐⭐ 预计耗时: 35 分钟🎯 本文目标 学会优化 AI Agent 性能: ✅ 减少 Token 消耗✅ 提高响应速度✅ 降…...
从零搭建SRS流媒体服务器:实现RTMP推拉流的实战部署指南
1. 为什么选择SRS搭建流媒体服务器? 最近几年直播和实时视频的需求爆发式增长,很多开发者都在寻找轻量高效的流媒体服务器方案。我测试过不少开源方案,最终发现SRS(Simple Realtime Server)是最适合个人和小团队自建的…...
开源bert-base-chinese应用:中文社交媒体谣言检测的语义表征建模
开源bert-base-chinese应用:中文社交媒体谣言检测的语义表征建模 1. 引言:当谣言遇上AI 你有没有在社交媒体上刷到过一些真假难辨的消息?比如“某地出现不明病毒”、“某食品含有致癌物”,这些信息往往传播迅速,让人…...
Windows系统优化新范式:Win11Debloat技术原理与实践指南
Windows系统优化新范式:Win11Debloat技术原理与实践指南 【免费下载链接】Win11Debloat 一个简单的PowerShell脚本,用于从Windows中移除预装的无用软件,禁用遥测,从Windows搜索中移除Bing,以及执行各种其他更改以简化和…...
Avalonia跨平台开发踩坑记:我的第一个带最小化/关闭按钮的MVVM应用
Avalonia跨平台开发实战:从零构建MVVM窗口控制应用 第一次接触Avalonia时,我被它"一次编写,多平台运行"的承诺所吸引。作为一个长期使用WPF的开发者,跨平台桌面应用开发一直是个痛点。但当我真正开始用Avalonia实现一个…...
别再被ToggleGroup坑了!手把手教你写一个不自动选首项的CustomToggleGroup组件(附完整代码)
深度定制Unity ToggleGroup:打造无默认选中行为的智能组件 引言 在Unity UI开发中,ToggleGroup组件是构建选项卡式界面的常见选择,但许多开发者都遇到过这样的困扰:当ToggleGroup激活时,系统总会自动选中第一个Toggle项…...
5分钟搞定:用OpenAI Function Calling自动生成Python函数(附Gmail API实战代码)
5分钟实战:用OpenAI Function Calling生成Gmail自动化脚本 每次对接Gmail API都要翻文档写重复代码?试试这个方案——用自然语言描述需求,让AI直接生成可运行的生产级代码。下面这段完整代码就是AI生成的成果,包含错误处理、类型…...
实用扩散模型完整指南:100行代码实现高效图像生成
实用扩散模型完整指南:100行代码实现高效图像生成 【免费下载链接】Diffusion-Models-pytorch Pytorch implementation of Diffusion Models (https://arxiv.org/pdf/2006.11239.pdf) 项目地址: https://gitcode.com/gh_mirrors/di/Diffusion-Models-pytorch …...
SpringBoot+Vue实战:手把手教你搭建社区居民健康档案管理系统(附完整源码)
SpringBootVue实战:从零构建社区居民健康档案管理系统 在数字化转型浪潮下,社区卫生服务正经历着从纸质档案到智能化管理的转变。对于Java开发者而言,这不仅是技术练兵的好机会,更是解决实际社会需求的切入点。本文将带你用Spring…...
OpenGL之标准化设备坐标(Normalized Device Coordinate =NDC)
NDC坐标本质是比例1. 设备无关性NDC 使图形渲染与屏幕分辨率无关。无论屏幕是 1280720 还是 19201080,同样的 NDC 坐标都会渲染出相同比例的图形(图形会随着分辨率变化而自动拉伸),表现如下:┌────────────…...
