1 驱动移植找不的编译时候的产品定义:TARGET_PRODUCT

起因:

编译驱动模块时候,出现错误:system/wlan/atheros/AR6kSDK.build_3.1_RC.734/host/Android.mk:89: *** define your kernel path here for ATH_LINUXPATH.  Stop.

分析:

添加驱动模块的时候,每个编译的驱动模块里面的驱动文件夹里面的都应该有Android.mk  这个make 文件。

在AR6KSDK里面的host 文件夹下,就有这个文件,编译的时候,出现过问题,找不的TARGET_PRODUCT 的定义

·解决》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

根据Android的编译结构,一点点剥离,找到如下:理由是:

整个 Build 系统中的 Make 文件可以分为三类:

第一类是 Build 系统核心文件,此类文件定义了整个 Build 系统的框架,而其他所有 Make 文件都是在这个框架的基础上编写出来的。

图 1 是 Android 源码树的目录结构,Build 系统核心文件全部位于 /build/core(本文所提到的所有路径都是以 Android 源码树作为背景的,“/”指的是源码树的根目录,与文件系统无关)目录下。

第二类是针对某个产品(一个产品可能是某个型号的手机或者平板电脑)的 Make 文件,这些文件通常位于 device 目录下,该目录下又以公司名以及产品名分为两级目录,图 2 是 device 目录下子目录的结构。

第三类是针对某个模块(关于模块后文会详细讨论)的 Make 文件。整个系统中,包含了大量的模块,每个模块都有一个专门的 Make 文件,这类文件的名称统一为“Android.mk”

根据上面的理由,目标板级别的配置应该是第二条配置,

检查

~/x210_ics_rtm_v13/device/samsung/x210/AndroidProducts.mk
有指向这个文件

PRODUCT_MAKEFILES := $(LOCAL_DIR)/full_x210.mk
再查看这个文件

~/x210_ics_rtm_v13/device/samsung/x210$ vim full_x210.mk

....

# Overrides
PRODUCT_NAME := full_x210
PRODUCT_DEVICE := x210
PODUCT_BRAND := Android
1PRODUCT_MODEL := Android On X210

在“Android.mk”加打印看看到底配置如何:

$(warning $(TARGET_PRODUCT))

然后再编译一下:

system/wlan/atheros/AR6kSDK.build_3.1_RC.734/host/Android.mk:39: full_x210
system/wlan/atheros/AR6kSDK.build_3.1_RC.734/host/Android.mk:89: *** define your kernel path here for ATH_LINUXPATH.  Stop.

结论:

TARGET_PRODUCT 和  PRODUCT_NAME 具有同样的名字

修改:

修改\system\wlan\atheros\AR6kSDK.build_3.1_RC.734\host\Android.mk 下的  android.mk

ifeq ($(TARGET_PRODUCT),$(filter $(TARGET_PRODUCT),qsd8250_surf qsd8250_ffa msm7627_surf msm7627_ffa msm7627a msm7625_ffa msm7625_surf msm7630_surf   full_x210))
#export  ATH_LINUXPATH=$(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ
#ATH_CROSS_COMPILE_TYPE:=$(ATH_ANDROID_ROOT)/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin/arm-eabi-

ATH_CROSS_COMPILE_TYPE := /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-
ATH_LINUXPATH :=/home/hanson//x210_ics_rtm_v13/kernel

问题解决:

再编译通过。。。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

参考:

http://www.ibm.com/developerworks/cn/opensource/os-cn-android-build/

Samsung x210 Android makefile 的一些配置实例问题相关推荐

  1. Android开发环境简单配置

    为什么80%的码农都做不了架构师?>>>    ·         Android开发环境简单配置 写这个系列的原因也是因为自己对android比较感兴趣,而网上多数教程都是直接参照 ...

  2. Android驱动开发之Hello实例(基于高通msm8909)

    点击打开链接 Android驱动开发之Hello实例: 驱动部分 modified:   kernel/arch/arm/configs/msm8909-1gb_w100_hd720p-perf_de ...

  3. Android驱动开发之Hello实例

    Android驱动开发之Hello实例: 驱动部分 modified:   kernel/arch/arm/configs/msm8909-1gb_w100_hd720p-perf_defconfig ...

  4. android代码删除wifi,Android Wifi的forget()操作实例详解_Android_脚本之家

    Android  Wifi的forget()操作实例详解 我们在处理某个Wifi连接时,有时会需要忘掉当前连接的密码信息.执行这项操作,我们需要调用WifiManager::forget()函数: / ...

  5. Deepin Linux上的Android+Flutter开发环境配置

    Deepin Linux上的Android+Flutter开发环境配置 在Linux上安装Flutter开发环境,官方教程参见Flutter Get Started,中国用户被墙需额外注意的官方教程参 ...

  6. android混淆教程,Android 实现代码混淆的实例

    Android 实现代码混淆的实例 1.简介 代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为. 混淆的目的是为了加大反 ...

  7. Android makefile文件解析

    Android makefile文件解析 Android编译过程详解 编译步骤 Android的编译步骤包括三步: 1.通过source build/envsetup.sh命令将sh文件中的命令加载到 ...

  8. log4j2配置实例[按小时记录日志文件]

    log4j2.xml文件配置实例:<?xml version="1.0" encoding="UTF-8"?> <configuration ...

  9. Mac下Android studio 之NDK配置教程(一)

    Mac下Android studio 之NDK配置教程(一) 1.概述 近期项目全线转移到Mac下使用使用Android studio开发. 遇到关键代码封装到 ***native***层,此时在wi ...

最新文章

  1. Geth的命令行介绍
  2. 面试题: Vue中的 computed 和 watch的区别
  3. 如何限制某些用户发送Internet邮件
  4. SpringBoot 自定义Kafka消息序列化和反序列化
  5. JavaScript 数组详解
  6. 专业程序员必知必会的技巧:驯服复杂代码
  7. 【OpenCV学习】基本矩阵
  8. fireFox模拟 post请求、上传插件,火狐浏览器中文postman插件
  9. 【tyvj1520】 树的直径
  10. Arduino十大滤波算法程序大全(精编无错版)
  11. 一个精心制作的页眉样式
  12. 设计模式(3)——装饰者模式
  13. 如何用 JavaScript 控制 Arduino?
  14. 批量更改PPT文件中的内容(修改大量PPT)
  15. 物联网无线传输技术有哪些?
  16. html5怎么给图片加边框,怎么给图片加边框 【解决模式】
  17. 计算机控制实验心得体会,车床实训心得体会(精选5篇)
  18. Redis学习总结和相关资料
  19. 强制推到远程git push
  20. react-dom.development.js:6202 Unable to preventDefault inside passive event listener invocation 错误

热门文章

  1. 【Python】字典类型
  2. Chrome浏览器各种文件的存放路径汇总
  3. python交换两个变量的值
  4. 【非公开】#include
  5. 父组件更新prop_如何在ReactJS中更新组件的prop —哦,是的,有可能
  6. javascript指南_JavaScript还原方法指南
  7. python基础-深浅拷贝
  8. Python编辑工具的全新版本,PyCharm 2020.1 稳定版发布
  9. fork他人仓库clone到本地
  10. URL重写(使用微软URLRewriter)