Chapter 2 Build Tools and Installation
第2章 构建工具和安装

This chapter lists the build tools. It also describes how to install
the Linux kernel source, the Android platfor, the OpenMAX IL core, and the libjpeg headers. it contains the following sections:
2.1 Tools on page 2-18
2.2 Linux kernel source on page 2-19
2.3 Android paltform on page 2-20
2.4 Installing the DDK on page 2-21
2.5 OpenMAX IL core on page 2-24
2.6 libjpeg headers on page 2-25

本章列出了构建工具。 它还描述了如何安装Linux内核源代码,Android平台,OpenMAX IL内核以及libjpeg标头。它包含以下部分:
2.1 工具 第2-18页
2.2 Linux内核源代码 第2-19页
2.3 Android 平台 第2-20页
2.4 安装DDK 第2-21页
2.5 OpenMAX IL内核 第2-24页
2.6 libjpeg标头 第2-25页

2.1 Tools
ARM recommends that you use the following tools and versions to build the DDK:
1.GNU tar
GNU tar version 1.14 or later is required to unpack the deliverables.
2.SCons
SCons version 2.3.0 or later is required. The deliverables have been tested using version 2.3.0.you can download SCons from http://www.scons.org
3.GCC for ARM v7 Linux
GNU toolchain,Sourcery G++ Lite for ARM GNU Linux version 2011.03-41.You can download the toolchain from http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/overview/
4.GCC for ARM v8 Linux
CNU toolchain,aarch64-linux-gnu version 4.8-2014.04. You can download the toolchain from http://releases.linaro.org/14/04/components/toolchain/binaries/
5.GNU Make
GNU Make version 3.81 is required to build the Linux kernel
objects.The Linux kernel objects use the Linux kernel build system from SCons.
6.Doxygen
Doxygen version 1.6.2 or later is required to generate source code documentation.

2.2 Linux kernel source
Android requires a Linux kernel source tree to build the kernel objects.You can download the mainline kernel source from http://kernel.org. You can download kernels with all Android patches applied from https://android.googlesource.com/
The required Linux kernel source tree version depends on your target platform.ARM has tested the software with the Linux kernel source tree versions 3.4,3.6,3.10,3.15,and 3.18.
2.2 Linux内核源码
Android需要Linux内核源代码树来构建内核对象。您可以从http://kernel.org下载mainline内核源代码。
您可以从https://android.googlesource.com/下载带有所有Android补丁的内核。
所需的Linux内核源树版本取决于您的目标平台。ARM已使用Linux内核源树版本3.4、3.6、3.10、3.15和3.18对软件进行了测试。

2.3 Android platform
A fully built Android platform source tree is required to build the user-side components.The video driver supports Android 5.0.0_r2 and 6.0.0_r1. You can download the platform source from: http://source.android.com
2.3 Android平台
需要完整的Android平台源代码树来构建用户端组件。视频驱动程序支持Android 5.0.0_r2和6.0.0_r1。 您可以从以下位置下载平台源:http://source.android.com。

2.4 installing the DDK
You must follow this set of instructions to install the DDK. These sections take you through the process of unpacking the deliverable,and downloading the additional required components,including patches.ARM recommends that you follow these steps in sequence. This section contains the following subsections:
2.4.1 Unpacking the deliverable on page 2-21
2.4.2 Downloading firmware on page 2-22
2.4.3 Downloading OpenMAX IL API headers on page 2-22

2.4安装DDK
您必须按照以下说明安装DDK。 这些小节将指导您完成可交付成果的包装,并下载包括补丁程序在内的其他必需组件。ARM建议您按顺序执行这些步骤。 本节包含以下小节:
2.4.1交付物品包装 第2-21页
2.4.2下载固件 第2-22页
2.4.3下载OpenMAX IL API标头 第2-22页

2.4.1 Unpacking the deliverable
Extract the downloaded archive into the directory vendor/arm/v5xx of the Android source code tree.
tar -xzvf <download_name>.tgz
When you unpack the tarball,it unpacks into mali_video/driver as shown in the following figure.

mali_video/
--------documentation/
--------driver/
-------------android/
-------------bldsys/
-------------documentation/
-------------fw/
-------------instr/
-------------kernel/
-------------kwrap/
-------------libjpeg_hw/
-------------malisw/
-------------mem/
-------------omx_components/
-------------sconscript
-------------sconstruct
-------------test/
-------------tpi/
-------------utf/
-------------util/
Figure 2-1 mali_video/driver unpacked

2.4.1打开交付品的包装
将下载的存档解压缩到Android源代码树的目录vendor / arm / v5xx中。 tar -xzvf <下载名称> .tgz 解压缩tarball时,将其解压缩到mali_video / driver中,如下图所示。
mali_video/
--------documentation/
--------driver/
-------------android/
-------------bldsys/
-------------documentation/
-------------fw/
-------------instr/
-------------kernel/
-------------kwrap/
-------------libjpeg_hw/
-------------malisw/
-------------mem/
-------------omx_components/
-------------sconscript
-------------sconstruct
-------------test/
-------------tpi/
-------------utf/
-------------util/
图 2-1 mali_video/driver unpacked

You must copy or move the driver directory into the Android tree as
vendor/arm/v5xx. The following figure shows the structure when you
copy or move the driver directory: aosp root/(Android open source
project root)
--------" Android folders"
--------vendor/
---------------arm/
--------------------v5xx/
-------------------------android/
-------------------------bldsys/
-------------------------documentation/
-------------------------fw/
-------------------------instr/
-------------------------kernel/
-------------------------kwrap/
-------------------------libjpeg_hw/
-------------------------malisw/
-------------------------mem/
-------------------------omx_components/
-------------------------sconscript
-------------------------sconstruct
-------------------------test/
-------------------------tpi/
-------------------------utf/
-------------------------util/
Figure 2-2 Android tree after adding the driver directory

您必须将驱动程序目录作为vendor / arm / v5xx复制或移动到Android树中。 下图显示了复制或移动驱动程序目录时的结构:
aosp root/(Android open source project root)
--------" Android folders"
--------vendor/
---------------arm/
--------------------v5xx/
-------------------------android/
-------------------------bldsys/
-------------------------documentation/
-------------------------fw/
-------------------------instr/
-------------------------kernel/
-------------------------kwrap/
-------------------------libjpeg_hw/
-------------------------malisw/
-------------------------mem/
-------------------------omx_components/
-------------------------sconscript
-------------------------sconstruct
-------------------------test/
-------------------------tpi/
-------------------------utf/
-------------------------util/
图 2-2 添加驱动程序目录后的Android树

2.4.2 Downloading firmware
Downloading the firmware archive and extract it into the same folder as the DDK deliverable.
2.4.2下载固件
下载固件档案并将其解压缩到与DDK可交付产品相同的文件夹中。

2.4.3 Downloading OpenMAX IL API headers
Particular versions of the OpenMAX IL API headers are required for the unit tests and the Android user-side components.

Table 2-1 OpenMAX IL API headers versions
OpenMAX IL API headers version Required for

1.1.2 Android user-side components
1.2.0 Unit tests

The Khronos headers files must be downloaded from:
http://www.khronos.org/registry/omxil/

Table 2-2 OpenMAX IL API headers archive location OpenMAX IL API
header archive Extract to

1.1.2 khronos/original/OMXIL/1.1.2
1.2.0 khronos/original/OMXIL/1.2.0

Download and unpack the header archives to the directories named in the table.The paths are relative to the v5xx directory.
Patching the OpenMAX IL headers
You must patch the OMX_Types.h for OpenMAX IL 1.2.0 and 1.1.2 to support 64-bit compilation.
The reason is that OMX_U32 and OMX_S32 are defined using the C type long. This is a 64-bit type when compiling for arm_v8.

1.1.2/OMX_Types.h
Change the type definitions of OMX_U32 and OMX_S32 to be (unsigned) int rather than (unsigned) long
1.2.0/OMX_Types.h
Change the type definitions of OMX_U32 and OMX_S32 to be (unsigned) int rather than (unsigned) long
If CONFIG_64BIT is defined, then type definition of OMX_PTR to be an (unsigned) long
Modify the type definition of OMX_STRING to be a OMX_PTR.
If CONFIG_64BIT is not set,then both OMX_PTR and OMX_STRING must retain their default definitions. By default CONFIG_64BIT is not set in the file.Use #ifdef to determine the correct behavior.
#ifdef CONFIG_64BIT
typedef unsigned long OMX_PTR;
typedef OMX_PTR OMX_STRING;
#else
typedef void* OMX_PTR;
typedef char *OMX_STRING;
#endif
Create the following symbolic links:
1.1.2/OMX
Creaete the symbolic link 1.1.2/OMX,that points to the 1.1.2 folder.
pushd khronos/original/OMXIL/1.1.2/
ln -s . OMX
popd
1.2.0/OMX
Create the symbolic link 1.2.0/OMX,that points to the 1.2.0 folder.
pushd khronos/original/OMXIL/1.2.0/
ln -s . OMX
popd

2.4.3下载OpenMAX IL API头文件
单元测试和Android用户端组件需要特定版本的OpenMAX IL API头文件。
表 2-1 OpenMAX IL API 头文件版本
OpenMAX IL API headers version Required for

1.1.2 Android user-side components
1.2.0 Unit tests

必须从以下位置下载Khronos头文件:
http://www.khronos.org/registry/omxil/

表2-2 OpenMAX IL API标头存档位置OpenMAX IL API
头文件解压缩到

1.1.2 khronos/original/OMXIL/1.1.2
1.2.0 khronos/original/OMXIL/1.2.0

将头文件下载并解压缩到表中命名的目录中。这些路径是相对于v5xx目录的。
修补OpenMAX IL头文件
必须为OpenMAX IL 1.2.0和1.1.2修补OMX_Types.h,以支持64位编译。
原因是使用C类型long定义了OMX_U32和OMX_S32。 为arm_v8编译时,这是64位类型。

1.1.2/OMX_Types.h
将OMX_U32和OMX_S32的类型定义更改为(unsigned)int而不是(unsigned)long
1.2.0/OMX_Types.h
将OMX_U32和OMX_S32的类型定义更改为(unsigned)int而不是(unsigned)long
如果定义了CONFIG_64BIT,则OMX_PTR的类型定义为 (unsigned) long
将OMX_STRING的类型定义修改为OMX_PTR。
如果未设置CONFIG_64BIT,则OMX_PTR和OMX_STRING都必须保留其默认定义。 默认情况下,未在文件中设置CONFIG_64BIT。使用#ifdef确定正确的行为。
#ifdef CONFIG_64BIT
typedef unsigned long OMX_PTR;
typedef OMX_PTR OMX_STRING;
#else
typedef void* OMX_PTR;
typedef char *OMX_STRING;
#endif
Create the following symbolic links:
1.1.2/OMX
创建指向1.1.2文件夹的符号链接1.1.2 / OMX.
pushd khronos/original/OMXIL/1.1.2/
ln -s . OMX
popd
1.2.0/OMX
创建指向1.2.0文件夹的符号链接1.2.0 / OMX.
pushd khronos/original/OMXIL/1.2.0/
ln -s . OMX
popd

2.5 OpenMAX IL core
The purpose of the core is to expose the OMX components registered with the core to a client,in this case Android.The DDK includes a basic OpenMAX IL core along with Android integration code you can use.
The included core only supports ARM OMX components.If you need to support OMX components from other vendors,then you need to write a core or use an existing third party core.
2.5 OpenMAX IL 内核
内核的目的是向客户端(在本例中为Android)公开向内核注册的OMX组件。DDK包含基本的OpenMAX IL内核以及可使用的Android集成代码。
包含内核仅支持ARMOMX组件。如果需要支持其他供应商的OMX组件,则需要编写一个内核或使用现有的第三方内核。

2.6 libjpeg hearders
You must download and configure the libjpeg headers or use the Android pre-configured headers.
Obtain the source-code for libjpeg release v6b from the libjpeg website http://ijg.org
1.Unpack the jpegsrc.v6b.tar.gz file somewhere in your filesystem.
2.Create the folder thirdparty/libjpeg int the drive top-level folder.
3.Copy the libjpeg header files into thirdparty/libjpeg.
4.You must configure libjpeg,see http://ijg.org for details. Android has pre-configured headers in its source-tree as an
alternative to downloading and configuring explicitly for the ARM Mali Video Processor Android DDK.

2.6 libjpeg头文件
您必须下载并配置libjpeg头文件,或使用Android预先配置的头文件。
从libjpeg网站http://ijg.org获取libjpeg发行版v6b的源代码
1.将jpegsrc.v6b.tar.gz文件解压缩到文件系统中的某个位置。
2.在驱动器顶级文件夹中创建 thirdparty/ libjpeg文件夹。
3.将libjpeg头文件复制到thirdparty / libjpeg中。
4.您必须配置libjpeg,有关详细信息,请参见http://ijg.org。 Android在其源代码树中已预先配置了头文件,以替代为ARM Mali视频处理器Android DDK明确下载和配置。

Mail_Android_Video_SW_DDK_Intergration_Guide_And_Codec_User_Manual中文翻译【chapter2】相关推荐

  1. YOLOv4全文阅读(全文中文翻译)

    YOLOv4全文阅读(全文中文翻译) YOLOv4: Optimal Speed and Accuracy of Object Detection 论文链接: https://arxiv.org/pd ...

  2. ctypealpha php_php ctype函数中文翻译和示例

    PHP Ctype扩展是PHP4.2开始就内建的扩展,注意,Ctype系列函数都只有一个字符串类型参数,它们返回布尔值. $str = "0.1123"; //检查字符串所有字符是 ...

  3. sound.js # pixi辅助插件 — 中文翻译教程

    本篇博客为中文翻译博客,转载请注明出处 sound.js-pixi的交互性插件[版本3.0.11] 安装配置 加载声音文件 初始化加载的声音 播放和控制加载的声音 更改回放速率 添加回声 添加混响 产 ...

  4. jBPM3.12用户指南中文翻译----第一章 绪论

    这是Jboss 的jBPM3.12框架的用户指南的中文翻译.其中第一章的译文,是我在网上找到的.其他几章都是我自己做的翻译.我的翻译是中英文对照,只翻译部分我认为重要的,不翻译简单的英文,以免浪费你我 ...

  5. magento工具PHP语言,Magento2建立中文翻译语言包

    今天要教大家 在 Magento2 系统中建立中文翻译的语言包 我们要在系统上开始建立语言包,首先先确认 /app/i18n/ 文件夹是否存在? 若不存在就请建立此文件夹 接着建立文件夹 /app/i ...

  6. 【转】关于HTTP中文翻译的讨论

    http://www.ituring.com.cn/article/1817 讨论参与者共16位: 图灵谢工 杨博 陈睿杰 贾洪峰 李锟 丁雪丰 郭义 梁涛 吴玺喆 邓聪 胡金埔 臧秀涛 张伸 图钉派 ...

  7. python的中文翻译-再聊聊Python中文社区的翻译

    在写<学习Python,怎能不懂点PEP呢?>的时候,我已经发现国内的Python翻译环境不容乐观.这个结论可能不对,毕竟这几年Python大热,或许有不少优秀的翻译项目,只是我还不知道而 ...

  8. 《Swift编程语言教程》中文翻译及读书笔记page21

    <The Swift Programming Language>中文翻译及读书笔记,附件中为英文原版教程 因21页之前内容和技术关系不大,不做翻译整理,从第21页开始 第21页 1 swi ...

  9. 《Introduction to Tornado》中文翻译计划——第五章:异步Web服务

    http://www.pythoner.com/294.html 本文为<Introduction to Tornado>中文翻译,将在https://github.com/alioth3 ...

  10. Deep Learning 中文翻译

    Deep Learning 中文翻译 在众多网友的帮助和校对下,草稿慢慢变成了初稿.尽管还有很多问题,但至少90%的内容是可读的,并且是准确的. 我们尽可能地保留了原书Deep Learning中的意 ...

最新文章

  1. shlve模块 序列化 python任意的数据
  2. 程序员智力面试题(一)
  3. Python可变与不可变类型及垃圾回收机制
  4. ehcache缓存原理_干掉GuavaCache:Caffeine才是本地缓存的王
  5. vue 表单 input checkbox
  6. Qt6程序打包(如何解决Qt程序在其他电脑上无法运行的问题)
  7. 管理感悟:能图像不文字
  8. 最新MATLAB超详细安装教程(附完整文件)
  9. 行测题相关,在线测评(图形找规律。逻辑思维)
  10. java微信公众号百度地图,微信公众号集成百度地图api,实现收货地址选择
  11. 订单量排行 php,订单量增速最快B2C电商未来电子商务的趋势网站
  12. [车联网安全自学篇] Android安全之Android so文件分析「详细版」
  13. 解决Retrying connect to server: 192.168.x.x:8032. Already tried 0 time(s); retry policy is...
  14. linux升级gfortran版本,Ubuntu18.04使用配置及gfortran版本的切换
  15. Phyllotaxis算法应用
  16. 手把手教你用SPSS绘制簇状条形图
  17. 绿幕抠图直播环境搭建---抠图干净清晰
  18. 无法打开源文件osgEarth/Sky的解决办法
  19. 代码获取SHA1方式
  20. 《Deep Image Matting》论文笔记

热门文章

  1. 云智推任务提交版拉新系统源码-任务分销系统
  2. 乌班图Linux程序自动启动,通过update-rc.d来管理Ubuntu系统的自动启动程序
  3. 快手sig签名和did egid的注册(操作太快了,请稍微休息一下)
  4. 天壤联合创始人韩定一:大模型+小样本数据,AI驱动金融数字化转型新范式|量子位·视点分享回顾...
  5. 淘宝网的架构演化分析
  6. python读取、保存npy文件
  7. [渝粤教育] 淄博职业学院 市场营销 参考 资料
  8. Linux杂谈之unzip命令
  9. 阿克曼函数求解(递归和非递归)
  10. mysql修改记录_MySQL中如何创建、查看、删除、修改表记录