本文转载自:http://blog.csdn.net/lkqboy2599/article/details/8350100

向android的内核添加驱动,其实就是向linux内核添加驱动。主要在两个文件里添加点信息,一个是Kconfig文件,一个是Makefile文件。比如你添加的驱动你代码放到drivers目录下面的XXX目录,那么修在该目录下的Kconfig文件和Makefile文件。

具体的修改方法:

比如我现在修改drivers/staging/android/下的Kconfig文件。

config ANDROID_LOGGER

tristate "Android log driver"

default n

config ANDROID_RAM_CONSOLE

bool "Android RAM buffer console"

default n

config ANDROID_RAM_CONSOLE_ENABLE_VERBOSE

bool "Enable verbose console messages on Android RAM console"

default y

depends on ANDROID_RAM_CONSOLE

如果我想添加一个驱动,驱动名字为 somedrv,那么在这个文件里加入:

config ANDROID_DEMUXER

bool "Android Somedrv Driver"

default n

这样就可以了。这样在编译内核的时候,make menuconfig命令之后,会有

Android Somedrv Driver的选择,选择它就可以将驱动编进内核。

然后在Makefile里面添加一句obj-$(CONFIG_ANDROID_SOMEDRV)         += somedrv.o。

这样就修改好了。

这样编译内核的时候就把驱动编译进去了,前提编译前选择驱动。

现在我编译的内核都是用在模拟器上的,也就是说在qemu上运行内核。那么编译的时候的config就用goldfish_defconfig,这样编译前就不执行make menuconfig命令而是执行

make goldfish_defconfig(前提是已经将代码切换到goldfish分支)。

这样就自动生成.config文件了,不用自己去选择。但是这样的.config文件并没有包含自己添加的驱动,要手动修改.config文件,打开文件,搜索一下字段”somedrv”,会看见:

# CONFIG_ANDROID_SOMEDRV is not set

CONFIG_ANDROID_BINDER_IPC=y

Somedrv没有被包含编译,手动修改它,修改成CONFIG_ANDROID_SOMEDRV=y, 跟下面那句一样,这样就会将这个驱动编进内核。

这样编译出来的内核,已经包含somedrv驱动。

但是这个驱动挂载在/dev下只用所有者权限,这样程序还是没有办法访问这个设备。这个时候要修改一个文件,主目录/system/core/rootdir目录下的ueventd.rc文件,这个文件可以设置驱动挂载到/dev目录下时的权限和所有者。添加这句

/dev/demuxer               0666   root       root

这样就可以了。好像这个要重新编译一下。。

往android的内核添加驱动及 ueventd.rc 修改【转】的更多相关文章

  1. MTK andorid从底层到上层添加驱动

    1 [编写linux驱动程序] 1.1 一.编写驱动核心程序 1.2 二.配置Kconfig 1.3 三.配置Makefile 1.4 四.配置系统的autoconfig 1.5 五.编译 2 [编写 ...

  2. 第一章Android系统移植与驱动开发概述--读书笔记

    以前,初步学习过嵌入式Linux驱动开发的基础课程,对于驱动开发可以说是有了一点点微末的基础吧.首先我们要对Android嵌入式系统有一个初步的认识,Android系统发展到今天已经具备了完善的架构. ...

  3. Android 开发之 ---- 底层驱动开发(一) 【转】

    转自:http://blog.csdn.net/jmq_0000/article/details/7372783 版权声明:本文为博主原创文章,未经博主允许不得转载. 驱动概述 说到 Android ...

  4. 第一章 Android系统移植与驱动开发概述

    本书第一章首先简单概要地介绍了关于Android系统移植和驱动开发的相关内容. 所谓“移植”是指为特定的自己的设备,如手机定制Android的过程.自己开发一些程序(移植)装载在设备上,使得Andro ...

  5. 第一章:Android系统移植与驱动开发概述

    Android是基于Linux内核的,与Linux内核没有太大的区别,只是增加了一些自己独有的驱动,随着Android发布版本的不断升级,他所使用的Linux内核也在不断升级,以适应新的安卓版本,为他 ...

  6. sc7731 Android 5.1 LCD驱动简明笔记之一

    基于展讯sc7731 - Android 5.1 代码分析浏览.将屏蔽细节,把握整体,并且不涉及其他设备和LCD的交互. 以下对sc7731 lcd大体流程进行简要说明. 第一,lcd 的两个阶段 1 ...

  7. android从应用到驱动之—camera(2)---cameraHAL的实现

    本文是camera系列博客,上一篇是: android从应用到驱动之-camera(1)---程序调用流程 本来想用这一篇博客把cameraHAL的实现和流程都给写完的.搞了半天,东西实在是太多了.这 ...

  8. android从应用到驱动之—camera(1)---程序调用流程

    一.开篇 写博客还得写开篇介绍,可惜,这个不是我所擅长的.就按我自己的想法写吧. 话说camera模块,从上层到底层一共包含着这么几个部分: 1.apk------java语言 2.camera的ja ...

  9. android从应用到驱动之—camera(1)---程序调用流程[转]

    一.开篇 写博客还得写开篇介绍,可惜,这个不是我所擅长的.就按我自己的想法写吧. 话说camera模块,从上层到底层一共包含着这么几个部分: 1.apk------java语言 2.camera的ja ...

随机推荐

  1. Java 经典笔试题

    这些题目对我的笔试帮助很大,有需要的朋友都可以来看看,在笔试中能遇到的题目基本上下面都会出现,虽然形式不同,当考察的基本的知识点还是相同的. 在分析中肯定有不足和谬误的地方还请大虾们能够给予及时的纠正 ...

  2. SPOJ GSS系列(数据结构维护技巧入门)

    题目链接 GSS $GSS1$ 对于每个询问$l$, $r$,查询$a_{l}$, $a_{l+1}$, $a_{l+2}$, ..., $a_{r}$这个序列的最大字段和. 建立线段树,每个节点维护 ...

  3. XSY1659 [HNOI2012]永无乡

    题面 Description 永无乡包含 n 座岛,编号从 1 到 n. 每座岛都有自己的独一无二的重要度,按照重要度可以将这n座岛排名,名次用 1到n来表示.某些岛之间由巨大的桥连接,通过桥可以从一 ...

  4. Java使用QRCode.jar生成与解析二维码

    原文V:http://www.cnblogs.com/bigroc/p/7496995.html#3797682 正题:Java使用QRCode.jar生成与解析二维码demo 欢迎新手共勉,大神监督 ...

  5. Android图片加载神器之Fresco,基于各种使用场景的讲解

    Fresco是Facebook开源Android平台上一个强大的图片加载库,也是迄今为止Android平台上最强大的图片加载库. 优点:相对于其他开源的第三方图片加载库,Fresco拥有更好的内存管理 ...

  6. 第六讲_图像分割Image Segmentation

    第六讲_图像分割Image Segmentation 语义分割(semantic segmentation) 常用神经网络介绍对比-FCN SegNet U-net DeconvNet 目录 +三大数 ...

  7. intent 支持的action 动作

    String ACTION_AIRPLANE_MODE_CHANGED Broadcast Action: The user has switched the phone into or out of ...

  8. css3 - 基本选择器

    有人说类选择器最好不要超过三层,其实我也是这样认为的,不是吗? 选择器分为四大类 标签.全选(相对于子类继承了0.1).类.ID 权值分别是:1->0.1->10->100(权值可叠 ...

  9. android 5.2

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2VyZ2V5Y2Fv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...

  10. C#设计模式总结 C#设计模式(22)——访问者模式(Vistor Pattern) C#设计模式总结 .NET Core launch.json 简介 利用Bootstrap Paginator插件和knockout.js完成分页功能 图片在线裁剪和图片上传总结 循序渐进学.Net Core Web Api开发系列【2】:利用Swagger调试WebApi

    C#设计模式总结 一. 设计原则 使用设计模式的根本原因是适应变化,提高代码复用率,使软件更具有可维护性和可扩展性.并且,在进行设计的时候,也需要遵循以下几个原则:单一职责原则.开放封闭原则.里氏代替 ...