當前位置: 首頁 > 工業電子產品 > 其他電子產品 > 開發板,套件,編程器 > 開發板
發布日期:2022-10-14 點擊率:47
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終于可以正常工作。
下一篇: PLC、DCS、FCS三大控
上一篇: TI CC3200 WiFi芯片射