前言
小弟从事android wifi framework部分开发已经有一年的时间了,虽然感觉什么都没有学习到,但是回想起刚接手android wifi时候的那份无知,其实肚子里面还是有点东西的,本着共同进步的想法,特此贴出来与各位分享。
在写wifi移植这个系列的文章的时候,小弟有一些事情需要说明,那就是我上面不会apk,下面不会supplicant和driver,这个是大公司的通病,基本每个工程师只熟悉很小一个模块,而我也不例外,一般apk的问题有同事负责处理,supplicant和driver的问题因为跟硬件和spec比较接近,这一块一般是由厂家在负责处理,目前比较大一点的wifi厂家有:realtek,ralink,atheros(ralink被mediatek收购了,atheros被qualcomm收购了)。
准备工作
在porting wifi之前你有一些东西需要准备,具体清单如下:
(1):android source(没有这个你怎么移植wifi网卡到自己的平台上?)
(2):kernel source(这个是android所依赖的kernel,主要用途是后续用来build driver使用)
(3):driver source(这个是需要加载driver的source,realtek和ralink一般能拿到源码,atheros是美国公司,版权看的比较重,基本拿不到driver的source)
(4):tool chain(build driver所使用的交叉编译链,必须要有)
有了上述4样你才可以开始着手后续的porting,本文主要讲解porting的flow,具体上述东西怎么使用以后再统一介绍。
正文
首先讲解一下porting wifi的大致流程,具体如下:
(1):load wifi driver(网卡启用的先决条件)
(2):起supplicant(这里面带参数很重要)
(3):给supplicant下指定的命令(这个是wifi framework与driver之间的通讯方式)
(1)load wifi driver</