Android驱动开发前的准备(四)

时间:2021-11-09 11:45:02

源代码的下载和编译

4.1 下载、编译和测试Android源代码

4.2下载和编译linux内核源代码

4.1.1 配置Android源代码下载环境

(1) 创建一个用于存放下载脚本文件的目录

# mkdir -/bin

# PATH=-/bin:$PATH

(2) 下载repo脚本文件

# curl https://dl-ssl.google.com/dl/goolesource/git-repo> -/bin/repo

# chmod a+x ~/bin/repo

(3) 创建用于存放Android源代码的目录

# mkdir android _source

# cd android_source

(4) 初始化

# repo init -u http://android.googlesource.com/platform/manifest

(5) 开始下载android源代码

# repo sync

4.1.2 Android源代码目录结构解析

                 Android源码目录结构

Android驱动开发前的准备(四)

4.1.3 下载android源代码中的一部分

法一:使用repo sync命令

#  repo sync platform/bootable/recovery

法二:使用git clone 命令

# git clone https://android.googlesource.com/<project name>

4.1.4编译android源代码

(1)初始化编译环境

# source build/envsetup.sh或#. Build/envsetup.sh

(2)选择目标

# lunch full-eng

(3)编译Android源代码

# make -jn

4.1.5 out目录结构分析

  out目录结构

Android驱动开发前的准备(四)

Out目录是存放Android源代码生成的目标文件的默认目录,out目录里只有两个直接的子目录:host和target

4.2 下载和编译linux内核源代码

要想使用linux内核,必须单独下载linux内核源代码

4.2.1下载linux内核源代码

# git clone https://android.googlesource.com/kernel/common.git

4.2.2 linux 内核源代码的目录结构

Linux内核源代码目录的含义

Android驱动开发前的准备(四)

Android驱动开发前的准备(四)

4.2.3安装Android内核的编译环境

(1)准备工作

将arm-linux-gcc-4.3.2tgz文件和arm-none-linux-guneabi-arm-2008q3-72-for-linux.tar.bz2文件复制到工作目录

(2)解压编译器

# tar xzvf arm-linux-gcc-4.3..tgz -C /

# tarjxvf arm-none-linux-guneabi-arm-2008q3--for-linux.tar.bz2 -C /

(3)验证交叉编译器是否安装成功

# ls /usr/local/arm -l

(4)安装libncurses5

# apt-get install libncurses5-dev

4.2.4  配置和编译linux内核

可以使用以下命令进行编译

# export PATH=/root/compilers/arm-none-linux-gnueabi/bin:$PATH

# cd ~/linux_kernel

# make clean

# make

小结:

Android移植主要就是linux内核的移植,而linux内核的移植主要是linux驱动的移植,所以为了开发和测试linux驱动需要在Ubuntu linux下搭建两套开发环境:Android应用程序开发环境和linux内核开发环境。

Android驱动开发前的准备(四)的更多相关文章

  1. Android驱动开发前的准备

    最近看了一些Android驱动开发前需要知道的资料,收获很多,接下来就谈谈我自己的一些心得体会. Android在近几年时间发展迅速,已经成为智能手机操作系统的老大.不过,因为Android原生的代码 ...

  2. 初入android驱动开发之字符设备&lpar;四-中断&rpar;

    上一篇讲到android驱动开发中,应用是怎样去操作底层硬件的整个流程,实现了按键控制led的亮灭.当然,这是一个非常easy的实例,只是略微演变一下,就能够得到广泛的应用. 如开发扫描头,应用透过监 ...

  3. android驱动开发前的准备(五)

    搭建S3C6410开发板的测试环境 首先安装串口调试工具 第一步:检测当前系统是否支持USB转串口 # lsmod | grep usbserial 第二步:安装minicom # apt-get i ...

  4. Android驱动开发前的准备(三)

    Git使用入门 3.1安装Git 3.2查看Git文档 3.3源代码的提交与获取 3.1安装Git # apt-get install git # apt-get install git-doc gi ...

  5. Android驱动开发前的准备(一)

    Android系统移植与驱动开发概述 1.1 Android 系统架构 1.2 Android系统移植的主要工作 1.3 查看linux内核版本 1.4 linux内核版本号的定义规则 1.5 lin ...

  6. Android驱动开发前的准备(二)

    搭建android开发环境 2.1 Android底层开发需要哪些工具 2.2 安装 JDK 2.3 搭建Android 应用程序开发环境 2.4安装Android NDK开发环境 2.5安装交叉编译 ...

  7. Android驱动开发5-8章读书笔记

    Android驱动开发读书笔记                                                              第五章 S5PV210是一款32位处理器,具有 ...

  8. 初入android驱动开发之字符设备&lpar;一&rpar;

    大学毕业,初入公司,招进去的是android驱动开发工程师的岗位,那时候刚进去,首先学到的就是如何搭建kernel.android的编译环境,然后就是了解如何刷设备以及一些最基本的工具.如adb.fa ...

  9. Android安卓书籍推荐《Android驱动开发与移植实战详解》下载

    百度云下载地址:点我 Android凭借其开源性.优异的用户体验和极为方便的开发方式,赢得了广大用户和开发者的青睐,目前已经发展成为市场占有率很高的智能手机操作系统. <Android驱动开发与 ...

随机推荐

  1. &lbrack;LeetCode&num;157&rsqb; Read N Characters Given Read4

    Problem: The API: int read4(char *buf) reads 4 characters at a time from a file. The return value is ...

  2. iOS9中将图片保存到照片中的某个相册的方法说明

    iOS9中将图片保存到照片中的某个相册的方法说明 在App中很经常遇到的就是用户点击某张图片后将图片保存到本地,下面介绍下iOS中保存图片的一些东西 1.首先,在iOS中把图片保存到系统照片是比较简单 ...

  3. Database Initialization Parameters for Oracle E-Business Suite Release 12 &lpar;文档 ID 396009&period;1&rpar;

    In This Document Section 1: Common Database Initialization Parameters For All Releases Section 2: Re ...

  4. SQL STUFF函数 拼接字符串

    今日看到一篇文章,是关于和并列的,也研究了下,还是不错的 要这种效果. create table tb(idint, value varchar(10)) insert into tbvalues(1 ...

  5. JAVA将汉字转换为全拼以及返回中文的首字母,将字符串转移为ASCII码

    import net.sourceforge.pinyin4j.PinyinHelper;import net.sourceforge.pinyin4j.format.HanyuPinyinCaseT ...

  6. build&period;js

    // https://github.com/shelljs/shelljs// 检查NodeJS和npm的版本require('./check-versions')() process.env.NOD ...

  7. &lbrack;USACO06DEC&rsqb; 牛奶模式Milk Patterns

    题目链接:戳我 我们知道后缀数组的h数组记录的是后缀i和后缀i-1的最长公共前缀长度,后缀的前缀其实就是子串. 因为是可以重复出现的子串,所以我们只要计算哪些h数组的长度大于等于x即可.这一步操作我们 ...

  8. Bash:常用命令工具-uniq

    NAME uniq - report or omit repeated lines SYNOPSIS uniq [OPTION]... [INPUT [OUTPUT]] DESCRIPTION Fil ...

  9. nginx负载均衡模块

    1.upstream 模块 upstream backend { server backend1.example.com weight=5 max_fails=10 fail_timeout=10s; ...

  10. Linux虚拟机将ip改为自定义模式网络

    查看当前ip:ifconfig 配置linux的ip地址:vi /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO="dhcp&quot ...