![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 70
2Jeff2
这个作者很懒,什么都没留下…
展开
-
关于USB麦克风框架
最近遇到一个问题:插入带麦克风的USB摄像头,摄像头可以正常输出图像但是没有声音,跟踪了一下整个框架记录一下先从kernel入手:kernel/sound/usb/card.c当插入USB麦克风,USB Core会通过注册的usb_audio_ids 匹配到usb_audio_probe()函数static struct usb_device_id usb_audio_ids [] = {#include "quirks-table.h" { .match_flags = (U.原创 2021-02-10 12:14:15 · 736 阅读 · 0 评论 -
Android HAL层库加载原理
Android HAL层的由来:由于市面做移动芯片的厂商很多,大部分厂商考虑到自己硬件的设计架构、安全、专利等方面原因,不愿意公开自己的这方面代码,也出于不同厂商硬件架构不太一样,适配开发难度周期长,GOOGLE在kernel之上加了一个HAL层,只要各个厂商实现Android 所需要的功能接口,可以以库的方式提供不用开源。问题来了,android如何实现针对不同的Hardware Module进行通用性调用的呢?以加载camera HAL层库为例:#define CAMERA_HARDWARE_NO原创 2021-02-10 12:04:00 · 265 阅读 · 1 评论 -
F2FS格式化过程
f2fs_super_block:struct f2fs_super_block { __le32 magic; /* Magic Number */ __le16 major_ver; /* Major Version */ __le16 minor_ver; /* Minor Version */ __le32 log_sectorsize; /* //log2 sector原创 2021-02-10 11:58:40 · 994 阅读 · 0 评论 -
F2FS MOUNT过程
整个磁盘区域被F2FS设计为6个区域,分别是Superblock,Checkpoint,Segment Info Table,Node Address Table,Segment Summary Area,以及Main Area。前5个区域总称为元数据区域,保存的是跟F2FS直接相关的元信息,而最后一个区域是保存文件数据的主要区域。元数据区域的主要作用是维持F2FS的一致性,然而频繁地修改元数据区域的数据会带来性能下降,也会导致磁盘寿命的减少,因此F2FS给每个区域在内存中创建了一个专门的数据结构..原创 2021-02-10 11:53:08 · 1197 阅读 · 2 评论 -
F2FS 之 元数据
Superblock 结构Superblock保存了F2FS的核心元数据的结构,包括磁盘大小,元区域的各个部分的起始地址等。Superblock在元数据区域的物理结构Superblock区域是由两个struct f2fs_super_block结构组成,互为备份。Superblock物理存放区域结构f2fs_super_block是F2FS对Superblock的具体数据结构实现,它保存在磁盘的最开始的位置(其实偏移了0x400),F2FS进行启动的时候从磁盘的前端直接读取出来。struct原创 2021-02-10 11:27:44 · 618 阅读 · 0 评论 -
F2FS 基础支持三
默认块分配在运行时,F2FS在“Main Area”区域管理6个活跃的log,分别是Hot/Warm/Cold node log和Hot/Warm/Cold data logs:(1) Hot node contains direct node blocks of directories.(2) Warm node contains direct node blocks except hot node blocks.(3) Cold node contains indire原创 2021-02-10 10:43:13 · 251 阅读 · 0 评论 -
F2FS 基础知识二
1.文件索引树结构大多数现代文件系统都喜欢使用 B-trees 或类似的结构来管理索引(index)以定位文件中的 blocks。大多数文件系统中通过使用“extents”来减少文件数据块的总索引大小。F2FS 不采用 B-tree 结构管理索引,也不使用extents减少文件数据块索引的大小(虽然F2FS为每个节点(node)维护一个extent作为提示)所谓的extent指的是一段连续的物理磁盘块,这样,只需要一个extent数据结构我们就能描述一段很长的物理磁盘空间,性价比很高。ext4文件原创 2021-02-10 10:41:19 · 1536 阅读 · 0 评论 -
F2FS 基础知识一
整个磁盘区域被F2FS设计为6个区域,分别是Superblock,Checkpoint,Segment Info Table,Node Address Table,Segment Summary Area,以及Main Area。前5个区域总称为元数据区域,保存的是跟F2FS直接相关的元信息,而最后一个区域是保存文件数据的主要区域。元数据区域的主要作用是维持F2FS的一致性,然而频繁地修改元数据区域的数据会带来性能下降,也会导致磁盘寿命的减少,因此F2FS给每个区域在内存中创建了一个专门的数据结构用于..原创 2021-02-10 10:29:59 · 2481 阅读 · 1 评论 -
CDC EEM-USB网络共享
客户用我们的台式Android 7 高通设备通过母口USB上网,开机一段时间内会出现ping不通的问题排查。1.CDC EEM USB设备插入上位机时,会被usbnet_probe()识别为USB网卡设备,然后进一步被识别为CDC EEM设备,是根据CLASS=2,SUBCLASS=0x0c,PROTO=7来识别的。CDC EEM设备:cdc_emm.c#define USB_CLASS_COMM 2#define USB_CDC_SUBCLASS_EE.原创 2021-02-10 10:12:35 · 1419 阅读 · 0 评论 -
Android9-网络架构
WLAN驱动加载驱动源码目录:启动WPA_SUPPLICANTwpa_supplicant是一个连接、配置WIFI的工具源码位置服务声明部分:device/qcom/common/rootdir/etc/init.qcom.rc注意这个服务一开始是disable的wpa_supplicant的启动是通过属性控制服务的启动:这样wpa_supplicant就被启动了,可以用来控制wlanWIFI搜索DHCPAndroid8之前版本:Android8之后.原创 2021-01-25 13:44:31 · 425 阅读 · 1 评论