当前位置: 首页 > news >正文

上海网站排名seo公司国美在线网站建设费用

上海网站排名seo公司,国美在线网站建设费用,宣讲家网站官网加强作风建设,张家港市规划建设网站本文将详细介绍基于MTK平台#xff0c;适配高通#xff08;Qualcomm#xff09;QCA6696芯片的Android WLAN HAL层的移植过程#xff0c;包括HIDL接口定义、Wi-Fi驱动移植以及wpa_supplicant适配过程#xff0c;涵盖STA与AP模式的常见问题与解决方法。 1. HIDL接口简介 HID…本文将详细介绍基于MTK平台适配高通QualcommQCA6696芯片的Android WLAN HAL层的移植过程包括HIDL接口定义、Wi-Fi驱动移植以及wpa_supplicant适配过程涵盖STA与AP模式的常见问题与解决方法。 1. HIDL接口简介 HIDLHAL Interface Definition Language是一种用于定义Android HAL层与Framework之间接口的描述语言IDL其核心目的是隔离Framework与厂商提供的HAL实现使得Framework更新时无需重新编译厂商的HAL组件。厂商可独立编译并在Vendor分区中单独更新。 HIDL架构 HIDL架构由接口定义、服务端Server和客户端Client三部分构成。 接口定义Interface.hal文件定义接口及其方法。服务端Server实现HIDL接口接收客户端调用并返回数据。客户端Client调用服务端提供的接口。 Android 8.0以前HAL以.so库形式与Framework同进程运行8.0之后则分属不同进程通过HIDL进行通信。 2. HIDL的关键文件 HIDL相关的重要文件包括 .hal接口定义文件如IWifi.hal等以.hal为结尾的文件都是自己创建添加的。这里定义一些未实现的接口。 根据.hal生成的.cpp和.h文件每对这个文件都是根据前面的.hal生成的这对文件是实现接口的关键文件。 相关服务启动文件如android.hardware.wifi1.0-service.rc、service.cpp。构建文件如Android.mk、Android.bp是用Andriod提供的工具生成 以setcountrycode为例frameworks\opt\net\wifi\service\java\com\android\server\wifi\WifiNative.java frameworks\opt\net\wifi\service\java\com\android\server\wifi\SupplicantStaIfaceHal.java hardware\interfaces\wifi\supplicant\1.0\ISupplicantStaIface.hal external\wpa_supplicant_8\wpa_supplicant\hidl\1.1\sta_iface.cpp 3. 移植(STA部分) Wi-Fi驱动中的wpa_supplicant不是使用的HIDL换句话说不是为了Andriod设计的所以我们要使用MTK平台原生的wpa_supplicant。 boardconfig.mk的修改这里面用到的宏尽量保持和在高通平台用的一致。 准备适配高通的wpa_supplciant时出现问题关键在于高通的这个wpa_supplicant用的是1.2的要改成和原来适配的1.1像下面的报错就是wpa_supplicant中客户端调用的hidl接口没有完全满足。 这个时候就去external\wpa_supplicant_8\wpa_supplicant\hidl\1.1下面去把这些声明加上吗这是一个比较耗时的操作。 遇到下面这个问题时换个ctrl_interface 09-01 06:26:22.755 3699 3699 E wpa_supplicant: mkdir[ctrl_interface/var/run/wpa_supplicant]: No such file or directory 09-01 06:26:22.755 3699 3699 E wpa_supplicant: Failed to initialize control interface /var/run/wpa_supplicant. 如下 ctrl_interface/data/vendor/wifi/wpa/sockets #ctrl_interface/var/run/wpa_supplicant 因为我们执行wpa_cli默认的接口是/var/run/wpa_supplicant当我们执行wpa_cli时就会去这个接口里找socket,所以此时应该指定接口 wpa_cli -i wlan0 -p /data/vendor/wifi/wpa/sockets # 这个ctrl_interface只是创建了一个sockets给用户侧交互而已。 把Wi-Fi驱动名字换成wlan.ko否则会报类似下面的错误 在我第一天把STA模式导通后后面导通完AP模式再来看STA模式时发现总是报下面的log找不到原因。 然后就代码跟进去一行一行的看才发现是以下导致的。 我首先发现以下不对我是从界面上点击Wi-Fi按钮log中也能看到WLAN0口起来了 09-16 07:43:01.267 2410 2410 E wificond: :p2p0:wlan0 09-16 07:43:01.267 2410 2410 E wificond: :wlan0:wlan0 为什么下面的代码走的是IfaceType::P2P的分支 进一步追代码可知在supplicant.cpp中通过调用wpa_supplicant_get_iface来获取global 接口默认接口被p2p填充了而在p2p_supplciant.c中能看到若p2p_disabled参数没有被定义则p2p会把整个init流程走下来。也就是出问题的点。 而最根本的原因是wpa_supplicant_overlay.conf不知道什么原因没有了所以得把这个文件加在下面默认的目录下/vendor/etc/wifi/然后在wpa_supplicant_overlay.conf中会默认定义p2p_disabled1。 Supplicant.cpp constexpr char kStaIfaceConfOverlayPath[] /vendor/etc/wifi/wpa_supplicant_overlay.conf; 下面是正常Log左侧和异常Log右侧的对比。 下面是正常Log 09-17 05:20:22.112 2912 2912 E wpa_supplicant: Initializing interface wlan0 conf /data/vendor/wifi/wpa/wpa_supplicant.conf driver nl80211 ctrl_interface N/A bridge N/A 09-17 05:20:22.112 2912 2912 E wpa_supplicant: Configuration file /data/vendor/wifi/wpa/wpa_supplicant.conf - /data/vendor/wifi/wpa/wpa_supplicant.conf 09-17 05:20:22.112 2912 2912 D wpa_supplicant: Reading configuration file /data/vendor/wifi/wpa/wpa_supplicant.conf 09-17 05:20:22.112 2912 2912 D wpa_supplicant: update_config1 09-17 05:20:22.112 2912 2912 D wpa_supplicant: eapol_version1 09-17 05:20:22.113 2912 2912 D wpa_supplicant: ap_scan1 09-17 05:20:22.113 2912 2912 D wpa_supplicant: fast_reauth1 09-17 05:20:22.113 2912 2912 D wpa_supplicant: pmf1 09-17 05:20:22.113 2912 2912 D wpa_supplicant: p2p_add_cli_chan1 09-17 05:20:22.113 2912 2912 D wpa_supplicant: Reading configuration file /vendor/etc/wifi/wpa_supplicant_overlay.conf 09-17 05:20:22.113 2912 2912 D wpa_supplicant: disable_scan_offload1 09-17 05:20:22.113 2912 2912 D wpa_supplicant: p2p_disabled1 4. 移植AP部分 1、AP部分出现下面的log时把hostapd.conf中的下面参数注释掉 #ctrl_interface_groupradio 09-10 08:45:53.858 3720 3720 D hostapd : Using existing control interface directory. 09-10 08:45:53.858 3720 3720 E hostapd : billy ctrl_interface_gid_set:1,ctrl_interface:/data/vendor/wifi/wpa/sockets,ctrl_interface_gid:1001,ctrl_iface_group:0 09-10 08:45:53.858 3720 3720 E hostapd : billy1 lchown[ctrl_interface]: Operation not permitted 09-10 08:45:53.858 3720 3720 E hostapd : Failed to setup control interface for wlan0 2、出现下面的权限问题时chmod 777 /sys/module/wlan/parameters/fwpath 3、解决完了会遇到下面的问题。 09-10 10:52:23.461 4043 4043 E android.hardware.wifi1.0-service: Unknown iface name: ap0 我在hardware/interface下面发现createApIfaceInternal里面获取interface时直接写死成了ap0不知道是不是MTK的操作。Ap0我们是没有这样的接口的把它释放后上面的错误就OK了。 下面是起AP时起的wlan0口。 09-15 00:43:38.992 2579 2677 I WifiNative: Interface state changed on Iface:{Namewlan0,Id16,TypeAP}, isUptrue 09-15 00:43:38.992 2579 2677 I WifiNative: Successfully setup Iface:{Namewlan0,Id16,TypeAP} 5. 总结 通过上述方法和注意点能顺利完成MTK平台对QCA6696 WLAN HAL层的移植。整体改下来主要是改的wpa_supplciant下面的hidl和.c部分比较少改动hardware/interface/下面没有改动framework部分。 也就是说主要改的是HIDL 的server端即接收hidl调用并返回数据的一方client端怎么调用那是固定好的比如在该获取interface的时候我们不管它怎么调我能保证我返回的interface可用就行。
http://www.hkea.cn/news/14337187/

相关文章:

  • 品牌网站建设公司有哪些网站制作系统哪个好
  • 铁岭卫生职业学院官方网站建设中国突然宣布大消息
  • 网站设计与网站开发是同时进行的网站的标题与关键词
  • 上海网站络公司网站开发成本预算表
  • 手机网站设计字体多大沧州做网站的公司
  • 建设网站花都区联享品牌网站建设公司
  • 网站设计的基本过程重庆网页设计培训学校
  • 晋江企业网站制作郯城做网站
  • 怎样做能让招聘网站记住密码网站搭建实训总结
  • 建设医院网站ppt模板建筑人工作网
  • 吴江建设局网站打不开储煤棚网架公司
  • 北京网站开发哪家公司好在线图片制作生成器
  • 知名的摄影网站有哪些科技公司.net网站源码
  • 电商企业网站建设情况铝单板设计师招聘网
  • 别样网站建设重庆互联网
  • 东坑镇网站仿做京东商城网站开发平台
  • 手机单页网站iis网站配置教程
  • 襄阳市建设工程造价管理站网站杭州手机网站建设公司
  • 软件工程师是什么专业seo上首页排名
  • 网站建设中页面html上海的网站设计公司
  • 商务网站建设实训报告多城市网站建设
  • 做网站弄什么语言沐众科技网站建设
  • wordpress外贸网站wordpress添加博主简介
  • 西安门户网站建设公司哪家好安徽省建设厅网站个人怎么注册
  • 无锡住房和城乡建设局网站黑马程序员大学叫什么
  • 汕头网页设计网站方案广州越秀区酒店推荐
  • 网站500错误 虚拟主机全球域名最贵的100个域名
  • 怎么用cms做网站临时网页生成
  • 济宁万达网站建设网页在线发短信平台
  • 湖南建设厅网站二建注销qq是用什么软件开发的