WiFi驅動程序調試過程

2021-01-08 電子發燒友

Freescale i.MX6 + Qualcomm Atheros AR9582並不罕見,但AR9582即WiFi部分採用on-board設計,就是是前所未有的,獨一無二的設計。需要指出的是,AR9582與i.MX6採用PCI-e接口進行通信,其性能遙遙領先於SDIO接口WiFi模塊。

首先面臨的問題是對WiFi進行校準與測試,按照本站早前發表的《為Freescale i.MX6處理器移植ART》文中提到的方法,對ART腳本進行小幅改動之後,板載AR9582進行射頻校準與測試順利完成,校準信息也正確寫入。

接下來面臨的問題是WiFi驅動程序問題,這也是本文的重點,以下是記錄的調試過程。

1. 對於校準完成的板子,依次加載ath9k_hw.ko,ath9k_common.ko,ath9k.ko,使用ifconfig -a命令,卻看不到wlan0網卡。

2. 由於上一版採用AR9382插卡的方式,可以正常加載驅動程序,所以可以排除PCI-e總線的驅動問題;這一版的板載AR9582設計取自量產方案,可以保證設計準確性。

3. 看不到wlan0網卡的情況通常是由於WiFi未校準引起的,使用cat /proc/bus/pci/devices命令,可以看到AR9582的devid為0033,如果未校準devid應為abcd。

4. 經過漫長的代碼閱讀及分析,發現LTIB軟體包中自帶的ath9k驅動程序目錄下的hw.h中不存在0033這樣的devid,而AR9382的devid 0030則存在其中,如下圖。

5. 那麼問題應該就出在這裡,LTIB軟體包中自帶的ath9k驅動程序版本過低,無法識別較新的WiFi晶片。

6. Google一下,發現compat-wireless是普遍使用的WiFi驅動程序。compat-wireless是一個Linux的無線驅動兼容性解決方案,提供Linux內核2.6.25及以上版本的最新無線驅動支持的改進。它可以在Linux 802.11系統上進行編繹和安裝而不必重新編繹整個內核。而對於一些用戶來說可能需要獲得最新的compat-wireless驅動包以解決網卡的驅動問題。

7. 下載compat-drivers-3.7.1-1.tar.gz,解壓後放置於ltib/rpm/BUILD目錄下。可以看到AR9580系列晶片對應的devid 0033出現在其中,如下圖。

8. 根據實際情況變更config.mk文件。

9. 根據編譯伺服器的實際情況確定toolchain及Kernel的路徑編譯命令為:make ARCH=arm CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi- KLIB=/home/alex/ltib/rpm/BUILD/linux-3.0.35 KLIB_BUILD=/home/alex/ltib/rpm/BUILD/linux-3.0.35 CONFIG_NET_SCHED=1

10. 編譯完成後可得下列的內核模塊:

./compat/compat.ko

./drivers/net/wireless/ath/ath.ko

./drivers/net/wireless/ath/ath9k/ath9k.ko

./drivers/net/wireless/ath/ath9k/ath9k_common.ko

./drivers/net/wireless/ath/ath9k/ath9k_hw.ko

./net/mac80211/mac80211.ko

./net/wireless/cfg80211.ko

11. 將以上內核模塊打包至文件系統,並按照順序依次加載模塊,板載AR9582終於可以正常工作。

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • Keil C51程序調試過程
    用MCS-51單片機軟體Keil C51編寫程序時,經常需要調試,如果不是經常用這個軟體的話,很容易忘記這些調試步驟,現在舉一個例子「驗證延遲函數delay()
  • 小米隨身wifi驅動怎麼安裝
    小米隨身wifi是小米推出的一款硬體產品,與360隨身wifi類似。小米隨身wifi需要安裝驅動程序才能夠正常使用,當插入小米隨身wifi時,程序不能自動加載驅動程序,您就需要手動進入小米官網下載並安裝驅動了。有時候,在一些電腦中,您的小米隨身wifi無法正常工作。
  • 通過wifi連接手機使用adb命令調試APP
    現在才知道以前調試APP很傻,每次都搞一根USB線連到電腦上,今天才發現通過wifi其實可以實現無線安裝調試APP,感覺太高級了,一下覺得自己之前是多麼的low,為什麼要用無線呢,主要是調試AR應用,需要手機到處移動來測試,所以通過wifi無線方式來調試,太nice了有木有。
  • 淺談三種單片機程序調試方法
    一、仿真器調試(硬體仿真)最近咱們學院購買了廣州致遠電子有限公司的周立功DP-51PROC試驗儀,上周四下午,我們去倒騰了一番,感覺這試驗儀對學習51系列單片機還是蠻有用處的,特別是結合其仿真器進行調試程序還是很好的。
  • 麻將機安裝戰神程序G-V2怎麼調試?
    麻將機安裝戰神G-V2程序,安裝完畢怎麼調試呢(1)、修改手機熱點名稱及密碼,將手機熱點名稱改成mj-1至9任意數字,熱點密碼改成同名稱後面數字的8個相同數字,例如名稱是mj-1,密碼就改成11111111,打開熱點連接(2)、將麻將機電源打開,打開手機撥號精靈輸入8888加撥號鍵與藍牙連接,輸入18加撥號鍵或直接定位啟動鏡頭,然後再輸入3333加撥號鍵進入觀牌界面,等觀牌界面顯示鏡頭正常、串口正常、識別程序正常、鏡頭參數正常,再輸入*778899#進入調試鏡頭界面(3)
  • 調試Python程序的四種方法
    程序編寫完成或在編寫過程中,需要對程序進行測試,根據測試發現的錯誤,進一步診斷,找出發生錯誤的原因和具體代碼位置進行修改,這個過程稱為程序調試。在一些情況下,可能需要查看或跟蹤程序的運行狀態,這種情況也屬於程序調試。
  • 【體驗】ESP32-CAM可能是最便宜的「監控」方案,ESP32-CAM程序下載調試
    這個ESP32-CAM的帶wifi功能的主板+攝像頭只要40+,還有個SD卡槽,這價格對比起真是相當感人呀。收到貨之後準備試試效果,沒找到USB藉口…(廠家為了節省成本?)沒辦法只能找個USB轉串口的工具下載程序(真麻煩…)。Nodemcu上有USB轉串口啊(我會告訴你我的USB轉串口沒找到?),可以通過麵包板固定,目前覺得這樣比較簡單靠譜,便於使用和後期調試。
  • 如何用小度wifi作無線網卡
    我最近用到小度wifi做無線網卡,結合自己的實際操作,特意來修改一下網上相關經驗的一些不足之處。小度wifi(以及市面上大部分的隨身wifi)都是基於802.11n標準的usb網卡。首先就是根據官網介紹,小度wifi最新驅動本身已經具備切換成無線網卡模式。
  • 驅動調試技巧點滴分享
    如何體現在工作的調試中?作為驅動工程師,主要的工作就是移植各種驅動,接觸各種硬體。接觸最多的就是dts、中斷、gpio、sysfs、proc fs。因此對於驅動來說,硬體的這種變化,只需要修改dts即可。軟體不用任何修改。
  • 小程序之調試技巧
    Console的使用對於小程序來說,最常用的方式就是console。在關鍵地方觀察數據和執行。那麼當運行在真機上時怎麼看console呢?有兩種辦法:真機調試:點擊真機調試,然後使用手機操作,同時在PC上彈出的窗口中觀察。
  • STM32在調試過程中常見問題和解決辦法
    在設計硬體時還需參考數據手冊以獲得電壓、電流、管腳分配、驅動能力等信息。 (3) STM32有幾種封裝形式?是否符合RoHS的要求?STM32調試過程中常見的問題及解決方法 一、 在「Debug選項卡」下設置好仿真器的類型後,下載程序時卻提示「No ULINK Device found.」
  • 編程|程序調試之調試窗口
    程序寫出來後,總是有這樣那樣的錯誤,調試技巧就顯得很重要了。另外,對於一些理解一些複雜的算法,在關鍵的一些代碼段通過單步調試,便能加深理解。所以說,調試對於編程來說,不但必不可少而且還很重要。調試的一個很重要的方面,就是知道如何在一些調試窗口中查看自己想要了解的內容。
  • python中使用pycharm變量與程序調試
    二、利用pycharm來進行調試python程序調試:所謂調試,就是要看到程序運行的過程,且需要知道自己在程序中寫的所有的變量的值的變化。調試之前注意:一定要先下斷點(紅色的點),斷點的作用就是讓程序調試的時候,自動運行到下斷點的位置。藍色條代表代碼運行到這行,但是這行語句還沒有被執行。
  • 遠程調試Java程序
    一、概述Java的遠程debug,可以在本地打斷點,調試遠程程序方法是修改JAVA_OPTS參數,使用Eclipse或IDEA等工具調試。遠程調試有兩種方式:主動連接調試:服務端配監控埠,IDE連接遠程埠。被動連接調試:IDE設置監聽埠,等遠程連接本地埠。
  • eclipse怎麼調試程序 調試代碼的方法介紹
    1、設置斷點   在程序裡面放置一個斷點,也就是雙擊需要放置斷點的程序左邊的欄目上。   2、調試   (1)點擊"打開透視圖"按鈕,選擇調試透視圖,則打開調試透視圖界面,然後先設置斷點,按調試按鈕則可以調試程序。   (2)或者直接點擊調試按鈕,那個蟲子樣子的按鈕,然後就會進入調試透視圖的界面。前提你需要是要在程序中設置好斷點。
  • 如何在開發和測試期間對驅動程序進行籤名
    開發和調試的時候驅動程序還是很不穩定會遇到各種問題,所以該形態下的驅動程序不適合也不能成功獲得微軟籤名,所以在該階段為了能讓驅動程序可以在windows電腦上可以正常運行調試測試。為了能達到這個目標我們就要對驅動進行測試籤名,以方便我們工程師調試,下面我就介紹一下測試籤名的整個過程。一、測試證書的創建測試籤名需要測試證書。
  • 驅動程序
    電腦驅動程序?電腦驅動是一種程序,名為「設備驅動程序」,他是作業系統與電腦硬體之間的紐帶,主要的功能就是能讓我們的電腦硬體設備能夠在作業系統下正常運行。查看自己電腦的驅動程序?想查看自己電腦的驅動程序,將滑鼠放在桌面圖標「此電腦」右鍵,點擊「管理」,再點擊「設備管理器」,就能看見自己電腦上對應的驅動程序了。
  • >如何添加一個adb wifi無線調試的功能【開發者選項】-【Wifi...
    >>> 首先弄懂怎麼設置adb wifi無線調試的功能,如下所示。 1.
  • 臺式機怎麼連接wifi?臺式機連接wifi教程
    現如今無線網絡可以說是已經很普遍了,不論是在家庭中還是辦公場所都是有無線覆蓋的,大家如果使用手機或是筆記本還好,基本都知道怎麼連接wifi,但是對於臺式機怎麼連接wifi卻很多人不太了解,確實臺式機連接wifi是需要簡單的進行設置的,那麼臺式機怎麼連接wifi?臺式機連接wifi教程是怎樣?
  • iOS 真機調試微信小程序
    平時開發小程序可以在開發者工具中進行調試,開發者工具提供了類似Chrome DevTools的調試面板,對於前端開發者來說入門門檻比較低。小程序開發完成之後,我們需要在真機上進行測試,真機調試方面小程序開發者工具有預覽、遠程調試和設置體驗版本三大部分功能。