aic8800M40低功耗sdio wifi在arm-linux平臺調試經驗

背景

好多年沒有搞過wifi相關的內容了,最近也被安排上了,把一顆低功耗aic8800M40的芯片在arm-linux開發板上做bring up,記錄一下SDIO wifi調試的過程和經驗,SDIO驅動這里需要改動一些linux內核HOST驅動代碼,會在文章中貼出來:

AIC8800M40芯片簡介

這個wifi芯片是一顆低功耗wifi藍牙芯片,跟常電的wifi芯片有所區別的是,如果跑低功耗模式,wifi協議棧是直接跑在芯片上面,所以也就不需要常規使用的cfg80211,wpa_supplicant和hostapd了;AIC8800M40芯片需要先刷一個固件進去,整個wifi協議棧都是跑在芯片上面,然后linux arm主控通過SDIO接口和AIC8800M40通信,這里我們會在linux上面跑一個虛擬的網卡,這個是為了便于和應用層做socket通信,可以簡單的把這個虛擬網卡理解為一個以太網卡就行了,上層的tcp和udp數據包就可以通過虛擬網卡發送出去。
在這里插入圖片描述
然后芯片支持的WIFI6 feature如下:
CMOS single‐chip fully‐integrated RF, Modemand MAC
? Support 2.4GHz/5GHz Wi‐Fi6
? Data rates up to 286.8Mbps with 20/40MHz bandwidth
? Support 5MHz/10MHz mode
? RX sensitivity ‐97dBmin 11b 1M mode
? Tx power up to 23dBm in 11b mode, 18dBm in HT/VHT/HE MCS7 mode
? Support STA, AP, Wi‐Fi Direct modes concurrently
? Support STBC, beamforming
? Support Wi‐Fi6 TWT
? Support Two NAV, Buffer Report, Spatial reuse, Multi‐BSSID, intra‐PPDU power save
? Support LDPC
? SupportMU‐MIMO,OFDMA
? Support DCM, Mid‐amble, UORA
? Support WEP/WPA/WPA2/WPA3‐SAE Personal, MFP

固件的選擇和編譯

首先sdk目錄下有個config目錄,下面有四個系列的芯片aic8800 aic8800m40 aic8800m80x2 aic8800mc,這里我們選擇aic8800m40,然后進入這個目錄下有很多選擇:
在這里插入圖片描述
目前只需要測試wifi,所以選擇target_wifi_fhostif,這個模式支持usb和sdio接口2。接下來做如下配置:

ubuntu的配置

  • ubuntu 選擇配置python 2.7
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 2
sudo update-alternatives --config python
  • 下載安裝gcc-arm-none-eabi-9-2019-q4-major工具鏈,并配置環境變量
export GNUARM_4_8_LIB=/opt/gcc-arm-none-eabi-9-2019-q4-major/lib/gcc/arm-none-eabi/9.2.1
export PATH=/opt/gcc-arm-none-eabi-9-2019-q4-major/arm-none-eabi/bin:$PATH

修改代碼

  • 打開文件 /config/aic8800m40/target_wifi_fhostif/tgt_cfg/tgt_cfg_wifi.h
  • 定義虛擬網卡模式
/**  Hostif mode selection, match with host driverCurrent support:   
1) HOST_VNET_MODE 
2) HOST_RAWDATA_MODE*/#define CONFIG_HOSTIF_MODE  HOST_VNET_MODE

編譯燒錄固件

  • 執行編譯腳本命令:./build_fhostif_wifi_case.sh HOSTIF=

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/87932.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/87932.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/87932.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Redis基礎(1):NoSQL認識

SQL和NoSQL數據庫可以分為關系型數據庫和非關系型數據庫,SQL(Structured Query Language)相信大家并不陌生,這是用于操作關系型數據庫的語言,而NoSQL,顧名思義,它對應的就是非關系數據庫,它是操作非關系型數…

QT6 源(153)模型視圖架構里的表格窗體視圖 QTableWidget 篇三:源碼及其元素 QTableWidgetItem 的源代碼帶注釋

&#xff08;14&#xff09;本源代碼定義于頭文件 qtablewidget . h 頭文件 &#xff1a; #ifndef QTABLEWIDGET_H #define QTABLEWIDGET_H#include <QtWidgets/qtableview.h> #include <QtWidgets/qtwidgetsglobal.h> #include <QtCore/qlist.h> #include …

SSL證書是網絡安全的一把利刃

SSL證書&#xff08;安全套接層證書&#xff0c;現普遍升級為TLS證書&#xff09;確實是網絡安全領域中一把至關重要的“利刃”&#xff0c;它在保護數據傳輸安全、建立用戶信任、防范網絡攻擊等方面發揮著不可替代的作用。以下是其核心價值與作用的詳細分析&#xff1a;一、SS…

Apache 配置文件提權的實戰思考

在 Linux 系統中&#xff0c;如果普通用戶被授予以 sudo 執行 Apache 并加載自定義配置文件的權限&#xff08;如 sudo apache2 -f /home/user/user.conf&#xff09;&#xff0c;那么該權限極可能被濫用為本地提權路徑。 雖然 Apache 默認采用了更嚴格的權限限制機制&#xff…

代碼隨想錄算法訓練營第四十四天|動態規劃part11

1143.最長公共子序列 題目鏈接&#xff1a;1143. 最長公共子序列 - 力扣&#xff08;LeetCode&#xff09; 文章講解:代碼隨想錄 思路&#xff1a; 其實就是求兩個字符串的最長公共子序列的長度 與公共子數組的區別是可以不連續 &#xff0c;順序對就可以 狀態轉移方程不一樣 …

部署mysql

# 環境: 操作系統window11 安裝了vagrant 通過vagrant部署、啟動虛擬機(centos7) # 準備安裝mysql8 # 添加 MySQL 官方 YUM 源 sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm # 安裝 MySQL Server sudo yum install -y mysql-s…

SQL分析與打印-p6spy組件

有性能消耗&#xff0c;只推薦在非生產環境下使用 SpringBoot3MybatisPlushttps://baomidou.com/guides/p6spy/ MyBatis-Plus提供了SQL分析與打印的功能&#xff0c;通過集成p6spy組件&#xff0c;可以方便地輸出SQL語句及其執行時長。本功能適用于MyBatis-Plus 3.1.0及以上版本…

FLUX.1-Kontext 高效訓練 LoRA:釋放大語言模型定制化潛能的完整指南

在人工智能領域&#xff0c;尤其是大型語言模型&#xff08;LLM&#xff09;的應用浪潮中&#xff0c;高效、低成本地定制模型行為已成為關鍵需求。LoRA&#xff08;Low-Rank Adaptation&#xff09;技術以其參數高效、資源節省的特性脫穎而出。而 FLUX.1-Kontext 作為一款創新…

群暉 DS3617xs DSM 6.1.7 解決 PhotoStation 安裝失敗問題 PHP7.0

群暉 DS3617xs DSM 6.1.7 解決 PhotoStation 安裝失敗問題 PHP7.0問題描述解決方案1. 準備所需文件2. 檢查當前 PHP 版本3. 安裝 PHP 版本5. 查詢已安裝好的套件6. 升級 PHP 版本7. 手動安裝套件PhotoStation注意事項總結問題描述 在群暉 DS3617xs DSM 6.1.7-15284 版本中&…

pnpm 升級

pnpm 的安裝源太多了&#xff0c;感覺系統變量都有引入順序。 今天踩坑記錄&#xff1a; pnpm &#xff0c;如果最初用npm 裝的&#xff0c;可以用npm 升級&#xff1b; 如果最初用brew 裝的&#xff0c;得用brew 升級&#xff1b; 如果最初是用corepack 裝的得用corepack 升級…

[C#] WPF - 資源URI

一、組成 1、資源URI總共包括4個部分(當前程序集可以省略前3個)&#xff1a; ①&#xff1a;pack://application:,,, ②&#xff1a;/[程序集名稱] ③&#xff1a;;Component ④&#xff1a;/[資源路徑] 二、舉例 項目結構如下圖所示&#xff1a; 1、MainWindow.xaml 文件…

【Mysql系列】Mysql 多級隔離級別揭秘

目錄 一、什么是隔離級別 1.1、為什么復合操作需要事務&#xff1f; 1.2、事務的 ACID 特性如何保障操作可靠性&#xff1f; 1.3、隔離性通過隔離級別來控制 二、為什么用多級隔離級別 2.1、事務并發執行時可能引發以下問題 2.1.1、臟讀&#xff08;Dirty Read&#xff…

odoo17 警示: selection attribute will be ignored as the field is related

在 Odoo 17 中&#xff0c;當使用 related 字段時&#xff0c;直接在 fields.Selection 中指定選擇列表會被忽略&#xff08;因為選擇項會從關聯字段繼承&#xff09;。wtd_fuwlx fields.Selection(服務類型 , relatedwtd_id.fuwlx, storeTrue)遇到了一個警告&#xff0c;提示…

gemma-3n-E2B多模態模型使用案例:支持文本、圖像、語音輸入

參考&#xff1a; https://developers.googleblog.com/en/introducing-gemma-3n-developer-guide/下載&#xff1a; https://modelscope.cn/models/google/gemma-3n-E2B-it 模型下載 運行代碼&#xff1a; https://github.com/huggingface/huggingface-gemma-recipes 微調&…

計算機網絡實驗——互聯網安全實驗

實驗1. OSPF路由項欺騙攻擊和防御實驗一、實驗目的驗證路由器OSPF配置過程。驗證OSPF建立動態路由項過程。驗證OSPF路由項欺騙攻擊過程。驗證OSPF源端鑒別功能的配置過程。驗證OSPF防路由項欺騙攻擊功能的實現過程。二、實驗任務使用自己的語言簡述該實驗原理。如圖1所示的網絡…

Pytorch中torch.where()函數詳解和實戰示例

torch.where() 是 PyTorch 中非常常用的一個函數&#xff0c;功能類似于 NumPy 的 where&#xff0c;用于條件篩選或三元選擇操作。在深度學習訓練、掩碼操作、損失函數處理等場景中非常常見。一、基本語法 torch.where(condition, x, y)condition&#xff1a;一個布爾張量&…

基于Hadoop的公共自行車數據分布式存儲和計算平臺的設計與實現

文章目錄 有需要本項目的代碼或文檔以及全部資源&#xff0c;或者部署調試可以私信博主項目介紹&#xff1a;基于Hadoop的公共自行車數據分布式存儲與計算平臺設計與實現數據介紹數據預處理 Hadoop 集群的幾個主要節點介紹1. NameNode&#xff08;主節點&#xff09;2. DataNod…

Java項目:基于SSM框架實現的程序設計課程可視化教學系統【ssm+B/S架構+源碼+數據庫+畢業論文】

摘 要 使用舊方法對程序設計課程可視化教學信息進行系統化管理已經不再讓人們信賴了&#xff0c;把現在的網絡信息技術運用在程序設計課程可視化教學信息的管理上面可以解決許多信息管理上面的難題&#xff0c;比如處理數據時間很長&#xff0c;數據存在錯誤不能及時糾正等問題…

Unity 實現 NPC 隨機漫游行為的完整指南

在游戲開發中&#xff0c;NPC&#xff08;非玩家角色&#xff09;的行為邏輯對于營造真實、沉浸式的游戲世界至關重要。一個常見但又極具表現力的需求是&#xff1a;讓 NPC 在場景中自然地隨機移動&#xff0c;仿佛它們有自己的意識和目的地。 本文將詳細介紹如何使用 Unity 的…

重新學習Vue中的按鍵監聽和鼠標監聽

文章目錄按鍵事件1. 使用 keyup.enter 修飾符2. 使用 v-on 監聽鍵盤事件3. 在組件上監聽原生事件Vue 2Vue 34. 全局監聽鍵盤事件注意事項鼠標事件1. 基本鼠標事件監聽常用鼠標事件2. 事件修飾符3. 鼠標按鍵檢測4. 鼠標位置信息5. 自定義指令監聽鼠標事件6. 組合鼠標事件7. 性能…