平台:全志A31
内核版本:linux-3.3
gcc版本:arm-linux-gnueabi-gcc 4.6.1
操作系统:Ubantu 2.6.32-38-generic

项目中需要编译A31平台的驱动并在pad上面运行,运行的环境如上所说的。此处只涉及到内核的编译问题,至于模块的配置以及boot的编译并不在此范围内。

全志会提供两个压缩的内核文件,分别为android.tar.gzlichee.tar.gz。在这里只用到lichee.tar.gz这个文件。加压之即可获取到内核源码以及工具链。下面的链接提供了A31_Android移植的说明文档。A31_Android移植


解压lichee.tar.gz

$tar -zxvf lichee.tar.gz

获取到如下的文件:

目录 内容
boot-v1.0 u-boot源码相关
linux-3.3 内核源码
tools 工具链以及所有模块的使用状态及GPIO配置脚本
……………… …………

README

查看到README的内容如下:

很明显,我们是要编译内核源码,所以需要选择2的方式,即

$./build.sh -p sun6i_fiber

执行上述命令之后就完成了内核的编译。就可以通过该内核编译的驱动文件了。


编译错误解决

make的时候出现了如下的错误:

google搜索到该原因是没有加编译选项指定平台ARCH=arm,加上即可。

$make ARCH=arm

再次编译出现如下的错误:

同样是google,但是没有一个好的结果。lichee里面的toolchain的版本是4.6.3的版本,我把它换为4.6.1的版本就可以编译通过了。


注:下面的内容是为了学习使用添加进去的,可以忽略之。

build.sh

#!/bin/bash
set -ebuildroot/scripts/common.sh $@

由于很少接触脚本,第一次看到set -e的命令,特地搜索了一下。

Every script you write should include set -e at the top. This tells bash that it should exit the script if any statement returns a non-true return value. The benefit of using -e is that it prevents errors snowballing into serious issues when they could have been caught earlier. Again, for readability you may want to use set -o errexit.
你写的每个脚本都应该在文件开头加上set -e,这句语句告诉bash如果任何语句的执行结果不是true则应该退出。这样的好处是防止错误像滚雪球般变大导致一个致命的错误,而这些错误本应该在之前就被处理掉。如果要增加可读性,可以使用set -o errexit,它的作用与set -e相同。

上面的引用是来自于这篇文章—–Unix/Linux 脚本中 “set -e” 的作用

上述脚本实际上是执行如下语句:

$set -e
$buildroot/scripts/common.sh -p sun6i_fiber

全志A31编译环境搭建相关推荐

  1. linux下guide编译不了,全志R16编译环境搭建指南,全志R16_Tina SDK Quick Start Guide

    2. Tina SDK 目录结构 ├── tina │ ├── abi │ ├── app │ ├── bionic │ ├── build │ ├── device │ │ ├── softwinn ...

  2. 全志a33 编译器 linux,全志A33编译环境搭建及固件打包步骤.txt

    1. ubantu 14.04 的安装 2. root 用户密码修改 sudo passwd root 3 进入root用户 4 更新源 apt-get update 5 安装编译依赖的源 apt-g ...

  3. 全志JAVA_android 全志a10(2.3.4)开发1(编译环境搭建)

    android 全志a10(2.3.4)开发一(编译环境搭建) android系统编译可分为两部分:一部分是linux内核编译:另一部分是android源码编译:全文中主要是说明从搭建编译环境,安装编 ...

  4. 全志R16_Tina SDK编译环境搭建

    2. Tina SDK 目录结构 ├── tina │ ├── abi │ ├── app │ ├── bionic │ ├── build │ ├── device │ │ ├── softwinn ...

  5. 全志A33开发板vstar编译环境搭建

    全志A33开发板vstar编译环境搭建 安装系统 全志提供的vstar的SDK使用内核linux-3.4.39, 在编译过程中,要用到一个文件gen_check_code,位于linux-3.4/ar ...

  6. Runtime编译环境搭建

    Runtime编译环境搭建 首先,需要准备的资源:runtime完整源码,这个可以在苹果开放资源网页找到.点进这个页面,接着点击macOS下面的最新版本,在新页面中command+f搜索objc即可找 ...

  7. esp32 linux内核,【小狂系列】跟着小狂玩ESP32之编译环境搭建篇

    本帖最后由 3guoyangyang7 于 2016-11-3 18:41 编辑 趁热要打铁,昨天发了ESP32的预告贴,今天小狂就带大家刷一刷ESP32的编译环境搭建.怎么说的,ESP32可以在多平 ...

  8. Windows编译环境搭建(VS2010)

    引言:   本篇文章基于教程目的(由于windows和linux相关环境搭建篇幅过大,在博客中做这些讲解),主要描述Windows的发展历程和编译环境搭建(基于 Visual Studio 2010版 ...

  9. spring-framework-5.1.x 源码编译 环境搭建 [ idea:2020.1 ]

    spring-framework-5.1.x 源码编译 环境搭建 [ idea:2020.1 ] 一. Gradle下载与安装 软件名称 版本 下载地址 jdk jdk 11.0.5 下载链接 提取码 ...

最新文章

  1. 为AI从业者/研究生/研究员专门定制的全网唯一高端AI训练营
  2. JavaScript获取鼠标左键选中的内容
  3. 【iOS 开发】基本 UI 控件详解 (UIButton | UITextField | UITextView | UISwitch)
  4. 从注册流程 分析如何安全退出多个Activity 多种方式(附DEMO)
  5. Caffe官方教程翻译(5):Classification: Instant Recognition with Caffe
  6. 期末计算机考试五五开要考多少分,大学平时分加上末考分过了多少算不挂科
  7. 对Python参数类型详解以及学习中遇到的坑
  8. 1.RTMP流媒体服务器搭建
  9. apm java_非Java专家的APM:什么泄漏?
  10. 数据结构之树的定义及操作
  11. javascript中动态加载js、vbs脚本或者css样式表
  12. 新手如何发布第一个Python项目开源包?这里有一份详细指南
  13. vue 列表 萌层 鼠标移入移出_10 分钟上手 Vue 组件 Vue-Draggable
  14. 详解LightGBM两大降维利器:基于梯度的单边采样(GOSS)和互斥特征捆绑(EFB)
  15. 移动芯片巨头英国ARM的发展史
  16. 商鞅的APP运营之道
  17. X1000之LCD部分的翻译
  18. 关于elementplus 的:suffix-icon=“Search不显示问题记录
  19. List集合中根据相同属性的对象合并计算
  20. 关于python使用hadoop(使用python操作hdfs)

热门文章

  1. 如何鉴别和评审APS软件?内行人告诉你
  2. 华为虚拟一键部署服务器,一键部署服务器
  3. 大一计算机基础ppt练习题,大学计算机基础练习题.ppt
  4. 云计算行业分析PPT
  5. WMS出库作业流程简介
  6. Hive collect_set函数
  7. 2021年R2移动式压力容器充装考试技巧及R2移动式压力容器充装模拟考试题
  8. wpsppt加载项在哪里_wpsppt加载项在哪里_《wps表格加载项在哪里》 WPS版的EXCEL中 加载宏和数据分析在哪?......
  9. 《ANSYS Workbench有限元分析实例详解(静力学)》——第2章 ANSYS Workbench主界面设置2.1 窗口设置...
  10. 左耳听风 第四十二周