无法使用 iwconfig 控制 Atheros TL-WN821N (AR7010) 的连接比特率

无法使用 iwconfig 控制 Atheros TL-WN821N (AR7010) 的连接比特率

由于经常出现不稳定问题(报告的连接速度降至 1Mb/s,我必须重新连接适配器才能重新获得连接),我正尝试降低 Atheros TP-Link TL-WN821N v3 usb wifi 适配器的连接比特率。我知道这是此设备的常见问题,我尝试了所有能想到的方法来修复它,包括使用来自 linux-backports 的驱动程序;编译和安装自定义固件(按照https://wiki.debian.org/ath9k_htc#fw-free) 并且(作为最后的手段)使用 ndiswrapper。

使用 ndiswrapper 时,wifi 适配器稳定,以 54Mb/s 的速度在 g 模式下运行(而使用默认的 ath9k_htc 模块时,适配器以 n 模式连接,比特率不断波动)。不幸的是,使用此设置,我必须仅使用一个核心来运行我的处理器,因为使用 ndiswrapper 的 SMP 会导致我的系统出现内核错误。

因此,为了实现连接稳定性,我想使用 ath9k_htc 模块将比特率锁定为 54Mb/s(如果需要,可以更低)。

我已尝试“sudo iwconfig wlan0 rate 54M”;该命令运行时没有错误,但是当我使用“sudo iwlist wlan0 bitrate”检查比特率时,命令返回:

wlan0 unknown bit-rate information. 
          Current Bit Rate:78 Mb/s

有什么想法吗?以下是有关我的设置的一些信息(希望相关):

Xubuntu (12.04.3) 64 位 (内核 3.2.0-55.85-generic) 使用网络管理器。我的路由器来自 Virgin Media,型号为 VMDG480。

lshw -C network :

  *-network               
       description: Wireless interface 
       physical id: 1 
       bus info: usb@1:4 
       logical name: wlan0 
       serial: 74:ea:3a:8f:16:b6 
       capabilities: ethernet physical wireless 
       configuration: broadcast=yes driver=ath9k_htc driverversion=3.2.0-55 firmware=1.3 ip=192.168.0.9 link=yes multicast=yes wireless=IEEE 802.11bgn
lsusb -v:

Bus 001 Device 003: ID 0cf3:7015 Atheros Communications, Inc. TP-Link TL-WN821N v3 802.11n [Atheros AR7010+AR9287] 
Device Descriptor: 
  bLength                18 
  bDescriptorType         1 
  bcdUSB               2.00 
  bDeviceClass          255 Vendor Specific Class 
  bDeviceSubClass       255 Vendor Specific Subclass 
  bDeviceProtocol       255 Vendor Specific Protocol 
  bMaxPacketSize0        64 
  idVendor           0x0cf3 Atheros Communications, Inc. 
  idProduct          0x7015 TP-Link TL-WN821N v3 802.11n [Atheros AR7010+AR9287] 
  bcdDevice            2.02 
  iManufacturer          16 ATHEROS 
  iProduct               32 UB95 
  iSerial                48 12345 
  bNumConfigurations      1 
  Configuration Descriptor: 
    bLength                 9 
    bDescriptorType         2 
    wTotalLength           60 
    bNumInterfaces          1 
    bConfigurationValue     1 
    iConfiguration          0 
    bmAttributes         0x80 
      (Bus Powered) 
    MaxPower              500mA 
    Interface Descriptor: 
      bLength                 9 
      bDescriptorType         4 
      bInterfaceNumber        0 
      bAlternateSetting       0 
      bNumEndpoints           6 
      bInterfaceClass       255 Vendor Specific Class 
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor: 
        bLength                 7 
        bDescriptorType         5 
        bEndpointAddress     0x01  EP 1 OUT 
        bmAttributes            2 
          Transfer Type            Bulk 
          Synch Type               None 
          Usage Type               Data 
        wMaxPacketSize     0x0200  1x 512 bytes 
        bInterval               0 
      Endpoint Descriptor: 
        bLength                 7 
        bDescriptorType         5 
        bEndpointAddress     0x82  EP 2 IN 
        bmAttributes            2 
          Transfer Type            Bulk 
          Synch Type               None 
          Usage Type               Data 
        wMaxPacketSize     0x0200  1x 512 bytes 
        bInterval               0 
      Endpoint Descriptor: 
        bLength                 7 
        bDescriptorType         5 
        bEndpointAddress     0x83  EP 3 IN 
        bmAttributes            3 
          Transfer Type            Interrupt 
          Synch Type               None 
          Usage Type               Data 
        wMaxPacketSize     0x0040  1x 64 bytes 
        bInterval               1 
      Endpoint Descriptor: 
        bLength                 7 
        bDescriptorType         5 
        bEndpointAddress     0x04  EP 4 OUT 
        bmAttributes            3 
          Transfer Type            Interrupt 
          Synch Type               None 
          Usage Type               Data 
        wMaxPacketSize     0x0040  1x 64 bytes 
        bInterval               1 
      Endpoint Descriptor: 
        bLength                 7 
        bDescriptorType         5 
        bEndpointAddress     0x05  EP 5 OUT 
        bmAttributes            2 
          Transfer Type            Bulk 
          Synch Type               None 
          Usage Type               Data 
        wMaxPacketSize     0x0200  1x 512 bytes 
        bInterval               0 
      Endpoint Descriptor: 
        bLength                 7 
        bDescriptorType         5 
        bEndpointAddress     0x06  EP 6 OUT 
        bmAttributes            2 
          Transfer Type            Bulk 
          Synch Type               None 
          Usage Type               Data 
        wMaxPacketSize     0x0200  1x 512 bytes 
        bInterval               0 
Device Qualifier (for other device speed): 
  bLength                10 
  bDescriptorType         6 
  bcdUSB               2.00 
  bDeviceClass          255 Vendor Specific Class 
  bDeviceSubClass       255 Vendor Specific Subclass 
  bDeviceProtocol       255 Vendor Specific Protocol 
  bMaxPacketSize0        64 
  bNumConfigurations      1 
Device Status:     0x0000 
  (Bus Powered)
iwlist wlan0 scanning:

wlan0     Scan completed : 
          Cell 01 - Address: C4:3D:C7:3A:1F:5D 
                    Channel:1 
                    Frequency:2.412 GHz (Channel 1) 
                    Quality=37/70  Signal level=-73 dBm  
                    Encryption key:on 
                    ESSID:"my essid" 
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s 
                              24 Mb/s; 36 Mb/s; 54 Mb/s 
                    Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s 
                    Mode:Master 
                    Extra:tsf=00000070cca77186 
                    Extra: Last beacon: 5588ms ago 
                    IE: Unknown: 0007756E69636F726E 
                    IE: Unknown: 010882848B962430486C 
                    IE: Unknown: 030101 
                    IE: Unknown: 2A0100 
                    IE: Unknown: 2F0100 
                    IE: IEEE 802.11i/WPA2 Version 1 
                        Group Cipher : TKIP 
                        Pairwise Ciphers (2) : CCMP TKIP 
                        Authentication Suites (1) : PSK 
                    IE: Unknown: 32040C121860 
                    IE: Unknown: 2D1AFC181BFFFF000000000000000000000000000000000000000000 
                    IE: Unknown: 3D1601080400000000000000000000000000000000000000 
                    IE: Unknown: DD7E0050F204104A0001101044000102103B00010310470010F99C335D7BAC57FB00137DFA79600220102100074E657467656172102300074E6574676561721024000631323334353610420007303030303030311054000800060050F20400011011000743473331303144100800022008103C0001011049000600372A000120 
                    IE: Unknown: DD090010180203F02C0000 
                    IE: WPA Version 1 
                        Group Cipher : TKIP 
                        Pairwise Ciphers (2) : CCMP TKIP 
                        Authentication Suites (1) : PSK 
                    IE: Unknown: DD180050F2020101800003A4000027A4000042435E0062322F00
iwconfig:

lo        no wireless extensions. 

wlan0     IEEE 802.11bgn  ESSID:"my essid"  
          Mode:Managed  Frequency:2.412 GHz  Access Point: C4:3D:C7:3A:1F:5D   
          Bit Rate=78 Mb/s   Tx-Power=20 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off 
          Power Management:off 
          Link Quality=36/70  Signal level=-74 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0 
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0,

答案1

我没有这个硬件,所以无法测试,不过,速率似乎由固件决定。有修补的固件这里它应该可以与内核 3.2.0-55.85-generic 以及更高版本的内核兼容。

引用确定性

您可以在 patches/AR9271/firmware/htc_9271.fw 下找到一个使用 MCS3 (26mbit/s) 作为注入速率的预编译固件。将此文件复制到 /lib/firmware 并重新插入卡以使用修改后的固件。如果您想使用不同的注入速率编译固件,您可以查看我提供的补丁。最简单的方法是将列表中的第一行替换为所需注入速率的副本。编译 Linux 固件的说明在固件仓库。

安装固件后,只需重新插入 USB 适配器即可使用它。

资料来源:

https://befinitiv.wordpress.com/2015/02/22/finding-the-right-wifi-dongle-and-patching-its-kernel-driver-and-firmware/

https://github.com/qca/open-ath9k-htc-firmware/blob/master/README

編輯:如@pandalion98指出此评论正在讨论的补丁可以找到这里。

答案2

改用 iw:

iw wlan0 set bitrates legacy-2.4 9

在建立连接之前

相关内容