我现在才发现我的 USB WiFi 棒支持 n-WiFi(Edimax EW-7711USn),所以自然而然地,我想从中获得尽可能高的速度。我的链接很好,29dbM,质量为 70/70,但iw dev wlan1 info
报告
Interface wlan1
ifindex 5
wdev 0x200000001
addr 80:1f:02:48:79:0c
type managed
wiphy 2
channel 4 (2427 MHz), width: ***20 MHz***, center1: 2427 MHz
即,我只能获得我可以获得的一半的 Tx 费率,根据iw phy
:
Band 1:
Capabilities: 0x172
HT20/***HT40***
Static SM Power Save
RX Greenfield
RX HT20 SGI
RX HT40 SGI
RX STBC 1-stream
Max AMSDU length: 3839 bytes
No DSSS/CCK HT40
(老实说,我不确定在这种情况下关于 SGI、DSSS 和 CCK 的台词是什么意思,但谷歌并没有提出任何相关问题。)
现在,当我尝试切换到 HT40 时iw --debug dev wlan1 set channel 4 HT40+
- 这似乎是仅有的在 Linux 中设置它的方法是什么?!-,我得到:
-- Debug: Sent Message:
-------------------------- BEGIN NETLINK MESSAGE ---------------------------
[NETLINK HEADER] 16 octets
.nlmsg_len = 44
.type = 26 <0x1a>
.flags = 5 <REQUEST,ACK>
.seq = 1408886294
.port = 20560
[GENERIC NETLINK HEADER] 4 octets
.cmd = 2
.version = 0
.unused = 0
[PAYLOAD] 24 octets
08 00 03 00 05 00 00 00 08 00 26 00 7b 09 00 00 ..........&.{...
08 00 27 00 03 00 00 00 ..'.....
--------------------------- END NETLINK MESSAGE ---------------------------
-- Debug: Received Message:
-------------------------- BEGIN NETLINK MESSAGE ---------------------------
[NETLINK HEADER] 16 octets
.nlmsg_len = 64
.type = 2 <ERROR>
.flags = 0 <>
.seq = 1408886294
.port = 20560
[ERRORMSG] 20 octets
.error = -16 "Device or resource busy"
[ORIGINAL MESSAGE] 16 octets
.nlmsg_len = 16
.type = 26 <0x1a>
.flags = 5 <REQUEST,ACK>
.seq = 1408886294
.port = 20560
--------------------------- END NETLINK MESSAGE ---------------------------
command failed: Device or resource busy (-16)
使用 HT40-,它只会因“无效参数”而失败。我尝试停止network-manager
和ifconfig wlan1 down
,但wlan1
仍然忙碌。我该怎么做才能获得 40 MHz 通道宽度?72 Mbps 作为与 NAS 的连接速度慢得令人恼火……
系统信息:Debian Sid,上周升级,3.15-10.dmz.1-liquorix-amd64 lsmod | grep rt2
。:
rt2800usb 20564 0
rt2x00usb 11702 1 rt2800usb
rt2800lib 78803 1 rt2800usb
rt2x00lib 43922 3 rt2x00usb,rt2800lib,rt2800usb
mac80211 521698 3 rt2x00lib,rt2x00usb,rt2800lib
cfg80211 478903 2 mac80211,rt2x00lib
crc_ccitt 1715 1 rt2800lib
根据 dmesg,它使用 rt2870.bin 作为固件。编译 edimax 在其网站上提供的驱动程序失败,因为它是 2008 年的。