AR9271linux 2.6.34 mips macarthur上的驱动

1、  relation work

  首先需要下载AR9271相关的驱动和相应的fw

  驱动源码下载地址:http://www.orbit-lab.org/kernel/compat-wireless/2012/12/

  Fw下载地址:http://linuxwireless.org/download/htc_fw/1.3/

  驱动我选择的是compat-wireless-2012-12-01.tar.bz2fwhtc_9271.fwhtc_7010.fw

2、  install

  a)compat-wireless-2012-12-01.tar.bz2解压缩;

  b)进入解压缩的目录compat-wireless-2012-12-01

  c)命令行下输入./scripts/driver-select ath9k_htc选择驱动类型

  d)命令行下输入:

    make ARCH=mips CROSS_COMPILE=mips-linux-  KLIB=$(KERNEL_PATH) KLIB_BUILD=$(KERNEL_PATH)

   KERNEL_PATH为你要安装驱动的内核根目录,这个可以根据你的需要自行设定;

  需要注意的是需要开启内核的以下选项:

  CONFIG_ATH_COMMON=m
  CONFIG_ATH9K_HW=m
  CONFIG_ATH9K_COMMON=m
  CONFIG_ATH9K_HTC=m

e)         make没有错误(最好也没有警告,有些警告在加载模块时会找不到一些内核符号),则会生成相应的ko档。

  如果不出意外会生成以下ko档(可能还会有一些其它的ko档,但至少应包括以下ko)

  Compat.ko

  ath9k_htc.ko

  mac80211.ko

  ath9k_common.ko

  ath9k_hw.ko

  cfg80211.ko

  ath.ko

3、  load modules

  a)模块的加载使用insmodmodprobe,这两个命令应该都会,不会的问度娘。

  b)模块的加载顺序和依赖关系如下(lsmod命令):

    i.    ath9k_htc

    ii.   mac80211 ath9k_htc

    iii.  ath9k_common ath9k_htc

    iv.  ath9k_hw ath9k_htc,ath9k_common

    v.   ath ath9k_htc,ath9k_common,ath9k_hw

    vi.  cfg80211 ath9k_htc,mac80211,ath

    vii. compat ath9k_htc,mac80211,ath9k_common,ath9k_hw,cfg80211

c)         将fw copy/usr/local/ firmware目录下,有的系统为/lib/firmware目录,不然会出现如下的错误

    ath9k_htc: Failed to get firmware htc_9271.fw
    usb 1-2: ath9k_htc: USB layer deinitialized

4、  advance

      更多情况下,我们需要我们的驱动支持hotplug,那这个怎么办呢?首先系统得支持hotplug,这个在大多数的操作系统中都不是问题,所以只需要将我们的模块的依赖写入相应的配置文档就ok了,这可以手动写入,也可以使用自动化的工具。

其实自动化的工具只要一条命令就搞定:

/bin/depmod -v $(KERNELRELEASE) -b $(OUTPUT_PATH)

OUTPUT_PATH为你ko档所在的目录。

当插入ar9271的网卡时,hotplug检测到设备,将会自动的加载模块。你将会看到以下信息:

usb 1-2: ath9k_htc: Firmware htc_9271.fw requested

usb 1-2: firmware: requesting htc_9271.fw

usbcore: registered new interface driver ath9k_htc

usb 1-2: ath9k_htc: Transferred FW: htc_9271.fw, size: 51272

ath9k_htc 1-2:1.0: ath9k_htc: HTC initialized with 33 credits

那恭喜你,说明你的驱动已经成功加载并开始work了。

 

Logo

更多推荐