android驱动
韩半仙
这个作者很懒,什么都没留下…
展开
-
binder: 467:467 ioctl 40046210 7ff5391764 returned -22错误
binder: 467:467 ioctl 40046210 7ff5391764 returned -22错误原创 2022-12-29 21:17:07 · 2061 阅读 · 3 评论 -
Android12删除defconfig相关配置后构建报错“For kernel requirements at matrix level 5, Missing config XXXX”
Android12删除defconfig相关配置后构建报错“For kernel requirements at matrix level 5, Missing config XXXX”原创 2022-11-29 17:57:45 · 2207 阅读 · 1 评论 -
【QCM2150】Android10关闭开机马达震动功能
【QCM2150】Android10关闭开机马达震动功能原创 2022-10-31 20:23:22 · 484 阅读 · 0 评论 -
Android单独编译驱动模块
在调试wifi驱动过程中,可以通过单独编译wlan.ko的方式来提高调试效率。查看系统支持哪些模块编译,使用make modules命令。原创 2022-10-19 10:00:00 · 1423 阅读 · 0 评论 -
5.4版本内核ufs设备信息查询方式
本章主要介绍5.4版本内核中ufs存储设备的设备信息查询方法:ufs设备相关信息节点位于系统:/sys/devices/platform/soc/1d84000.ufshc目录下,具体如下:其中:device_descriptor:设备描述相关信息health_descriptor:使用寿命相关信息string_descriptors:物料型号、厂商、sn号等信息具体如下:device_descriptor:string_descriptors:health_descriptor:a原创 2022-08-16 10:35:26 · 2684 阅读 · 4 评论 -
高通QCAP解析dump:GCC_RESET_STATUS
GCC_RESET_STATUS寄存器用于在触发看门狗后保存复位状态:原创 2021-08-20 10:50:36 · 2335 阅读 · 1 评论 -
Android电池驱动
Android的电池的管理分为三个部分:Java部分,JNI部分以及kenel部分。1.Java部分主要是BatteryService,作为电池及充电相关的服务,它的主要功能就是监听power_supply的uenvnt事件,读取sysfs中电池信息,然后通过intent广播给所有相关Activity。源代码路径如下:android_froyo/frameworks/base/转载 2013-09-07 11:35:06 · 1093 阅读 · 0 评论 -
Android系统级电源管理
电池的信息,电压,温度,充电状态等等,都是由BatteryService来提供的。BatteryService是跑在system_process当中,在系统初始化的时候启动,如下 在BatteryService.java中: Log.i(TAG, "Starting Battery Service."); BatteryService bat原创 2013-09-07 11:31:56 · 963 阅读 · 0 评论 -
wifi 移植
一、WIFI的基本架构 1、wifi用户空间的程序和库: external/wpa_supplicant/ 生成库libwpaclient.so和守护进程wpa_supplicant。 2、hardware/libhardware_legary/wifi/是wifi管理库。 3、JNI部分: frameworks转载 2013-10-31 09:34:54 · 736 阅读 · 0 评论 -
Android MID 3G 移植
市面上大多数MID使用的3G模块一般都是使用中兴、华为的,在项目中本人调试过中兴的MU301 TD模块、华为的EM770w WCDMA模块。本文基于华为的EM770w WCDMA模块进行讲述。Android的3g部分移植主要难点在于RIL层,如果自己独立开发RIL需要对android的RIL、AT指令、通信流程等非常熟悉,所以难度非常的大,请参考RIL源码。现在买回转载 2013-11-20 15:41:56 · 1022 阅读 · 0 评论 -
Android 2.1下调试3G模块
采用的是华为EM770W模块,支持WCDMA网络,由于华为提供的库只支持Android2.2,所以用Android2.1就需要自己修改库源码。 1.修改linux内核(1)make menuconfig:Device Drivers ---> OHCI HCD support [*] Network device support --->转载 2013-11-20 15:49:57 · 1880 阅读 · 0 评论 -
不同3G模块移植
不同3G模块移植【1】打开:out/target/product/imx51_bbg/root/init.rc根据不同模块修改,选择用哪个ril库发AT指令,哪个串口用作AT指令(-d),哪个串口用作上网数据口(-u):#ZTE C100, add by huiservice ril-daemon /system/bin/rild -l /system/lib/librefer转载 2013-11-20 15:50:37 · 1446 阅读 · 0 评论 -
Android平台开发-3G RIL模块分析
ril是radio interface layer的缩写,是android里电话部分很重要的一层,如图: (1) ril层的作用就是消息中转,承上启下,和之前的红外的lirc差不多。3G模块的驱动就是一个usbserial.ko,USB转串的驱动,insmod后会生成ttyUSB*节点,作为AT命令通道和数据传输通道,至于对应关系还要在研究,是否可以只用一个ttyUSB0还要研究,不过转载 2013-11-20 15:51:59 · 1955 阅读 · 0 评论 -
android wifi 移植记录
我用的是 Ralink 的网卡,所以 wifi 网卡的名字是 ra0, 在网上看了一些文章,要改很多地方。不就是个网卡名字问题吗? 我有 驱动源码, 就直接在源码里把名字改成 mlan0 就得了。在源码中找到注册网卡的 register_netdev 或者 register_netdevice 函数,直接在注册前把名字给它改咯。。。 strcpy( pNetDev->name转载 2013-11-25 12:31:59 · 927 阅读 · 0 评论 -
在Ubuntu上下载、编译和安装Android最新内核源代码(Linux Kernel)
在前一篇文章提到,从源代码树下载下来的最新Android源代码,是不包括内核代码的,也就是Android源代码工程默认不包含Linux Kernel代码,而是使用预先编译好的内核,也就是prebuilt/android-arm/kernel/kernel-qemu文件。那么,如何才能DIY自己的内核呢?这篇文章一一道来。 一. 首选,参照前一篇在Ubuntu上下载、编译和安装Andr转载 2013-11-12 16:57:03 · 914 阅读 · 0 评论 -
在Ubuntu上下载、编译和安装Android最新源代码
看完了前面说的几本书之后,对Linux Kernel和Android有一定的认识了,是不是心里蠢蠢欲动,想小试牛刀自己编译一把Android源代码了呢?一直习惯使用Windows系统,而Android源代码是不支持在Windows上编译上,于是决定使用虚拟机安装Ubuntu,然后下载、编译和安装Android源代码。 一. 环境准备。 1. 磁盘空间预留20G左右,内存3G转载 2013-11-12 16:56:18 · 1094 阅读 · 0 评论 -
android 3G功能移植
曾几何时在Android2.1下调试3G模块,曾几何时模块厂商提供的库不能用,曾几何时只能用自己的库痛苦地调试...这一切的一切都已成往事,昔日的成功在毫无保留下成为浮云,该忘了忘记了,该记得也跟着忘记了。现如今再次调3G模块,却不知道以前如何调试,看来还是要记下来。我采用的是华为EM770W模块,支持WCDMA网络,由于华为提供的库只支持Android2.2,所以用Android2.1就需要转载 2013-11-29 11:02:50 · 4278 阅读 · 0 评论 -
android 3G移植
一 开发环境简介内容 说明3G模块 华为EM820W(WCDMA)3G SIM卡 中国联通3G卡嵌入式li转载 2013-11-29 18:28:09 · 5968 阅读 · 3 评论 -
和菜鸟一起学android4.0.3源码之USB wifi移植心得
一天又过去了,台风也走了有些时候了。想了想,自己还是冲动了一把,不该发那个邮件的,既然发了,也不后悔了。知道了所有也未必不是一件好事。恩,剩下的就好好做自己要做的事情吧。对于usb wifi,老早就在调试了,只是碰到了很多问题,加上其他的事情也迎面而来,从而导致很多的困难,也就搁置着了。上上周,工作计划一周内要搞定,郁闷着了,这个涉及到的太多太多了,不好移植啊。只能加班了,天天看代码了。在移植完b转载 2013-12-10 19:03:08 · 1354 阅读 · 0 评论 -
和菜鸟一起学android4.0.3源码之bluetooth移植心得
近几周一直在移植bluetooth和wifi,看书的时间也没,也没有时间思考一些问题,总结一些移植碰到的困难之类的。前天,终于蓝牙也可以传输文件,通过a2dp播放音乐了,wifi也可以扫描到网络,并可以连接了,因为平台中有本地的一个nfs挂载,所以要上外网,必须要sd卡启动才可以。 昨天的台风“海葵”在家乡登陆,虽然家里没出什么事,但是家乡遭受到这14级台风,肯定损失惨重啊。在此只能转载 2013-12-10 19:04:03 · 941 阅读 · 0 评论 -
飞思卡尔i.MX 6Quad Android 4.2.2的中兴和Ublox 3G驱动移植
1 概述平台:freescale i.MX 6Quad 4核开发板Sabre-sd(不带屏幕)操作系统:Android 4.2.2_r1(代码补丁为android_jb4.2.2_1.1.0-ga_source)内核:3.0.353G模块:中兴MG3732和UbloxLISA-U130 2 中兴MG3732模块移植2.1 准备准备一张可用的转载 2013-12-03 18:46:24 · 1743 阅读 · 0 评论 -
android的wifi网卡移植详细过程已经通用驱动的问题
这里有一篇详细的教程,看完还有一个问题就是android的wifi驱动移植,如果有wifi网卡的驱动代码,是一定需要对android系统本身的代码修改重写编译吗?就是说,有无可能不改变android内核而做出可以插入的mod,而做出某款网卡的通用android 驱动不同采用不同cpu的android终端使用。android 平台USB wifi驱动移植及使用 SDIOwifi---转载 2013-12-10 19:05:18 · 8184 阅读 · 0 评论 -
android电源锁机制
android新加入的wakelock是一种锁的机制, 只要拿着这个锁, 系统就无法进入休眠, 可以被用户态进程和内核线程获得。这个锁可以是有超时的或者是没有超时的, 超时的锁会在时间过去以后自动解锁。如果没有锁了或者超时了, 内核就会启动标准linux的那套休眠机制机制来进入休眠。 主要源码位于文件:kernel/kernel/power/wakelock.c,kernel/in转载 2013-12-11 19:19:59 · 4961 阅读 · 0 评论 -
cortex-A8上3G模块的支持
| 开发主机 VMware ubuntu10.10 | | 移植内核 linux-2.6.22.6 | | 3G模块 华为 E220 | | SIM卡 联通3G转载 2013-12-04 16:04:39 · 1234 阅读 · 0 评论 -
中兴WCDMA模块 Linux拨号流程
中兴WCDMA模块 Linux拨号流程Version 1.0目录1. 测试准备……………………………………………………..…32. 拨号脚本………………………………………………………133. 拨号过程………………………………………………………161. 测试准备本文档测试模块:MF210(中兴WCDMA模块)中兴WCDMA模块MF200 / MF205 / MF206转载 2013-12-04 16:36:08 · 2792 阅读 · 0 评论 -
将wifi固件编译进内核,成功加载sdio wifi模块
Wifi驱动以编译进内核的形式加载,因此需要将wifi所需的固件一同编译进内核,首先将helper_sd.bin sd8686.bin两个固件复制到内核源代码目录下的firmware目录下。将helper_sd.bin改名为sd8686_helper.bin 接下来配置内核1.Ramdisk启动参数2.添加固件Device Driver——》Generi转载 2013-12-13 11:43:54 · 3588 阅读 · 0 评论 -
Linux下ppp拨号+3G模块(evdo 中兴MC8630模块)
物联网的发展,嵌入式节点具备3G无线上网功能是个必不可少的功能,奈何网上的资料多数以WCDMA为主,电信的evdo资料不是很多,笔者经过一番实验,搜寻了一些网站,终于在开发板上,将EVDO模块(中兴MC8630)成功拨号上网,现分享步骤如下:3G模块的速度非常快,所以普通的UART串口已经不能满足速度,所以会通过芯片的USB口来进行数据交互。硬件连接这里就忽略了,有兴趣的朋友可以买个usb口的转载 2013-12-13 18:03:41 · 1324 阅读 · 0 评论 -
Android下的摄像头驱动开发
这几天拿到一个MINI210开发板,于是尝试着把ov7670移植到开发板上.仔细的观察了一下友善给的驱动发现友善提供了ov9650的驱动,因为ov7670和ov9650的驱动比较类似.于是想在ov9650的基础上改动一下. 但是进入/opt/FriendlyARM/mini210/android/linux-2.6.35.7-android/drivers/media/video目录没有发现跟ov转载 2013-12-13 20:12:58 · 6222 阅读 · 0 评论 -
Firmware 加载原理分析
前言 前段时间移植 wifi 驱动到 android 的内核上,发现 firmware 的加载始终出错,问了几个人,都不是很了解,没办法,只好自己研究一下。原理分析 从本质上来说, firmware 需要做的事情包括两件: 1, 通知用户态程序,我需要下载 firmware 了; 2, 用户态程序把用户态的数据 copy转载 2013-12-13 11:44:24 · 713 阅读 · 0 评论 -
u-boot移植出现的问题
出现问题:## Starting application at 0x30008000 ...Uncompressing Linux.............................................................解决方案:setenv bootargs console=ttySAC0,115200 mem=64M ;console明令在哪暂时还没解决???s转载 2013-12-13 20:48:51 · 2771 阅读 · 0 评论 -
3G移植(中兴MG3732和MC8640)
前几周一直在移植android4.0,这里呢,先把3G的移植过程详细记录下来,以便于在以后的工作中遇到类似问题可以很快的解决,也对其它在这块有困惑的人一个帮助。首先,在移植3G的过程中遇到了很多小问题,比如说把所有的东西都加进去了之后,在发送AT+CSQ?指令的时候,一直返回99,99,这个情况就是没有信号的意思,但是一直是这样,检查了好久,原来是项目部给我装的整机没有装天线,没办法,拿过去让原创 2013-12-22 22:11:00 · 6352 阅读 · 4 评论 -
camera拍照出现Failed to mmap错误
在移植完camera之后,点击拍照,在聚焦之后就卡死在当前界面,查看系统log发现错误如下: 也就是上面说的错误,在问过度娘之后,知道这个是内存分配失败的问题,也就是说我在内核中给的内存大小不够大造成的,那么就要修改mach-smdkv210.c中的内容如下所示: 未修改之前如下所示,我的camera模块是OV3640,那么分配的内存就是8192KB:原创 2013-12-23 12:37:15 · 1979 阅读 · 0 评论 -
android 休眠唤醒机制分析(一)
Android的休眠唤醒主要基于wake_lock机制,只要系统中存在任一有效的wake_lock,系统就不能进入深度休眠,但可以进行设备的浅度休眠操作。wake_lock一般在关闭lcd、tp但系统仍然需要正常运行的情况下使用,比如听歌、传输很大的文件等。本文主要分析driver层wake_lock的实现。一、wake_lock 定义和接口[cpp] view转载 2013-12-25 23:24:36 · 3987 阅读 · 0 评论 -
android 休眠唤醒机制分析(三)
前面我们分析了休眠的第一个阶段即浅度休眠,现在我们继续看休眠的第二个阶段 — 深度休眠。在深度休眠的过程中系统会首先冻结所有可以冻结的进程,然后依次挂起所有设备的电源,挂起顺序与设备注册的顺序相反,这样保证了设备之间电源的依赖性;直至最后进入省电模式,等待用户或者RTC唤醒;在唤醒过程中则会按照设备注册的顺序依次恢复每个设备的电源进入正常工作状态,解冻相关的进程,然后再进行浅度休眠的唤醒流程。转载 2013-12-25 23:26:22 · 1244 阅读 · 0 评论 -
android 休眠唤醒机制分析(二)
early_suspend是Android休眠流程的第一阶段即浅度休眠,不会受到wake_lock的阻止,一般用于关闭lcd、tp等设备为运行的应用节约电能。Android的PowerManagerService会根据用户的操作情况调整电源状态,如果需要休眠则会调用到HAL层的set_screen_state()接口,在set_screen_state()中会向/sys/power/state节点转载 2013-12-25 23:25:36 · 2219 阅读 · 0 评论 -
基于Android的SDIO-WIFI移植(1)(2)
一、SDIO 设备驱动移植 很不巧内核已经“被”支持了,我就先不费这事了。二、配置内核以支持Marvel无线WIFI在这里我编译成模块的方式: Device Drivers ---> [*] Network device support ---> Wireless转载 2013-12-26 18:39:03 · 1218 阅读 · 0 评论 -
基于FS2410的wpa_supplicant移植
上篇已经移植成功SDIO WIFI,不过AP是没有加密的。而现在的无线wifi网络大多是wpa加密。所以就要用到wpa_supplicant这个工具。下面就是移植过程:一、下载源码 http://hostap.epitest.fi/wpa_supplicant/ 下载wpa_supplicant-0.7.3.tar.gz (openssl用到0.7.3提转载 2013-12-26 18:40:36 · 745 阅读 · 0 评论 -
Android WIFI框架分析(1)(2)
趁做Android WIFI驱动移植,对Android WIFI框架做了深刻的分析,并做此文档共同学习。 对上层WIFI的应用,基本流程为:(1)WIFI初始化 (2)Wifi启动 (3)开始扫描AP (4)显示扫描的AP (5)配置AP (6)连接AP (7)获取IP地址 (8)上网转载 2013-12-26 18:39:39 · 1328 阅读 · 0 评论 -
Android OTA 升级之四:进入根文件系统
Android OTA 升级之四:进入根文件系统作者: 宋立新Email:zjujoe@yahoo.com前言 从bootloader 进入Recovery 模式后,首先也是运行Linux内核,该内核跟普通模式没有区别(减轻了BSP开发者的任务)。区别从执行文件系统开始。 Recovery 模式的细节就隐藏在其根文件系统中。 下面,我们就看看进入Reco转载 2014-01-16 15:56:42 · 745 阅读 · 0 评论 -
s5pv210 android4.0.3调试,如何去掉SGX540硬件加速
s5pv210 android4.0.3调试,如何去掉SGX540硬件加速一、现象描述及原因分析这阵子在调试320*240的屏,系统跑到启动android动画时,会打印许多这种如下信息,后面直接卡死,信息上看SurfaceFlinger应该启动了,应该是GPU驱动部分挂了;由网上相关信息得知,210硬件加速SGX540不支持320*240的加速,故在SurfaceFlinger中不使用转载 2014-01-16 18:56:15 · 3442 阅读 · 0 评论