android wifi驱动适配

1、获取驱动

一般是通过客户向原厂获取到该款wifi的驱动。

2、编译修改

Kconfig修改:

路径:longan/kernel/linux-4.9/drivers/net/wireless/Kconfig

--- a/drivers/net/wireless/Kconfig
+++ b/drivers/net/wireless/Kconfig
@@ -116,5 +116,6 @@ source "drivers/net/wireless/uwe5622/Kconfig"
source "drivers/net/wireless/rtl8822bs/Kconfig"
source "drivers/net/wireless/rtl8723ds/Kconfig"
source “drivers/net/wireless/rtl8821cs/Kconfig”
+source “drivers/net/wireless/ssv6x5x/Kconfig”

 Makefile修改:

   --- a/drivers/net/wireless/Makefile
  +++ b/drivers/net/wireless/Makefile
   obj-$(CONFIG_SPARD_WLAN_SUPPORT) += uwe5622/
  +obj-$(CONFIG_SSV6158)   += ssv6x5x/

3、驱动移植

将获取到的ssv6x5x wifi驱动放到对应的驱动目录下

longan/kernel/linux-4.9/drivers/net/wireless

4、内核配置

make ARCH=arm64 menuconfig 手动进行修改。或者按如下方法修改代码:
路径:longan/kernel/linux-4.9/arch/arm64/configs/sun50iw9p1smp_h616_android_defconfig

CONFIG_AIC8800_WLAN_SUPPORT=m
CONFIG_AIC8800_BTSDIO_SUPPORT=m
+CONFIG_SSV6X5X=m

5、依赖

查看原厂提供的驱动移植指南,确认是否要依赖一些特殊属性。

(1)ssv6x5x WiFi 驱动配置,config 需要进行配置如下。如要 ssv6x5x buildin 到内核(前提是cfg80211/mac80211 都需要 buidin 到内核),buildin 选 Y,编成 module 选 M”。


(2)内核需支持 MAC80211 & cfg80211,buildin 选 Y,编成 module 选 M。”
那么这里就需要在配置中加上80211的配置。

路径:longan/kernel/linux-4.9/arch/arm64/configs/sun50iw9p1smp_h616_android_defconfig

# CONFIG_CFG80211_WEXT is not set
# CONFIG_LIB80211 is not set
-# CONFIG_MAC80211 is not set
+CONFIG_MAC80211=y
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_MINSTREL_HT=y
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"

6、ssv适配

android的ssv适配:保证\android\hardware目录下ssv文件有适配

7、 使能P2P功能

路径:android/hardware/aw/wireless/wlan/config/p2p_supplicant_overlay.conf

--- a/wlan/config/p2p_supplicant_overlay.conf
+++ b/wlan/config/p2p_supplicant_overlay.conf
@@ -1,3 +1,4 @@
+p2p_no_group_iface=1
disable_scan_offload=1

 路径:android/external/wpa_supplicant_8/wpa_supplicant

   --- a/wpa_supplicant/wpa_supplicant.c
   +++ b/wpa_supplicant/wpa_supplicant.c
   @@ -5807,6 +5807,11 @@ static int wpa_supplicant_init_iface(struct wpa_supplicant *wpa_s,
         * Doing it here as it determines whether l2_packet_init() will be done
           * during wpa_supplicant_driver_init().
            */
   +
   +       if (strstr(wpa_s->ifname, "wlan")) {
   +               wpa_s->drv_flags = wpa_s->drv_flags | WPA_DRIVER_FLAGS_DEDICATED_P2P_DEVICE;
   +       }

8、wifi驱动识别与检测

        这里有两种方式,一种是强制设置(一个SDK只能支持一种wifi驱动,不建议使用),一种是自适应识别。

(1)强制设置:android\device\softwinner\XXX\BoardConfig.mk 中对wifi的几个变量进行强制设置(这里的xxx是方案名)

文件路径:android/device/softwinner/{DEVICE}/{PRODUCT}

BoardConfig.mk 文件决定 android 要加载哪一款 Wi‑Fi 模组,以及是否支持蓝牙

# wifi and bt configuration

# 1. Wifi Configuration

BOARD_WIFI_VENDOR := xxx //Wi‑Fi 模组厂商

BOARD_USR_WIFI := xxx // Wi‑Fi 模组型号

WIFI_DRIVER_MODULE_PATH := "/vendor/lib/modules/xxx.ko" // Wi‑Fi 驱动 ko 的路径

WIFI_DRIVER_MODULE_NAME := "xxx" // Wi‑Fi 驱动名称 (加载驱动后 lsmod 的名字)

WIFI_DRIVER_MODULE_ARG := "" // Wi‑Fi 驱动加载所需参数

# 2. Bluetooth Configuration

BOARD_BLUETOOTH_VENDOR := xxx // 蓝牙模组厂商

BOARD_HAVE_BLUETOOTH_NAME := xxx //蓝牙模组型号

(2)自适应识别:android/hardware/aw/wireless/hwinfo/libhwinfo.c 中加入"ssv6x5x"即可完成自动识别

9、重新编译测试

完成以上步骤后,开始进行编译,解决编译问题打包完成后,开始测试wifi的基本功能。

相关推荐

  1. android wifi驱动

    2024-02-03 05:06:02       72 阅读
  2. Hisilicon按键

    2024-02-03 05:06:02       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-03 05:06:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-03 05:06:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-03 05:06:02       82 阅读
  4. Python语言-面向对象

    2024-02-03 05:06:02       91 阅读

热门阅读

  1. 原子Linux开发板拉流rtsp播放

    2024-02-03 05:06:02       44 阅读
  2. Redis常用数据类型--Hash

    2024-02-03 05:06:02       47 阅读
  3. LeetCode //C - 2542. Maximum Subsequence Score

    2024-02-03 05:06:02       45 阅读
  4. Python与Go中详细的异常处理机制|面试题

    2024-02-03 05:06:02       47 阅读
  5. SouthLeetCode-打卡24年01月第5周

    2024-02-03 05:06:02       54 阅读
  6. 软件工程知识梳理0-概述

    2024-02-03 05:06:02       50 阅读
  7. 大模型系列课程学习-prompt指令快速入门

    2024-02-03 05:06:02       52 阅读
  8. Sql Server之更改跟踪功能

    2024-02-03 05:06:02       54 阅读
  9. SQL Server 函数参考手册(SQL Server 日期函数)

    2024-02-03 05:06:02       48 阅读