Angstrom上的ath9k_htc(Atheros)TL-WN722N WiFi加密狗

时间:2017-10-18 08:06:41

标签: linux-device-driver embedded-linux intel-fpga wificonfiguration angstrom-linux

我正在尝试将TL-WN722N连接到Altera Cyclone SoC。我采取了以下方法:

  1. 下载打开的固件ath9k_htc并尝试将其集成到我要加载的linux内核映像中。
    一个。 https://wiki.debian.org/ath9k_htc/open_firmware:这里提到的步骤是构建工具链和固件,然后将其放在/lib/firmware中。

    湾使用此处提到的步骤构建Linux内核:https://rocketboards.org/foswiki/Documentation/GSRDCompilingLinux

    步骤a中获得的固件。已被放入/linux-socfpga/firmware,因为目录firmware中没有/lib/文件夹。

    ℃。创建的图像闪烁,并且插入了wifi加密狗。

  2. 2.这是旋风板的dmesg输出:

     [   2.223039] usb 1-1: New USB device found, idVendor=0cf3, idProduct=9271
     [    2.229735] usb 1-1: New USB device strings: Mfr=16, Product=32, SerialNumber=48
     [    2.237129] usb 1-1: Product: USB2.0 WLAN
     [    2.241124] usb 1-1: Manufacturer: ATHEROS
     [    2.245215] usb 1-1: SerialNumber: 12345
     [    5.351145] EXT4-fs (mmcblk0p2): recovery complete
     [    5.359958] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
     [    5.368058] VFS: Mounted root (ext3 filesystem) on device 179:2.
     [    5.375560] devtmpfs: mounted
     [    5.379310] Freeing unused kernel memory: 1024K (c0900000 - c0a00000)
     **[    5.670820] systemd[1]: Failed to insert module 'autofs4': No such file or directory**
     [    5.722709] systemd[1]: systemd 226 running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD +IDN)
    

    linux能够识别Atheros usb设备。但是未加载驱动程序模块。我已使用lsmod对此进行了验证,但未返回任何内容。命令ifconfigip a也不会返回任何无线连接。

    当我看到路径/lib/modules/.../kernel/drivers/net时,我只观察了2个模块ethernetmdio.ko

    内核版本:4.1.33-ltsi-altera

    这是否意味着图片中缺少我的驱动程序?这个问题的可能原因是什么?有没有人对此问题有任何其他解决方案?

    编辑:

    • 我可以在/sys/bus/usb/drivers/ath9k_htc中找到linux驱动程序,在/sys/module/ath9k_htc
    • 中找到相应的模块
    • 基本上,模块是静态配置的。
    • 现在,当我启动系统时,我发现一个错误,指出找不到所请求的固件。
    • 我已将所需的固件(htc_9271-1.4.0.fw& htc_9271.fw)放入/lib/firmware/ath9k_htc

    这是错误:

    [    2.002205] usb 1-1: new high-speed USB device number 2 using dwc2
    [    2.262666] usb 1-1: New USB device found, idVendor=0cf3, idProduct=9271
    [    2.269348] usb 1-1: New USB device strings: Mfr=16, Product=32, SerialNumber=48
    [    2.276730] usb 1-1: Product: USB2.0 WLAN
    [    2.280724] usb 1-1: Manufacturer: ATHEROS
    [    2.284815] usb 1-1: SerialNumber: 12345
    [    2.289370] usb 1-1: ath9k_htc: Firmware ath9k_htc/htc_9271-1.4.0.fw requested
    [    2.297203] usb 1-1: Direct firmware load for ath9k_htc/htc_9271-1.4.0.fw failed with error -2
    [    2.305811] usb 1-1: ath9k_htc: Firmware htc_9271.fw requested
    [    2.311658] usb 1-1: Direct firmware load for htc_9271.fw failed with error -2
    [    2.318867] usb 1-1: no suitable firmware found!
    [    2.323478] usb 1-1: ath9k_htc: Failed to get firmware htc_9271.fw
    [    2.329951] usb 1-1: ath9k_htc: USB layer deinitialized
    
    • 我也遵循了这里提到的步骤: https://unix.stackexchange.com/questions/21903/custom-kernel-fails-to-load-firmware-when-module-built-in 这解释了如何为加载固件的路径提供配置。
    • /proc/config.gz的快速grep显示了这一点:

      $zcat /proc/config.gz | grep CONFIG_ATH
      CONFIG_ATH_COMMON=y
       #CONFIG_ATH_DEBUG is not set
       #CONFIG_ATH5K is not set
       #CONFIG_ATH5K_PCI is not set
      CONFIG_ATH9K_HW=y
      CONFIG_ATH9K_COMMON=y
      CONFIG_ATH9K_BTCOEX_SUPPORT=y
      CONFIG_ATH9K=y
      CONFIG_ATH9K_PCI=y
      CONFIG_ATH9K_AHB=y
       #CONFIG_ATH9K_DEBUGFS is not set
       #CONFIG_ATH9K_DYNACK is not set
      CONFIG_ATH9K_WOW=y
       #CONFIG_ATH9K_CHANNEL_CONTEXT is not set
      CONFIG_ATH9K_PCOEM=y
      CONFIG_ATH9K_HTC=y
      CONFIG_ATH9K_HTC_DEBUGFS=y
       #CONFIG_ATH6KL is not set
       #CONFIG_ATH10K is not set
      
      $zcat /proc/config.gz | grep CONFIG_EXT
      CONFIG_EXTRA_FIRMWARE="htc_9271-1.4.0.fw"
      CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware/ath9k_htc"
       #CONFIG_EXTCON is not set
      
      zcat /proc/config.gz | grep CONFIG_FIRMW
      CONFIG_FIRMWARE_IN_KERNEL=y
      # CONFIG_FIRMWARE_MEMMAP is not set
      

    还有其他方法通知内核加载固件吗?我想我可能会错过一些配置。

    编辑2:

    我通过启用选项Fallback user-help invocation for firmware loading解决了固件加载失败的问题。现在设备已初始化,但驱动程序似乎不支持该设备。这是dmesg日志:

    [   14.568484] usb 1-1: ath9k_htc: Transferred FW: ath9k_htc/htc_9271-1.4.0.fw, size: 51008
    [   14.820407] ath9k_htc 1-1:1.0: ath9k_htc: HTC initialized with 33 credits
    [   15.852173] ath: phy0: Mac Chip Rev 0x0f.3 is not supported by this driver
    [   15.859064] ath: phy0: Unable to initialize hardware; initialization status: -95
    [   15.866512] ath: phy0: Unable to initialize hardware; initialization status: -95
    [   15.873973] ath9k_htc: Failed to initialize the device
    

    对该设备的快速研究,我发现TP-Link的官方网站指出Linux驱动程序可用于版本2,而不适用于版本1.我的设备是版本1设备,我想因为这个司机不支持。

0 个答案:

没有答案