AR1021X是高通旗下最熱銷USB接口WiFi方案,雙頻模式,可以2.4G和5G切換。
需要用到的驅動源碼:backports,原本是compat-wireless——>2007年后重命名為 backports,適用於 Atheros的無線。
手頭上有個AR1021模塊,插上Linux ,lsusb查看,
Bus 001 Device 002: ID 0cf3:1022 Atheros Communications, Inc.
查看 ls /sys/class/net/ 發現沒有網卡設備,說明沒加載驅動
eth0 lo
沒有wlan0或uap0出來,下面需要編譯。
backports 編譯要設置的常量參數
CROSS_COMPILE="/opt/arm-2009q1/bin/arm-none-linux-gnueabi-"
ARCH=arm 平台
KLIB_BUILD= 內核源碼目錄 (一定要填正確)
KLIB= 編譯結果輸出目錄(可與KLIB_BUILD相同)
PS:KLIB_BUILD和KLIB不要搞反了,填錯了,backports 會搜尋此目錄下的.config和makefile文件。
一般make 步驟:
make defconfig-wifi
make menuconfig
make
配置.config
配置:make defconfig-XXXX
它會讀取當前 defconfigs 配置目錄下的對應的配置文件,並拷貝到當前文件,如果沒有該配置會出錯。
關於.config 配置文件有很多配置,最好拷過來用。
WLAN-AIO-BP目錄有一個(需拷貝),backports-4.4.2-1有個默認的,backports/defconfigs 也有個各種需要的。
官方文檔說拷貝來用!!!
Config Backport
> cd backports-3.18.1-1
> cp ../.config ./
> make
如果你內核路徑填的是X86的Linux的,且沒指定平台和編譯器,那么編出來是X86PC用的Ko文件,如下圖:
此時,只編出來2個ko驅動文件,還需要第二步編譯。
進入到build 打補丁,一般不會出錯
> cd WLAN-AIO-BP/build/
> make drivers_patch BOARD_TYPE=x86
打完補丁。要用X86平台來make,需要注意。
> make BOARD_TYPE=x86
在這個文件中build/scripts/x86/config.x86: 修改內核源碼,工具鏈和平台
export KERNELPATH=/home/xiaojie/ittim_work/Logic_UB25_1021x/linux-3.3-fa
export KERNELARCH=arm
export TOOLPREFIX=/home/xiaojie/ittim_work/Logic_UB25_1021x/toolchain_gnueabi-4.4.0_ARMv5TE/usr/bin/arm-unknown-linux-uclibcgnueabi-
把上面arm平台換電腦平台的
export KERNELPATH=/lib/modules/${shell uname -r}/build
export KERNELARCH=x86
#export TOOLCHAIN=/home/frank/qca9375-le-5-2-0_qca_oem.git/toolchain_gnueabi-4.4.0_ARMv5TE/usr/bin
第二部編譯結果:
在 WLAN-AIO-BP 目錄下生產一個rootfs-x86.build用的文件夾,里面有驅動文件和庫。
在lib/firmware下有需要的bin固件,AR1021的固件路徑是:\firmware\ath6k\AR6004\hw3.0\
在lib/modules 下有ath6kl_usb.ko 和ath6kl_SDIO.ko
把 ath6kl_usb.ko 拷到內核系統的目錄。
此時,需要的文件就是:
compat.ko
cfg80211.ko
ath6kl_usb.ko
逐級插入驅動,否則出錯Unknown symbol in module
注意lib/firmware下有需要的bin固件,插入完成后查看
$ ls /sys/class/net/
eth0 lo p2p0 wlan0
終於有無線網卡出來了。
如果要啟用Ap模式要用hostapd和udhcpd。
要啟用station模式要用wpa_supplicant
鏈接:https://pan.baidu.com/s/1AJ6gVMTXy0CRviu3zmK8hA
提取碼:d1ao