zoukankan      html  css  js  c++  java
  • Android驱动开发前的准备(四)

    源代码的下载和编译

    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源码目录结构

                       

    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目录结构

    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内核源代码目录的含义

    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.2.tgz -C /
    
    # tarjxvf arm-none-linux-guneabi-arm-2008q3-72-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内核开发环境。

  • 相关阅读:
    三元表达式 列表和字典推导式 函数对象 名称空间 作用域 global和nonlocal 函数装饰器 枚举对象
    函数参数 打散机制 字符串比较 返回值
    函数简介
    三种字符串的介绍 文件的读写
    字符编码
    数据类型及其常用方法 数据类型转换 可变与不可变 值拷贝与深浅拷贝
    流程控制 while和for循环
    变量命名规范 常量 输入和输出 注释 数据类型 运算符 逻辑运算符
    语言分类 编译型和解释型语言分析 环境变量 代码执行的方式 pip介绍 变量
    Python django tests
  • 原文地址:https://www.cnblogs.com/wy3983/p/5424806.html
Copyright © 2011-2022 走看看