2014-08-26 17:35:30

by poma

[permalink] [raw]
Subject: MediaTek Inc. MT7601U Wireless Adapter


Say, hi fi to everybody!

Driver "mt7601Usta"(DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2) for the MediaTek MT7601U based wireless adapters - on a sale worldwide, is broken and obsolete.
MediaTek folks,
please consider the release of an upgraded version of the driver for the current stable Linux kernel, and the upcoming.
Thanks.

These are the results of tests starting with:
$ modinfo mt7601Usta
filename: /lib/modules/2.6.32-431.23.3.el6.x86_64/updates/mt7601Usta.ko
version: 3.0.0.3
description: RT2870 Wireless Lan Linux Driver
author: Paul Lin <[email protected]>
license: GPL
srcversion: E3EE381863883B309D682BB
alias: usb:v148Fp7601d*dc*dsc*dp*ic*isc*ip*
alias: usb:v148Fp6370d*dc*dsc*dp*ic*isc*ip*
alias: usb:v148Fp7650d*dc*dsc*dp*ic*isc*ip*
depends:
vermagic: 2.6.32-431.23.3.el6.x86_64 SMP mod_unload modversions
parm: mac:rt28xx: wireless mac addr (charp)

and the ending with:
$ modinfo mt7601Usta
filename: /lib/modules/3.16.0-1.fc21.x86_64/updates/mt7601Usta.ko
version: 3.0.0.3
description: RT2870 Wireless Lan Linux Driver
author: Paul Lin <[email protected]>
license: GPL
srcversion: DB56E18D38EF6269211CFA0
alias: usb:v148Fp7601d*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v148Fp6370d*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v148Fp7650d*dc*dsc*dp*ic*isc*ip*in*
depends:
vermagic: 3.16.0-1.fc21.x86_64 SMP mod_unload
parm: mac:rt28xx: wireless mac addr (charp)


WORKING:
2.6.32-431.23.3.el6.x86_64
2.6.43.8-2.fc15.x86_64

WORKING - WITH REDUCED THROUGHPUT AND DISCONNECTIONS
3.0.0-1.fc16.x86_64
3.1.0-1.fc16.x86_64
3.2.0-2.fc17.x86_64
3.3.0-1.fc17.x86_64
3.3.8-1.fc16.x86_64

BROKEN - OPERATING SYSTEM CRASHES:
3.4.0-1.fc18.x86_64
3.4.2-4.fc17.x86_64

BROKEN - CANNOT COMPILE - WITH UNOFFICIAL PATCHES OPERATING SYSTEM CRASHES:
3.10.0-123.6.3.el7.x86_64
3.12.10-300.fc20.x86_64
3.15.10-200.fc20.x86_64
3.16.0-1.fc21.x86_64


poma


Ref.
http://forum.ubuntu.org.cn/viewtopic.php?f=116&t=456228
http://www.mediatek.com/en/downloads/
http://www.mediatek.com/en/downloads/mt7610u-usb/
DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2



2014-08-27 06:55:42

by Andreas Hartmann

[permalink] [raw]
Subject: Re: [rt2x00-users] MediaTek Inc. MT7601U Wireless Adapter

John W. Linville wrote:
> On Tue, Aug 26, 2014 at 07:35:23PM +0200, poma wrote:
>>
>> Say, hi fi to everybody!
>>
>> Driver "mt7601Usta"(DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2) for the MediaTek MT7601U based wireless adapters - on a sale worldwide, is broken and obsolete.
>> MediaTek folks,
>> please consider the release of an upgraded version of the driver for the current stable Linux kernel, and the upcoming.
>> Thanks.
>
> It would be much better if the MediaTek folks would just send us
> patches for the drivers already in the kernel...


No. Sorry. The existing rt2800-driver is mostly broken and unusable
compared with the original Ralink drivers. Especially the usb drivers
are extremely bad. There are huge differences between the ralink usb
drivers (rt5572sta e.g.) and the rt2800usb driver. The ralink drivers
are working fine with a few additional patches even with kernel 3.15 and
with 64bit(!!).

@MediaTek
Please provide own drivers as before as the existing rt2800 drivers
should be reworked completely - but from my point of view they are dead
since long time now.
It is much better to have one basically good working driver (which must
be patched manually to work with newer kernels because newer kernels
often aren't downwardly compatible - if they would be, there wouldn't be
any problem even with older drivers. But this is a huge problem of Linux
at all).


Regards and thanks to Ralink / Mediatek for providing own drivers!
Andreas Hartmann

2014-08-27 14:00:27

by John W. Linville

[permalink] [raw]
Subject: Re: [rt2x00-users] MediaTek Inc. MT7601U Wireless Adapter

On Wed, Aug 27, 2014 at 08:34:34AM +0200, Andreas Hartmann wrote:
> John W. Linville wrote:
> > On Tue, Aug 26, 2014 at 07:35:23PM +0200, poma wrote:
> >>
> >> Say, hi fi to everybody!
> >>
> >> Driver "mt7601Usta"(DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2) for the MediaTek MT7601U based wireless adapters - on a sale worldwide, is broken and obsolete.
> >> MediaTek folks,
> >> please consider the release of an upgraded version of the driver for the current stable Linux kernel, and the upcoming.
> >> Thanks.
> >
> > It would be much better if the MediaTek folks would just send us
> > patches for the drivers already in the kernel...
>
>
> No. Sorry. The existing rt2800-driver is mostly broken and unusable
> compared with the original Ralink drivers. Especially the usb drivers
> are extremely bad. There are huge differences between the ralink usb
> drivers (rt5572sta e.g.) and the rt2800usb driver. The ralink drivers
> are working fine with a few additional patches even with kernel 3.15 and
> with 64bit(!!).
>
> @MediaTek
> Please provide own drivers as before as the existing rt2800 drivers
> should be reworked completely - but from my point of view they are dead
> since long time now.
> It is much better to have one basically good working driver (which must
> be patched manually to work with newer kernels because newer kernels
> often aren't downwardly compatible - if they would be, there wouldn't be
> any problem even with older drivers. But this is a huge problem of Linux
> at all).
>
>
> Regards and thanks to Ralink / Mediatek for providing own drivers!

No. Sorry. They are doing the wrong thing. If Ralink/MediaTek
would cooperate with the community and work through the normal kernel
process like everyone else, their hardware would be fully supported
out of the box just like hardware from other vendors. Then no one
would have to bother with figuring-out how to get the driver "working
fine with a few additional patches", whatever that means.

By apologizing for them and degrading the rt2800 driver you are only
making things worse. You should demand better behavior from MediaTek.

John
--
John W. Linville Someday the world will need a hero, and you
[email protected] might be all we have. Be ready.

2014-08-28 02:51:16

by poma

[permalink] [raw]
Subject: Re: [rt2x00-users] MediaTek Inc. MT7601U Wireless Adapter


A patch[1] is composed partly from the RT3573 source code patched by ashaffer, from Andreas work, some of the ideas are from the beagleboard community, and some of my. :)
Debug(trace) is turned off.

Device now works more or less OK but slow, max. 10 Mbit, although connectable is only within the "N" & "N/G" modes.
What is important is the system no longer crashes, and disconnection are rare.
Generally better than before.

Tested with kernels:
3.15.10-200.fc20.x86_64
3.16.1-301.fc21.x86_64
3.17.0-0.rc2.git0.1.fc22.x86_64

and with debug kernel:
3.17.0-0.rc2.git1.1.fc22.x86_64
dmesg:
...
mt7601Usta: module verification failed: signature and/or required key missing - tainting kernel
rtusb init rt2870 --->
usbcore: registered new interface driver rt2870
0x1300 = 00064300
INFO: trying to register non-static key.
the code is fine but needs lockdep annotation.
turning off the locking correctness validator.
CPU: 1 PID: 687 Comm: NetworkManager Tainted: G OE 3.17.0-0.rc2.git1.1.fc22.x86_64 #1
...
Call Trace:
[<ffffffff81823d70>] dump_stack+0x4d/0x66
[<ffffffff8182126b>] register_lock_class.part.25+0x38/0x3c
[<ffffffff810fc0c9>] __lock_acquire+0x1c79/0x1ca0
[<ffffffff810e335c>] ? update_curr+0x5c/0x200
[<ffffffff8102429e>] ? native_sched_clock+0x2e/0xb0
[<ffffffff810fc9d4>] lock_acquire+0xa4/0x1d0
[<ffffffff810efa0c>] ? add_wait_queue+0x1c/0x50
[<ffffffff8182d6d7>] _raw_spin_lock_irqsave+0x57/0xa0
[<ffffffff810efa0c>] ? add_wait_queue+0x1c/0x50
[<ffffffff810efa0c>] add_wait_queue+0x1c/0x50
[<ffffffffa0715d54>] RtmpOsUsbEmptyUrbCheck+0xc4/0x140 [mt7601Usta]
[<ffffffff810d8820>] ? wake_up_state+0x20/0x20
[<ffffffffa06dc3bd>] RTMPDrvClose+0x8d/0x150 [mt7601Usta]
[<ffffffffa0704b52>] rt28xx_close+0x22/0x30 [mt7601Usta]
[<ffffffffa06e7223>] RTMP_COM_IoctlHandle+0x823/0x890 [mt7601Usta]
[<ffffffff816f02b8>] ? linkwatch_schedule_work+0x58/0xa0
[<ffffffff816f0357>] ? linkwatch_fire_event+0x57/0xa0
[<ffffffffa070498c>] MainVirtualIF_close+0x7c/0xd0 [mt7601Usta]
[<ffffffffa07050e0>] ? RtmpOSIRQRequest+0x60/0x60 [mt7601Usta]
[<ffffffffa0704b30>] ? RT28xx_get_ether_stats+0x150/0x150 [mt7601Usta]
[<ffffffff816d08a5>] __dev_close_many+0xb5/0x120
[<ffffffff816d0a72>] __dev_close+0x42/0x70
[<ffffffff816dcc8d>] __dev_change_flags+0x9d/0x160
[<ffffffff816dcd79>] dev_change_flags+0x29/0x70
[<ffffffff816ec0a9>] do_setlink+0x409/0xb80
[<ffffffff810fa887>] ? __lock_acquire+0x437/0x1ca0
[<ffffffff81422392>] ? nla_parse+0x32/0x120
[<ffffffff816ee5cd>] rtnl_newlink+0x61d/0x780
[<ffffffff81377218>] ? security_capable+0x18/0x20
[<ffffffff810aaeb5>] ? ns_capable+0x35/0x70
[<ffffffff816eae31>] rtnetlink_rcv_msg+0xa1/0x260
[<ffffffff816ead6b>] ? rtnetlink_rcv+0x1b/0x40
[<ffffffff816ead6b>] ? rtnetlink_rcv+0x1b/0x40
[<ffffffff816ead90>] ? rtnetlink_rcv+0x40/0x40
[<ffffffff81710e69>] netlink_rcv_skb+0xa9/0xd0
[<ffffffff816ead7a>] rtnetlink_rcv+0x2a/0x40
[<ffffffff81710475>] netlink_unicast+0x125/0x1a0
[<ffffffff8171084f>] netlink_sendmsg+0x35f/0x7c0
[<ffffffff816b880e>] sock_sendmsg+0x9e/0xe0
[<ffffffff811fe38e>] ? might_fault+0x5e/0xc0
[<ffffffff811fe3e9>] ? might_fault+0xb9/0xc0
[<ffffffff811fe38e>] ? might_fault+0x5e/0xc0
[<ffffffff816b9848>] ___sys_sendmsg+0x408/0x420
[<ffffffff8102429e>] ? native_sched_clock+0x2e/0xb0
[<ffffffff8102429e>] ? native_sched_clock+0x2e/0xb0
[<ffffffff81024329>] ? sched_clock+0x9/0x10
[<ffffffff810dc775>] ? local_clock+0x25/0x30
[<ffffffff8127b54a>] ? __fget+0x12a/0x2f0
[<ffffffff8127b425>] ? __fget+0x5/0x2f0
[<ffffffff8127b780>] ? __fget_light+0x30/0x160
[<ffffffff816ba031>] __sys_sendmsg+0x51/0x90
[<ffffffff816ba082>] SyS_sendmsg+0x12/0x20
[<ffffffff8182dbe9>] system_call_fastpath+0x16/0x1b
unlink cmd rsp urb
0x1300 = 00064300
unlink cmd rsp urb
0x1300 = 00064300
unlink cmd rsp urb
0x1300 = 00064300
...

# iwconfig ra0
ra0 Ralink STA ESSID:"Geppetto" Nickname:"MT7601STA"
Mode:Managed Frequency=2.462 GHz Access Point: 00:22:44:66:88:aa
Bit Rate=26 Mb/s
RTS thr:off Fragment thr:off
Encryption key:1111-2222-3333-4444-5555-6666-7777-8888 [2] Security mode:open
Link Quality=61/100 Signal level:-72 dBm Noise level:-87 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0


[1] DPO_MT7601U_LinuxSTA_3.0.0.4_20130913-Linux-3.17.0.patch
diff -ur DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/include/os/rt_linux.h DPO_MT7601U_LinuxSTA_3.0.0.4_20130913-Linux-3.17.0/include/os/rt_linux.h
--- DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/include/os/rt_linux.h 2013-09-12 07:27:14.000000000 +0200
+++ DPO_MT7601U_LinuxSTA_3.0.0.4_20130913-Linux-3.17.0/include/os/rt_linux.h 2014-08-28 02:09:13.823643901 +0200
@@ -882,9 +882,14 @@

#define GET_OS_PKT_DATATAIL(_pkt) \
(RTPKT_TO_OSPKT(_pkt)->tail)
+#ifdef NET_SKBUFF_DATA_USES_OFFSET
+#define SET_OS_PKT_DATATAIL(_pkt, _start, _len) \
+ ((RTPKT_TO_OSPKT(_pkt))->tail) = (ULONG)(RTPKT_TO_OSPKT(_pkt)->data - (ULONG)(RTPKT_TO_OSPKT(_pkt)->head) + (_len))
+#else
#define SET_OS_PKT_DATATAIL(_pkt, _start, _len) \
((RTPKT_TO_OSPKT(_pkt))->tail) = (PUCHAR)((_start) + (_len))
-
+#endif
+
#define GET_OS_PKT_HEAD(_pkt) \
(RTPKT_TO_OSPKT(_pkt)->head)

diff -ur DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/config.mk DPO_MT7601U_LinuxSTA_3.0.0.4_20130913-Linux-3.17.0/os/linux/config.mk
--- DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/config.mk 2013-09-12 08:05:55.000000000 +0200
+++ DPO_MT7601U_LinuxSTA_3.0.0.4_20130913-Linux-3.17.0/os/linux/config.mk 2014-08-28 02:09:32.557529121 +0200
@@ -290,7 +290,7 @@
# config for STA mode

ifeq ($(RT28xx_MODE),STA)
-WFLAGS += -DCONFIG_STA_SUPPORT -DSCAN_SUPPORT -DDBG
+WFLAGS += -DCONFIG_STA_SUPPORT -DSCAN_SUPPORT

ifeq ($(HAS_XLINK),y)
WFLAGS += -DXLINK_SUPPORT
@@ -1054,11 +1054,16 @@
export CFLAGS
endif

+GCCVERSION = $(shell gcc -dumpversion)
+
ifeq ($(PLATFORM),PC)
ifneq (,$(findstring 2.4,$(LINUX_SRC)))
# Linux 2.4
CFLAGS := -D__KERNEL__ -I$(LINUX_SRC)/include -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -DMODULE -DMODVERSIONS -include $(LINUX_SRC)/include/linux/modversions.h $(WFLAGS)
export CFLAGS
+ else ifneq (,$(findstring 4.9,$(GCCVERSION)))
+ # GCC 4.9
+ EXTRA_CFLAGS := -Wno-error=date-time $(WFLAGS)
else
# Linux 2.6
EXTRA_CFLAGS := $(WFLAGS)
diff -ur DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/rt_linux.c DPO_MT7601U_LinuxSTA_3.0.0.4_20130913-Linux-3.17.0/os/linux/rt_linux.c
--- DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/rt_linux.c 2013-09-12 07:27:14.000000000 +0200
+++ DPO_MT7601U_LinuxSTA_3.0.0.4_20130913-Linux-3.17.0/os/linux/rt_linux.c 2014-08-28 02:09:13.838643009 +0200
@@ -27,13 +27,18 @@

#define RTMP_MODULE_OS
#define RTMP_MODULE_OS_UTIL
-
+#define CONFIG_UIDGID_STRICT_TYPE_CHECKS
+#define NET_SKBUFF_DATA_USES_OFFSET

#include "rtmp_comm.h"
#include "rtmp_osabl.h"
#include "rt_os_util.h"
#include <linux/rtnetlink.h>

+#ifdef CONFIG_UIDGID_STRICT_TYPE_CHECKS
+#include <linux/uidgid.h>
+#endif
+
#if defined(CONFIG_RA_HW_NAT) || defined(CONFIG_RA_HW_NAT_MODULE)
#include "../../../../../../net/nat/hw_nat/ra_nat.h"
#include "../../../../../../net/nat/hw_nat/frame_engine.h"
@@ -494,9 +499,15 @@
MEM_DBG_PKT_ALLOC_INC(skb);

skb_reserve(skb, 2);
+#ifdef NET_SKBUFF_DATA_USES_OFFSET
+ NdisMoveMemory(skb->data+skb->tail, pHeader802_3, HdrLen);
+ skb_put(skb, HdrLen);
+ NdisMoveMemory(skb->data+skb->tail, pData, DataSize);
+#else
NdisMoveMemory(skb->tail, pHeader802_3, HdrLen);
skb_put(skb, HdrLen);
NdisMoveMemory(skb->tail, pData, DataSize);
+#endif
skb_put(skb, DataSize);
skb->dev = pNetDev; /*get_netdev_from_bssid(pAd, FromWhichBSSID); */
pPacket = OSPKT_TO_RTPKT(skb);
@@ -692,7 +703,11 @@
pOSPkt->dev = pNetDev;
pOSPkt->data = pData;
pOSPkt->len = DataSize;
+#ifdef NET_SKBUFF_DATA_USES_OFFSET
+ pOSPkt->tail = (pOSPkt->data-pOSPkt->head)+pOSPkt->len;
+#else
pOSPkt->tail = pOSPkt->data + pOSPkt->len;
+#endif

/* copy 802.3 header */

@@ -1118,9 +1133,15 @@
pOSFSInfo->fsgid = current->fsgid;
current->fsuid = current->fsgid = 0;
#else
+#ifdef CONFIG_UIDGID_STRICT_TYPE_CHECKS
+ struct user_namespace *to = current_user_ns();
+ pOSFSInfo->fsuid = from_kuid_munged(to, current_fsuid());
+ pOSFSInfo->fsgid = from_kgid_munged(to, current_fsgid());
+#else
pOSFSInfo->fsuid = current_fsuid();
pOSFSInfo->fsgid = current_fsgid();
#endif
+#endif
pOSFSInfo->fs = get_fs();
set_fs(KERNEL_DS);
} else {
diff -ur DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/sta/sta_cfg.c DPO_MT7601U_LinuxSTA_3.0.0.4_20130913-Linux-3.17.0/sta/sta_cfg.c
--- DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/sta/sta_cfg.c 2013-09-12 07:27:14.000000000 +0200
+++ DPO_MT7601U_LinuxSTA_3.0.0.4_20130913-Linux-3.17.0/sta/sta_cfg.c 2014-08-28 02:09:13.842642771 +0200
@@ -8274,6 +8274,7 @@
RTMPIoctlGetSiteSurvey(pAd, pRequest);
break;

+#ifdef DBG
case CMD_RTPRIV_IOCTL_MAC:
RTMPIoctlMAC(pAd, pRequest);
break;
@@ -8285,6 +8286,7 @@
case CMD_RTPRIV_IOCTL_RF:
RTMPIoctlRF(pAd, pRequest);
break;
+#endif /* DBG */

case CMD_RTPRIV_IOCTL_BBP:
RTMPIoctlBbp(pAd, pRequest, pData, Data);


poma





2014-08-31 16:38:46

by Andreas Hartmann

[permalink] [raw]
Subject: Re: [rt2x00-users] MediaTek Inc. MT7601U Wireless Adapter

poma wrote:
>
> A new patch[1] mainly based on patches at
> https://github.com/ashaffer/rt3573sta
> and several network throughput tests via the Iperf.
> Tested with kernels:
> - 3.15.10-200.fc20.x86_64
> - 3.16.1-301.fc21.x86_64
> - 3.17.0-0.rc2.git3.1.fc22.x86_64
> - 3.16.1-301.fc21.i686
> - 3.17.0-0.rc2.git3.1.fc22.i686
>
> <Proximity>
> Wi-Fi <~20cm LOS~> AP(Wi-Fi <-bridge-> 100Mbit switch) <-> Ethernet
>
> <AP>
> # iwconfig ra0
> ra0 RTWIFI SoftAP ESSID:"Geppetto"
> Mode:Managed Channel=13 Access Point: 00:22:44:66:88:aa
> Bit Rate=150 Mb/s
> </AP>
>
> <Wi-Fi>
> $ iwconfig ra0
> ra0 Ralink STA ESSID:"Geppetto" Nickname:"MT7601STA"
> Mode:Managed Frequency=2.472 GHz Access Point: 00:22:44:66:88:aa
> Bit Rate=150 Mb/s
> RTS thr:off Fragment thr:off
> Link Quality=100/100 Signal level:-22 dBm Noise level:-53 dBm
> Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
> Tx excessive retries:0 Invalid misc:0 Missed beacon:0
> </Wi-Fi>
>
> <Ethernet>
> $ ifconfig bridge0
> bridge0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
> inet 192.168.2.2 netmask 255.255.255.0 broadcast 192.168.2.255
> ether 00:12:34:56:78:90 txqueuelen 0 (Ethernet)
> RX errors 0 dropped 0 overruns 0 frame 0
> TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
> </Ethernet>
>
> <Ethernet-TCP>
> $ iperf -s -i 1
> ------------------------------------------------------------
> Server listening on TCP port 5001
> TCP window size: 85.3 KByte (default)
> ------------------------------------------------------------
> [ 4] local 192.168.2.2 port 5001 connected with 192.168.2.36 port 58536
> [ ID] Interval Transfer Bandwidth
> [ 4] 0.0- 1.0 sec 10.6 MBytes 88.9 Mbits/sec
> [ 4] 1.0- 2.0 sec 11.2 MBytes 94.1 Mbits/sec
> [ 4] 2.0- 3.0 sec 11.2 MBytes 94.1 Mbits/sec
> [ 4] 3.0- 4.0 sec 11.2 MBytes 94.1 Mbits/sec
> [ 4] 4.0- 5.0 sec 11.2 MBytes 94.1 Mbits/sec
> [ 4] 5.0- 6.0 sec 11.2 MBytes 94.1 Mbits/sec
> [ 4] 6.0- 7.0 sec 11.2 MBytes 94.1 Mbits/sec
> [ 4] 7.0- 8.0 sec 11.2 MBytes 94.1 Mbits/sec
> [ 4] 8.0- 9.0 sec 11.2 MBytes 94.1 Mbits/sec
> [ 4] 9.0-10.0 sec 11.2 MBytes 94.1 Mbits/sec
> [ 4] 0.0-10.1 sec 113 MBytes 93.6 Mbits/sec
> </Ethernet-TCP>

...

Thanks for providing test results. With respect to the bottleneck fast
ethernet switch in between and that it is most probably a 1x1:1 mimo
config according[1], they are fine!

The 64bit patch you attached is fine for use with tunneling, like vxlan,
too!


Regards,
Andreas

[1] (one line)
https://wikidevi.com/wiki/Special:Ask?title=Special:Ask&q=[[Chip1+model::~MT7601U*]]&po=?Interface%250D%250A?Form+factor=FF%250D%250A?Interface+connector+type=USB+conn.%250D%250A?FCC+ID%250D%250A?Manuf%250D%250A?Manuf+product+model=Manuf.+mdl%250D%250A?Vendor+ID%250D%250A?Device+ID%250D%250A?Chip1+model%250D%250A?Supported+802dot11+protocols=PHY+modes%250D%250A?MIMO+config%250D%250A?OUI%250D%250A?Estimated+year+of+release=Est.+year&eq=yes&p[format]=broadtable&order[0]=ASC&sort_num=&order_num=ASC&p[limit]=500&p[offset]=&p[link]=all&p[sort]=&p[headers]=show&p[mainlabel]=&p[intro]=&p[outro]=&p[searchlabel]=?+further+results&p[default]=&p[class]=sortable+wikitable+smwtable


2014-08-31 05:39:42

by poma

[permalink] [raw]
Subject: Re: [rt2x00-users] MediaTek Inc. MT7601U Wireless Adapter


A new patch[1] mainly based on patches at
https://github.com/ashaffer/rt3573sta
and several network throughput tests via the Iperf.
Tested with kernels:
- 3.15.10-200.fc20.x86_64
- 3.16.1-301.fc21.x86_64
- 3.17.0-0.rc2.git3.1.fc22.x86_64
- 3.16.1-301.fc21.i686
- 3.17.0-0.rc2.git3.1.fc22.i686

<Proximity>
Wi-Fi <~20cm LOS~> AP(Wi-Fi <-bridge-> 100Mbit switch) <-> Ethernet

<AP>
# iwconfig ra0
ra0 RTWIFI SoftAP ESSID:"Geppetto"
Mode:Managed Channel=13 Access Point: 00:22:44:66:88:aa
Bit Rate=150 Mb/s
</AP>

<Wi-Fi>
$ iwconfig ra0
ra0 Ralink STA ESSID:"Geppetto" Nickname:"MT7601STA"
Mode:Managed Frequency=2.472 GHz Access Point: 00:22:44:66:88:aa
Bit Rate=150 Mb/s
RTS thr:off Fragment thr:off
Link Quality=100/100 Signal level:-22 dBm Noise level:-53 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
</Wi-Fi>

<Ethernet>
$ ifconfig bridge0
bridge0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.2.2 netmask 255.255.255.0 broadcast 192.168.2.255
ether 00:12:34:56:78:90 txqueuelen 0 (Ethernet)
RX errors 0 dropped 0 overruns 0 frame 0
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
</Ethernet>

<Ethernet-TCP>
$ iperf -s -i 1
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 192.168.2.2 port 5001 connected with 192.168.2.36 port 58536
[ ID] Interval Transfer Bandwidth
[ 4] 0.0- 1.0 sec 10.6 MBytes 88.9 Mbits/sec
[ 4] 1.0- 2.0 sec 11.2 MBytes 94.1 Mbits/sec
[ 4] 2.0- 3.0 sec 11.2 MBytes 94.1 Mbits/sec
[ 4] 3.0- 4.0 sec 11.2 MBytes 94.1 Mbits/sec
[ 4] 4.0- 5.0 sec 11.2 MBytes 94.1 Mbits/sec
[ 4] 5.0- 6.0 sec 11.2 MBytes 94.1 Mbits/sec
[ 4] 6.0- 7.0 sec 11.2 MBytes 94.1 Mbits/sec
[ 4] 7.0- 8.0 sec 11.2 MBytes 94.1 Mbits/sec
[ 4] 8.0- 9.0 sec 11.2 MBytes 94.1 Mbits/sec
[ 4] 9.0-10.0 sec 11.2 MBytes 94.1 Mbits/sec
[ 4] 0.0-10.1 sec 113 MBytes 93.6 Mbits/sec
</Ethernet-TCP>
>
<Wi-Fi-TCP>
$ iperf -c 192.168.2.2 -i 1
------------------------------------------------------------
Client connecting to 192.168.2.2, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.2.36 port 58536 connected with 192.168.2.2 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 11.1 MBytes 93.3 Mbits/sec
[ 3] 1.0- 2.0 sec 11.8 MBytes 98.6 Mbits/sec
[ 3] 2.0- 3.0 sec 11.4 MBytes 95.4 Mbits/sec
[ 3] 3.0- 4.0 sec 11.0 MBytes 92.3 Mbits/sec
[ 3] 4.0- 5.0 sec 11.5 MBytes 96.5 Mbits/sec
[ 3] 5.0- 6.0 sec 11.1 MBytes 93.3 Mbits/sec
[ 3] 6.0- 7.0 sec 11.2 MBytes 94.4 Mbits/sec
[ 3] 7.0- 8.0 sec 11.1 MBytes 93.3 Mbits/sec
[ 3] 8.0- 9.0 sec 11.5 MBytes 96.5 Mbits/sec
[ 3] 9.0-10.0 sec 11.0 MBytes 92.3 Mbits/sec
[ 3] 0.0-10.0 sec 113 MBytes 94.4 Mbits/sec
</Wi-Fi-TCP>

<Ethernet-UDP>
$ iperf -s -i 1 -u
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.2.2 port 5001 connected with 192.168.2.36 port 48479
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0- 1.0 sec 11.4 MBytes 95.3 Mbits/sec 0.119 ms 0/ 8105 (0%)
[ 3] 1.0- 2.0 sec 11.4 MBytes 95.7 Mbits/sec 0.081 ms 480/ 8617 (5.6%)
[ 3] 2.0- 3.0 sec 11.4 MBytes 95.7 Mbits/sec 0.098 ms 1200/ 9338 (13%)
[ 3] 3.0- 4.0 sec 11.4 MBytes 95.7 Mbits/sec 0.078 ms 1502/ 9640 (16%)
[ 3] 4.0- 5.0 sec 11.4 MBytes 95.7 Mbits/sec 0.121 ms 1459/ 9596 (15%)
[ 3] 5.0- 6.0 sec 11.4 MBytes 95.7 Mbits/sec 0.084 ms 1488/ 9626 (15%)
[ 3] 6.0- 7.0 sec 11.4 MBytes 95.7 Mbits/sec 0.142 ms 1513/ 9651 (16%)
[ 3] 7.0- 8.0 sec 11.4 MBytes 95.7 Mbits/sec 0.100 ms 1470/ 9608 (15%)
[ 3] 8.0- 9.0 sec 11.4 MBytes 95.7 Mbits/sec 0.095 ms 1526/ 9664 (16%)
[ 3] 9.0-10.0 sec 11.4 MBytes 95.7 Mbits/sec 0.076 ms 1415/ 9553 (15%)
[ 3] 0.0-10.2 sec 116 MBytes 95.7 Mbits/sec 0.559 ms 12254/94926 (13%)
[ 3] 0.0-10.2 sec 1 datagrams received out-of-order
</Ethernet-UDP>
>
<Wi-Fi-UDP>
$ iperf -c 192.168.2.2 -i 1 -u -b 300M
------------------------------------------------------------
Client connecting to 192.168.2.2, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.2.36 port 48479 connected with 192.168.2.2 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 12.4 MBytes 104 Mbits/sec
[ 3] 1.0- 2.0 sec 13.2 MBytes 110 Mbits/sec
[ 3] 2.0- 3.0 sec 13.2 MBytes 111 Mbits/sec
[ 3] 3.0- 4.0 sec 13.6 MBytes 114 Mbits/sec
[ 3] 4.0- 5.0 sec 13.5 MBytes 113 Mbits/sec
[ 3] 5.0- 6.0 sec 13.4 MBytes 113 Mbits/sec
[ 3] 6.0- 7.0 sec 13.5 MBytes 113 Mbits/sec
[ 3] 7.0- 8.0 sec 13.6 MBytes 114 Mbits/sec
[ 3] 8.0- 9.0 sec 13.5 MBytes 113 Mbits/sec
[ 3] 0.0-10.0 sec 133 MBytes 112 Mbits/sec
[ 3] Sent 94927 datagrams
[ 3] Server Report:
[ 3] 0.0-10.2 sec 116 MBytes 95.7 Mbits/sec 0.559 ms 12254/94926 (13%)
[ 3] 0.0-10.2 sec 1 datagrams received out-of-order
</Wi-Fi-UDP>

<Wi-Fi-TCP>
$ iperf -s -i 1
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 192.168.2.36 port 5001 connected with 192.168.2.2 port 50371
[ ID] Interval Transfer Bandwidth
[ 4] 0.0- 1.0 sec 10.2 MBytes 85.4 Mbits/sec
[ 4] 1.0- 2.0 sec 9.66 MBytes 81.0 Mbits/sec
[ 4] 2.0- 3.0 sec 9.53 MBytes 79.9 Mbits/sec
[ 4] 3.0- 4.0 sec 9.28 MBytes 77.8 Mbits/sec
[ 4] 4.0- 5.0 sec 8.94 MBytes 75.0 Mbits/sec
[ 4] 5.0- 6.0 sec 8.60 MBytes 72.2 Mbits/sec
[ 4] 6.0- 7.0 sec 8.24 MBytes 69.1 Mbits/sec
[ 4] 7.0- 8.0 sec 8.19 MBytes 68.7 Mbits/sec
[ 4] 8.0- 9.0 sec 7.77 MBytes 65.2 Mbits/sec
[ 4] 9.0-10.0 sec 7.64 MBytes 64.1 Mbits/sec
[ 4] 0.0-10.2 sec 89.2 MBytes 73.6 Mbits/sec
</Wi-Fi-TCP>
>
<Ethernet-TCP>
$ iperf -c 192.168.2.36 -i 1
------------------------------------------------------------
Client connecting to 192.168.2.36, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.2.2 port 50371 connected with 192.168.2.36 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 10.9 MBytes 91.2 Mbits/sec
[ 3] 1.0- 2.0 sec 10.2 MBytes 86.0 Mbits/sec
[ 3] 2.0- 3.0 sec 9.50 MBytes 79.7 Mbits/sec
[ 3] 3.0- 4.0 sec 9.12 MBytes 76.5 Mbits/sec
[ 3] 4.0- 5.0 sec 9.12 MBytes 76.5 Mbits/sec
[ 3] 5.0- 6.0 sec 8.38 MBytes 70.3 Mbits/sec
[ 3] 6.0- 7.0 sec 8.25 MBytes 69.2 Mbits/sec
[ 3] 7.0- 8.0 sec 8.12 MBytes 68.2 Mbits/sec
[ 3] 8.0- 9.0 sec 7.75 MBytes 65.0 Mbits/sec
[ 3] 9.0-10.0 sec 7.75 MBytes 65.0 Mbits/sec
[ 3] 0.0-10.0 sec 89.2 MBytes 74.7 Mbits/sec
</Ethernet-TCP>

<Wi-Fi-UDP>
$ iperf -s -i 1 -u
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.2.36 port 5001 connected with 192.168.2.2 port 55274
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0- 1.0 sec 10.5 MBytes 88.3 Mbits/sec 0.251 ms 1/ 7513 (0.013%)
[ 3] 1.0- 2.0 sec 11.1 MBytes 93.0 Mbits/sec 0.276 ms 240/ 8149 (2.9%)
[ 3] 2.0- 3.0 sec 10.8 MBytes 90.5 Mbits/sec 0.340 ms 400/ 8099 (4.9%)
[ 3] 3.0- 4.0 sec 11.0 MBytes 92.1 Mbits/sec 0.127 ms 267/ 8101 (3.3%)
[ 3] 4.0- 5.0 sec 10.6 MBytes 89.1 Mbits/sec 0.230 ms 524/ 8104 (6.5%)
[ 3] 5.0- 6.0 sec 10.5 MBytes 88.3 Mbits/sec 0.141 ms 636/ 8145 (7.8%)
[ 3] 6.0- 7.0 sec 10.4 MBytes 87.4 Mbits/sec 0.126 ms 639/ 8071 (7.9%)
[ 3] 7.0- 8.0 sec 10.6 MBytes 89.2 Mbits/sec 0.163 ms 621/ 8207 (7.6%)
[ 3] 8.0- 9.0 sec 10.5 MBytes 88.2 Mbits/sec 0.141 ms 537/ 8035 (6.7%)
[ 3] 9.0-10.0 sec 10.3 MBytes 86.8 Mbits/sec 0.206 ms 765/ 8145 (9.4%)
[ 3] 0.0-10.1 sec 107 MBytes 89.3 Mbits/sec 0.445 ms 4699/81305 (5.8%)
[ 3] 0.0-10.1 sec 1 datagrams received out-of-order
</Wi-Fi-UDP>
>
<Ethernet-UDP>
$ iperf -c 192.168.2.36 -i 1 -u -b 300M
------------------------------------------------------------
Client connecting to 192.168.2.36, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.2.2 port 55274 connected with 192.168.2.36 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 11.5 MBytes 96.6 Mbits/sec
[ 3] 1.0- 2.0 sec 11.4 MBytes 95.2 Mbits/sec
[ 3] 2.0- 3.0 sec 11.4 MBytes 95.5 Mbits/sec
[ 3] 3.0- 4.0 sec 11.4 MBytes 95.7 Mbits/sec
[ 3] 4.0- 5.0 sec 11.4 MBytes 95.6 Mbits/sec
[ 3] 5.0- 6.0 sec 11.4 MBytes 95.6 Mbits/sec
[ 3] 6.0- 7.0 sec 11.3 MBytes 95.1 Mbits/sec
[ 3] 7.0- 8.0 sec 11.4 MBytes 95.6 Mbits/sec
[ 3] 8.0- 9.0 sec 11.4 MBytes 95.7 Mbits/sec
[ 3] 9.0-10.0 sec 11.4 MBytes 95.5 Mbits/sec
[ 3] 0.0-10.0 sec 114 MBytes 95.6 Mbits/sec
[ 3] Sent 81306 datagrams
[ 3] Server Report:
[ 3] 0.0-10.1 sec 107 MBytes 89.3 Mbits/sec 0.444 ms 4699/81305 (5.8%)
[ 3] 0.0-10.1 sec 1 datagrams received out-of-order
</Ethernet-UDP>
</Proximity>

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

<Refraction>
Wi-Fi <~10m NLOS~> AP(Wi-Fi <-bridge-> 100Mbit switch) <-> Ethernet

<AP>
# iwconfig ra0
ra0 RTWIFI SoftAP ESSID:"Geppetto"
Mode:Managed Channel=13 Access Point: 00:22:44:66:88:aa
Bit Rate=150 Mb/s
</AP>

<Wi-Fi>
$ iwconfig ra0
ra0 Ralink STA ESSID:"Geppetto" Nickname:"MT7601STA"
Mode:Managed Frequency=2.472 GHz Access Point: 00:22:44:66:88:aa
Bit Rate=27 Mb/s
RTS thr:off Fragment thr:off
Link Quality=60/100 Signal level:-80 dBm Noise level:-90 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
</Wi-Fi>

<Ethernet>
$ ifconfig enp0s4f1u4
enp0s4f1u4: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.2.5 netmask 255.255.255.0 broadcast 192.168.2.255
ether 00:12:34:56:78:20 txqueuelen 1000 (Ethernet)
RX errors 0 dropped 84 overruns 0 frame 0
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
</Ethernet>

<Wi-Fi-TCP>
$ iperf -s -i 1
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 192.168.2.36 port 5001 connected with 192.168.2.5 port 59063
[ ID] Interval Transfer Bandwidth
[ 4] 0.0- 1.0 sec 1.81 MBytes 15.2 Mbits/sec
[ 4] 1.0- 2.0 sec 2.24 MBytes 18.8 Mbits/sec
[ 4] 2.0- 3.0 sec 2.25 MBytes 18.8 Mbits/sec
[ 4] 3.0- 4.0 sec 2.26 MBytes 19.0 Mbits/sec
[ 4] 4.0- 5.0 sec 2.12 MBytes 17.8 Mbits/sec
[ 4] 5.0- 6.0 sec 1.60 MBytes 13.4 Mbits/sec
[ 4] 6.0- 7.0 sec 2.20 MBytes 18.5 Mbits/sec
[ 4] 7.0- 8.0 sec 2.23 MBytes 18.7 Mbits/sec
[ 4] 8.0- 9.0 sec 1.41 MBytes 11.8 Mbits/sec
[ 4] 9.0-10.0 sec 2.83 MBytes 23.7 Mbits/sec
[ 4] 0.0-10.6 sec 22.0 MBytes 17.4 Mbits/sec
</Wi-Fi-TCP>
>
<Ethernet-TCP>
$ iperf -c 192.168.2.36 -i 1
------------------------------------------------------------
Client connecting to 192.168.2.36, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.2.5 port 59063 connected with 192.168.2.36 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 2.00 MBytes 16.8 Mbits/sec
[ 3] 1.0- 2.0 sec 2.50 MBytes 21.0 Mbits/sec
[ 3] 2.0- 3.0 sec 2.38 MBytes 19.9 Mbits/sec
[ 3] 3.0- 4.0 sec 2.25 MBytes 18.9 Mbits/sec
[ 3] 4.0- 5.0 sec 2.50 MBytes 21.0 Mbits/sec
[ 3] 5.0- 6.0 sec 1.88 MBytes 15.7 Mbits/sec
[ 3] 6.0- 7.0 sec 2.00 MBytes 16.8 Mbits/sec
[ 3] 7.0- 8.0 sec 2.38 MBytes 19.9 Mbits/sec
[ 3] 8.0- 9.0 sec 1.38 MBytes 11.5 Mbits/sec
[ 3] 9.0-10.0 sec 2.62 MBytes 22.0 Mbits/sec
[ 3] 0.0-10.0 sec 22.0 MBytes 18.4 Mbits/sec
</Ethernet-TCP>

<Wi-Fi-UDP>
$ iperf -s -i 1 -u
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.2.36 port 5001 connected with 192.168.2.5 port 55884
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0- 1.0 sec 1.94 MBytes 16.3 Mbits/sec 1.198 ms 2902/ 4284 (68%)
[ 3] 1.0- 2.0 sec 1.79 MBytes 15.0 Mbits/sec 1.282 ms 6990/ 8269 (85%)
[ 3] 2.0- 3.0 sec 2.27 MBytes 19.0 Mbits/sec 0.722 ms 6875/ 8492 (81%)
[ 3] 3.0- 4.0 sec 2.30 MBytes 19.3 Mbits/sec 0.970 ms 6538/ 8176 (80%)
[ 3] 4.0- 5.0 sec 2.27 MBytes 19.0 Mbits/sec 0.994 ms 6387/ 8006 (80%)
[ 3] 5.0- 6.0 sec 2.22 MBytes 18.6 Mbits/sec 1.724 ms 6557/ 8140 (81%)
[ 3] 6.0- 7.0 sec 1.96 MBytes 16.4 Mbits/sec 1.001 ms 6799/ 8195 (83%)
[ 3] 7.0- 8.0 sec 2.28 MBytes 19.1 Mbits/sec 0.699 ms 6556/ 8181 (80%)
[ 3] 8.0- 9.0 sec 2.32 MBytes 19.5 Mbits/sec 1.065 ms 6259/ 7916 (79%)
[ 3] 9.0-10.0 sec 2.31 MBytes 19.4 Mbits/sec 1.043 ms 6443/ 8092 (80%)
[ 3] 0.0-10.4 sec 22.5 MBytes 18.2 Mbits/sec 1.554 ms 64724/80784 (80%)
</Wi-Fi-UDP>
>
<Ethernet-UDP>
$ iperf -c 192.168.2.36 -i 1 -u -b 300M
------------------------------------------------------------
Client connecting to 192.168.2.36, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.2.5 port 55884 connected with 192.168.2.36 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 11.4 MBytes 95.7 Mbits/sec
[ 3] 1.0- 2.0 sec 11.3 MBytes 95.1 Mbits/sec
[ 3] 2.0- 3.0 sec 11.3 MBytes 95.0 Mbits/sec
[ 3] 3.0- 4.0 sec 11.3 MBytes 94.6 Mbits/sec
[ 3] 4.0- 5.0 sec 11.4 MBytes 95.3 Mbits/sec
[ 3] 5.0- 6.0 sec 11.3 MBytes 95.0 Mbits/sec
[ 3] 6.0- 7.0 sec 11.3 MBytes 94.5 Mbits/sec
[ 3] 7.0- 8.0 sec 11.3 MBytes 95.0 Mbits/sec
[ 3] 8.0- 9.0 sec 11.3 MBytes 94.9 Mbits/sec
[ 3] 9.0-10.0 sec 11.4 MBytes 95.4 Mbits/sec
[ 3] 0.0-10.0 sec 113 MBytes 95.0 Mbits/sec
[ 3] Sent 80820 datagrams
[ 3] Server Report:
[ 3] 0.0-10.4 sec 22.5 MBytes 18.2 Mbits/sec 1.554 ms 64724/80784 (80%)
</Ethernet-UDP>

<Ethernet-TCP>
$ iperf -s -i 1
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 192.168.2.5 port 5001 connected with 192.168.2.36 port 49506
[ ID] Interval Transfer Bandwidth
[ 4] 0.0- 1.0 sec 1.78 MBytes 15.0 Mbits/sec
[ 4] 1.0- 2.0 sec 1.71 MBytes 14.3 Mbits/sec
[ 4] 2.0- 3.0 sec 1.75 MBytes 14.7 Mbits/sec
[ 4] 3.0- 4.0 sec 1.73 MBytes 14.5 Mbits/sec
[ 4] 4.0- 5.0 sec 1.76 MBytes 14.7 Mbits/sec
[ 4] 5.0- 6.0 sec 1.62 MBytes 13.6 Mbits/sec
[ 4] 6.0- 7.0 sec 1.70 MBytes 14.3 Mbits/sec
[ 4] 7.0- 8.0 sec 1.52 MBytes 12.7 Mbits/sec
[ 4] 8.0- 9.0 sec 1.55 MBytes 13.0 Mbits/sec
[ 4] 9.0-10.0 sec 1.64 MBytes 13.7 Mbits/sec
[ 4] 0.0-10.5 sec 17.6 MBytes 14.1 Mbits/sec
</Ethernet-TCP>
>
<Wi-Fi-TCP>
$ iperf -c 192.168.2.5 -i 1
------------------------------------------------------------
Client connecting to 192.168.2.5, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.2.36 port 49506 connected with 192.168.2.5 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 2.00 MBytes 16.8 Mbits/sec
[ 3] 1.0- 2.0 sec 1.75 MBytes 14.7 Mbits/sec
[ 3] 2.0- 3.0 sec 1.88 MBytes 15.7 Mbits/sec
[ 3] 3.0- 4.0 sec 1.62 MBytes 13.6 Mbits/sec
[ 3] 4.0- 5.0 sec 2.00 MBytes 16.8 Mbits/sec
[ 3] 5.0- 6.0 sec 1.50 MBytes 12.6 Mbits/sec
[ 3] 6.0- 7.0 sec 1.88 MBytes 15.7 Mbits/sec
[ 3] 7.0- 8.0 sec 1.50 MBytes 12.6 Mbits/sec
[ 3] 8.0- 9.0 sec 1.50 MBytes 12.6 Mbits/sec
[ 3] 9.0-10.0 sec 1.88 MBytes 15.7 Mbits/sec
[ 3] 0.0-10.1 sec 17.6 MBytes 14.6 Mbits/sec
</Wi-Fi-TCP>

<Ethernet-UDP>
$ iperf -s -i 1 -u
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.2.5 port 5001 connected with 192.168.2.36 port 32801
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0- 1.0 sec 2.02 MBytes 17.0 Mbits/sec 0.370 ms 0/ 1442 (0%)
[ 3] 1.0- 2.0 sec 2.63 MBytes 22.1 Mbits/sec 0.623 ms 0/ 1876 (0%)
[ 3] 2.0- 3.0 sec 2.77 MBytes 23.2 Mbits/sec 0.423 ms 0/ 1974 (0%)
[ 3] 3.0- 4.0 sec 2.48 MBytes 20.8 Mbits/sec 1.137 ms 0/ 1769 (0%)
[ 3] 4.0- 5.0 sec 2.18 MBytes 18.3 Mbits/sec 0.398 ms 0/ 1558 (0%)
[ 3] 5.0- 6.0 sec 2.26 MBytes 18.9 Mbits/sec 0.846 ms 0/ 1609 (0%)
[ 3] 6.0- 7.0 sec 2.37 MBytes 19.9 Mbits/sec 0.500 ms 0/ 1690 (0%)
[ 3] 7.0- 8.0 sec 2.33 MBytes 19.6 Mbits/sec 0.782 ms 0/ 1663 (0%)
[ 3] 8.0- 9.0 sec 2.44 MBytes 20.5 Mbits/sec 0.707 ms 0/ 1741 (0%)
[ 3] 9.0-10.0 sec 2.58 MBytes 21.7 Mbits/sec 1.300 ms 0/ 1842 (0%)
[ 3] 0.0-10.1 sec 24.2 MBytes 20.2 Mbits/sec 2.782 ms 0/17256 (0%)
[ 3] 0.0-10.1 sec 1 datagrams received out-of-order
</Ethernet-UDP>
>
<Wi-Fi-UDP>
$ iperf -c 192.168.2.5 -i 1 -u -b 300M
------------------------------------------------------------
Client connecting to 192.168.2.5, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.2.36 port 32801 connected with 192.168.2.5 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 2.23 MBytes 18.7 Mbits/sec
[ 3] 1.0- 2.0 sec 2.59 MBytes 21.7 Mbits/sec
[ 3] 2.0- 3.0 sec 2.76 MBytes 23.1 Mbits/sec
[ 3] 3.0- 4.0 sec 2.59 MBytes 21.8 Mbits/sec
[ 3] 4.0- 5.0 sec 2.15 MBytes 18.0 Mbits/sec
[ 3] 5.0- 6.0 sec 2.14 MBytes 17.9 Mbits/sec
[ 3] 6.0- 7.0 sec 2.44 MBytes 20.5 Mbits/sec
[ 3] 7.0- 8.0 sec 2.42 MBytes 20.3 Mbits/sec
[ 3] 8.0- 9.0 sec 2.43 MBytes 20.4 Mbits/sec
[ 3] 9.0-10.0 sec 2.45 MBytes 20.5 Mbits/sec
[ 3] 0.0-10.0 sec 24.2 MBytes 20.3 Mbits/sec
[ 3] Sent 17257 datagrams
[ 3] Server Report:
[ 3] 0.0-10.1 sec 24.2 MBytes 20.2 Mbits/sec 2.782 ms 0/17256 (0%)
[ 3] 0.0-10.1 sec 1 datagrams received out-of-order
</Wi-Fi-UDP>
</Refraction>


[1] DPO_MT7601U_LinuxSTA_3.0.0.4_20130913-Linux-3.17.0-v2.patch

diff -ur a/common/crypt_aes.c b/common/crypt_aes.c
--- a/common/crypt_aes.c 2013-09-12 07:27:14.000000000 +0200
+++ b/common/crypt_aes.c 2014-08-29 22:51:56.252033992 +0200
@@ -1456,7 +1456,7 @@
/* if ((pResult = (UINT8 *) kmalloc(sizeof(UINT8)*PlainTextLength, GFP_ATOMIC)) == NULL) {
*/
if (pResult == NULL) {
- DBGPRINT(RT_DEBUG_ERROR, ("AES_Key_Wrap: allocate %d bytes memory failure.\n", sizeof(UINT8)*PlainTextLength));
+ DBGPRINT(RT_DEBUG_ERROR, ("AES_Key_Wrap: allocate %d bytes memory failure.\n", (UINT)(sizeof(UINT8)*PlainTextLength)));
return -2;
} /* End of if */

@@ -1551,7 +1551,7 @@
/* if ((pResult = (UINT8 *) kmalloc(sizeof(UINT8)*PlainLength, GFP_ATOMIC)) == NULL) {
*/
if (pResult == NULL) {
- DBGPRINT(RT_DEBUG_ERROR, ("AES_Key_Unwrap: allocate %d bytes memory failure.\n", sizeof(UINT8)*PlainLength));
+ DBGPRINT(RT_DEBUG_ERROR, ("AES_Key_Unwrap: allocate %d bytes memory failure.\n", (UINT)(sizeof(UINT8)*PlainLength)));
return -2;
} /* End of if */

diff -ur a/common/mlme.c b/common/mlme.c
--- a/common/mlme.c 2013-09-12 07:27:14.000000000 +0200
+++ b/common/mlme.c 2014-08-28 20:54:24.000000000 +0200
@@ -541,8 +541,8 @@
#endif /* RALINK_ATE */
/* for performace enchanement */
NdisZeroMemory(&pAd->RalinkCounters,
- (UINT32)&pAd->RalinkCounters.OneSecEnd -
- (UINT32)&pAd->RalinkCounters.OneSecStart);
+ (ULONG)&pAd->RalinkCounters.OneSecEnd -
+ (ULONG)&pAd->RalinkCounters.OneSecStart);

return;
}
diff -ur a/common/rtmp_init_inf.c b/common/rtmp_init_inf.c
--- a/common/rtmp_init_inf.c 2013-09-17 11:16:36.000000000 +0200
+++ b/common/rtmp_init_inf.c 2014-08-29 20:57:04.000000000 +0200
@@ -665,7 +665,9 @@
{
UINT32 reg = 0;
RTMP_IO_READ32(pAd, 0x1300, &reg); /* clear garbage interrupts*/
+#ifdef DBG
printk("0x1300 = %08x\n", reg);
+#endif /* DBG */
}

{
diff -ur a/common/rtusb_bulk.c b/common/rtusb_bulk.c
--- a/common/rtusb_bulk.c 2013-09-12 07:27:14.000000000 +0200
+++ b/common/rtusb_bulk.c 2014-08-29 20:57:43.000000000 +0200
@@ -1585,7 +1585,9 @@

if (pCmdRspEventContext->IRPPending == TRUE)
{
+#ifdef DBG
printk("unlink cmd rsp urb\n");
+#endif /* DBG */
RTUSB_UNLINK_URB(pCmdRspEventContext->pUrb);
pCmdRspEventContext->IRPPending = FALSE;
pCmdRspEventContext->InUse = FALSE;
diff -ur a/common/spectrum.c b/common/spectrum.c
--- a/common/spectrum.c 2013-09-12 07:27:14.000000000 +0200
+++ b/common/spectrum.c 2014-08-29 23:03:23.250333353 +0200
@@ -1969,7 +1969,7 @@
/* if ((pMeasureReportInfo = kmalloc(sizeof(MEASURE_RPI_REPORT), GFP_ATOMIC)) == NULL)*/
if (pMeasureReportInfo == NULL)
{
- DBGPRINT(RT_DEBUG_ERROR, ("%s unable to alloc memory for measure report buffer (size=%d).\n", __FUNCTION__, sizeof(MEASURE_RPI_REPORT)));
+ DBGPRINT(RT_DEBUG_ERROR, ("%s unable to alloc memory for measure report buffer (size=%d).\n", __FUNCTION__, (UINT)sizeof(MEASURE_RPI_REPORT)));
return;
}

diff -ur a/include/os/rt_linux.h b/include/os/rt_linux.h
--- a/include/os/rt_linux.h 2013-09-12 07:27:14.000000000 +0200
+++ b/include/os/rt_linux.h 2014-08-28 20:54:24.000000000 +0200
@@ -879,12 +879,19 @@
(RTPKT_TO_OSPKT(_pkt)->len)
#define SET_OS_PKT_LEN(_pkt, _len) \
(RTPKT_TO_OSPKT(_pkt)->len) = (_len)
-
+
+#ifdef NET_SKBUFF_DATA_USES_OFFSET
+#define GET_OS_PKT_DATATAIL(_pkt) \
+ (RTPKT_TO_OSPKT(_pkt)->head + (ULONG)RTPKT_TO_OSPKT(_pkt)->tail)
+#define SET_OS_PKT_DATATAIL(_pkt, _start, _len) \
+ ((RTPKT_TO_OSPKT(_pkt))->tail) = (ULONG)_start - (ULONG)(RTPKT_TO_OSPKT(_pkt)->head) + (_len)
+#else
#define GET_OS_PKT_DATATAIL(_pkt) \
- (RTPKT_TO_OSPKT(_pkt)->tail)
+ (RTPKT_TO_OSPKT(_pkt)->tail)
#define SET_OS_PKT_DATATAIL(_pkt, _start, _len) \
((RTPKT_TO_OSPKT(_pkt))->tail) = (PUCHAR)((_start) + (_len))
-
+#endif
+
#define GET_OS_PKT_HEAD(_pkt) \
(RTPKT_TO_OSPKT(_pkt)->head)

diff -ur a/os/linux/config.mk b/os/linux/config.mk
--- a/os/linux/config.mk 2013-09-12 08:05:55.000000000 +0200
+++ b/os/linux/config.mk 2014-08-28 20:54:24.000000000 +0200
@@ -150,7 +150,7 @@
HAS_BGFP_OPEN_SUPPORT=n

# Support HOSTAPD function
-HAS_HOSTAPD_SUPPORT=n
+HAS_HOSTAPD_SUPPORT=y

#Support GreenAP function
HAS_GREENAP_SUPPORT=n
@@ -290,7 +290,7 @@
# config for STA mode

ifeq ($(RT28xx_MODE),STA)
-WFLAGS += -DCONFIG_STA_SUPPORT -DSCAN_SUPPORT -DDBG
+WFLAGS += -DCONFIG_STA_SUPPORT -DSCAN_SUPPORT

ifeq ($(HAS_XLINK),y)
WFLAGS += -DXLINK_SUPPORT
@@ -1054,11 +1054,16 @@
export CFLAGS
endif

+GCCVERSION = $(shell gcc -dumpversion)
+
ifeq ($(PLATFORM),PC)
ifneq (,$(findstring 2.4,$(LINUX_SRC)))
# Linux 2.4
CFLAGS := -D__KERNEL__ -I$(LINUX_SRC)/include -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -DMODULE -DMODVERSIONS -include $(LINUX_SRC)/include/linux/modversions.h $(WFLAGS)
export CFLAGS
+ else ifneq (,$(findstring 4.9,$(GCCVERSION)))
+ # GCC 4.9
+ EXTRA_CFLAGS := -Wno-error=date-time $(WFLAGS)
else
# Linux 2.6
EXTRA_CFLAGS := $(WFLAGS)
diff -ur a/os/linux/rt_linux.c b/os/linux/rt_linux.c
--- a/os/linux/rt_linux.c 2013-09-12 07:27:14.000000000 +0200
+++ b/os/linux/rt_linux.c 2014-08-28 20:54:24.000000000 +0200
@@ -494,9 +494,11 @@
MEM_DBG_PKT_ALLOC_INC(skb);

skb_reserve(skb, 2);
- NdisMoveMemory(skb->tail, pHeader802_3, HdrLen);
+
+ NdisMoveMemory(GET_OS_PKT_DATATAIL(skb), pHeader802_3, HdrLen);
skb_put(skb, HdrLen);
- NdisMoveMemory(skb->tail, pData, DataSize);
+ NdisMoveMemory(GET_OS_PKT_DATATAIL(skb), pData, DataSize);
+
skb_put(skb, DataSize);
skb->dev = pNetDev; /*get_netdev_from_bssid(pAd, FromWhichBSSID); */
pPacket = OSPKT_TO_RTPKT(skb);
@@ -647,7 +649,7 @@
pClonedPkt->dev = pRxPkt->dev;
pClonedPkt->data = pData;
pClonedPkt->len = DataSize;
- pClonedPkt->tail = pClonedPkt->data + pClonedPkt->len;
+ SET_OS_PKT_DATATAIL(pClonedPkt, pClonedPkt->data, pClonedPkt->len);
ASSERT(DataSize < 1530);
}
return pClonedPkt;
@@ -692,7 +694,7 @@
pOSPkt->dev = pNetDev;
pOSPkt->data = pData;
pOSPkt->len = DataSize;
- pOSPkt->tail = pOSPkt->data + pOSPkt->len;
+ SET_OS_PKT_DATATAIL(pOSPkt, pOSPkt->data, pOSPkt->len);

/* copy 802.3 header */

@@ -1117,6 +1119,11 @@
pOSFSInfo->fsuid = current->fsuid;
pOSFSInfo->fsgid = current->fsgid;
current->fsuid = current->fsgid = 0;
+
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,10)
+ pOSFSInfo->fsuid = current_fsuid().val;
+ pOSFSInfo->fsgid = current_fsgid().val;
+
#else
pOSFSInfo->fsuid = current_fsuid();
pOSFSInfo->fsgid = current_fsgid();
diff -ur a/os/linux/rt_main_dev.c b/os/linux/rt_main_dev.c
--- a/os/linux/rt_main_dev.c 2013-09-12 07:27:14.000000000 +0200
+++ b/os/linux/rt_main_dev.c 2014-08-29 21:14:46.000000000 +0200
@@ -746,7 +746,9 @@
/* Unregister network device */
if (net_dev != NULL)
{
+#ifdef DBG
printk("RtmpOSNetDevDetach(): RtmpOSNetDeviceDetach(), dev->name=%s!\n", net_dev->name);
+#endif /* DBG */
RtmpOSNetDevDetach(net_dev);
}

diff -ur a/os/linux/rt_profile.c b/os/linux/rt_profile.c
--- a/os/linux/rt_profile.c 2013-09-12 07:27:14.000000000 +0200
+++ b/os/linux/rt_profile.c 2014-08-29 23:23:18.033710839 +0200
@@ -396,7 +396,7 @@

if (pRxBlk->DataSize + sizeof(wlan_ng_prism2_header) > RX_BUFFER_AGGRESIZE)
{
- DBGPRINT(RT_DEBUG_ERROR, ("%s : Size is too large! (%d)\n", __FUNCTION__, pRxBlk->DataSize + sizeof(wlan_ng_prism2_header)));
+ DBGPRINT(RT_DEBUG_ERROR, ("%s : Size is too large! (%d)\n", __FUNCTION__, pRxBlk->DataSize + (UINT)sizeof(wlan_ng_prism2_header)));
goto err_free_sk_buff;
}

diff -ur a/os/linux/usb_main_dev.c b/os/linux/usb_main_dev.c
--- a/os/linux/usb_main_dev.c 2013-09-12 07:27:14.000000000 +0200
+++ b/os/linux/usb_main_dev.c 2014-08-29 21:12:35.000000000 +0200
@@ -516,7 +516,9 @@
/* Init driver module */
INT __init rtusb_init(void)
{
+#ifdef DBG
printk("rtusb init %s --->\n", RTMP_DRV_NAME);
+#endif /* DBG */
return usb_register(&rtusb_driver);
}

@@ -524,7 +526,9 @@
VOID __exit rtusb_exit(void)
{
usb_deregister(&rtusb_driver);
+#ifdef DBG
printk("<--- rtusb exit\n");
+#endif /* DBG */
}

module_init(rtusb_init);
diff -ur a/sta/sta_cfg.c b/sta/sta_cfg.c
--- a/sta/sta_cfg.c 2013-09-12 07:27:14.000000000 +0200
+++ b/sta/sta_cfg.c 2014-08-28 20:54:24.000000000 +0200
@@ -8274,6 +8274,7 @@
RTMPIoctlGetSiteSurvey(pAd, pRequest);
break;

+#ifdef DBG
case CMD_RTPRIV_IOCTL_MAC:
RTMPIoctlMAC(pAd, pRequest);
break;
@@ -8285,6 +8286,7 @@
case CMD_RTPRIV_IOCTL_RF:
RTMPIoctlRF(pAd, pRequest);
break;
+#endif /* DBG */

case CMD_RTPRIV_IOCTL_BBP:
RTMPIoctlBbp(pAd, pRequest, pData, Data);


poma



2014-08-26 18:30:24

by John W. Linville

[permalink] [raw]
Subject: Re: MediaTek Inc. MT7601U Wireless Adapter

On Tue, Aug 26, 2014 at 07:35:23PM +0200, poma wrote:
>
> Say, hi fi to everybody!
>
> Driver "mt7601Usta"(DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2) for the MediaTek MT7601U based wireless adapters - on a sale worldwide, is broken and obsolete.
> MediaTek folks,
> please consider the release of an upgraded version of the driver for the current stable Linux kernel, and the upcoming.
> Thanks.

It would be much better if the MediaTek folks would just send us
patches for the drivers already in the kernel...

John
--
John W. Linville Someday the world will need a hero, and you
[email protected] might be all we have. Be ready.

2014-10-07 15:12:50

by poma

[permalink] [raw]
Subject: Re: [rt2x00-users] MediaTek Inc. MT7601U Wireless Adapter

On 07.10.2014 16:59, poma wrote:
> On 07.10.2014 15:57, John W. Linville wrote:
>> You probably shold be sending this to MediaTek. The driver you are
>> using is not part of the upstream Linux kernel.
>>
>> John
>>
>
> No problemos!
>
>

BTW, p?n Gruszka, when will these devices be supported as a part of the upstream Linux kernel?


poma


>> On Tue, Oct 07, 2014 at 04:47:11AM +0200, poma wrote:
>>>
>>> BUG: unable to handle kernel paging request at ffffc9000277c070
>>> IP: [<ffffffff8165272c>] __netdev_watchdog_up+0xc/0x80
>>> PGD 12b01c067 PUD 12b01d067 PMD 1295e8067 PTE 0
>>> Oops: 0000 [#1] SMP
>>> CPU: 3 PID: 1497 Comm: wpa_supplicant Tainted: G OE 3.17.0-1.fc21.x86_64 #1
>>> task: ffff88007ec44e80 ti: ffff8800beddc000 task.ti: ffff8800beddc000
>>> RIP: 0010:[<ffffffff8165272c>] [<ffffffff8165272c>] __netdev_watchdog_up+0xc/0x80
>>> RSP: 0018:ffff8800beddfcd8 EFLAGS: 00010202
>>> RAX: ffffc9000277c000 RBX: ffff8800caa3c000 RCX: ffff8800ca22a948
>>> RDX: 0000000000000000 RSI: 0000000000000005 RDI: ffff8800caa3c000
>>> RBP: ffff8800beddfce8 R08: 0000000000000000 R09: 0000000000000208
>>> R10: 0000000000000400 R11: 0000000000000010 R12: 0000000000000000
>>> R13: ffffc9000277c000 R14: 0000000000000000 R15: 0000000000000001
>>> FS: 00007fce557aa800(0000) GS:ffff88012fcc0000(0000) knlGS:0000000000000000
>>> CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
>>> CR2: ffffc9000277c070 CR3: 000000007eeed000 CR4: 00000000000007e0
>>> Stack:
>>> ffffffff816527e8 ffff8800caa3c000 ffff8800beddfd20 ffffffffa05e4655
>>> ffffffffa05e4ab0 ffffffffa05e4510 000000005abd5236 ffff8800caa3c000
>>> 0000000000001003 ffff8800beddfd58 ffffffff8163135e ffff8800caa3c000
>>> Call Trace:
>>> [<ffffffff816527e8>] ? netif_carrier_on+0x48/0x50
>>> [<ffffffffa05e4655>] MainVirtualIF_open+0x85/0xe0 [mt7601Usta]
>>> [<ffffffffa05e4ab0>] ? RtmpOSIRQRequest+0x60/0x60 [mt7601Usta]
>>> [<ffffffffa05e4510>] ? RT28xx_get_ether_stats+0x150/0x150 [mt7601Usta]
>>> [<ffffffff8163135e>] __dev_open+0xce/0x150
>>> [<ffffffff8163168d>] __dev_change_flags+0x9d/0x160
>>> [<ffffffff81631779>] dev_change_flags+0x29/0x70
>>> [<ffffffff816a5bac>] devinet_ioctl+0x63c/0x710
>>> [<ffffffff816a6d05>] inet_ioctl+0x65/0x90
>>> [<ffffffff816105d5>] sock_do_ioctl+0x25/0x50
>>> [<ffffffff81610b30>] sock_ioctl+0x1f0/0x2c0
>>> [<ffffffff81220340>] do_vfs_ioctl+0x2d0/0x4b0
>>> [<ffffffff812205a1>] SyS_ioctl+0x81/0xa0
>>> [<ffffffff81135a16>] ? __audit_syscall_exit+0x1f6/0x2a0
>>> [<ffffffff81743469>] system_call_fastpath+0x16/0x1b
>>> Code: 9b 48 a4 ff c6 05 bd 12 6b 00 01 48 8b 45 d8 e9 09 ff ff ff 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 66 66 90 48 8b 87 e8 01 00 00 <48> 83 78 70 00 74 41 55 48 89 e5 53 48 63 87 c0 03 00 00 85 c0
>>> RIP [<ffffffff8165272c>] __netdev_watchdog_up+0xc/0x80
>>> RSP <ffff8800beddfcd8>
>>> CR2: ffffc9000277c070
>>> ---[ end trace 97a7adc75a3f40f8 ]---
>>>
>>>
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
>>> the body of a message to [email protected]
>>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>>
>>
>


2014-10-07 14:16:23

by John W. Linville

[permalink] [raw]
Subject: Re: [rt2x00-users] MediaTek Inc. MT7601U Wireless Adapter

You probably shold be sending this to MediaTek. The driver you are
using is not part of the upstream Linux kernel.

John

On Tue, Oct 07, 2014 at 04:47:11AM +0200, poma wrote:
>
> BUG: unable to handle kernel paging request at ffffc9000277c070
> IP: [<ffffffff8165272c>] __netdev_watchdog_up+0xc/0x80
> PGD 12b01c067 PUD 12b01d067 PMD 1295e8067 PTE 0
> Oops: 0000 [#1] SMP
> CPU: 3 PID: 1497 Comm: wpa_supplicant Tainted: G OE 3.17.0-1.fc21.x86_64 #1
> task: ffff88007ec44e80 ti: ffff8800beddc000 task.ti: ffff8800beddc000
> RIP: 0010:[<ffffffff8165272c>] [<ffffffff8165272c>] __netdev_watchdog_up+0xc/0x80
> RSP: 0018:ffff8800beddfcd8 EFLAGS: 00010202
> RAX: ffffc9000277c000 RBX: ffff8800caa3c000 RCX: ffff8800ca22a948
> RDX: 0000000000000000 RSI: 0000000000000005 RDI: ffff8800caa3c000
> RBP: ffff8800beddfce8 R08: 0000000000000000 R09: 0000000000000208
> R10: 0000000000000400 R11: 0000000000000010 R12: 0000000000000000
> R13: ffffc9000277c000 R14: 0000000000000000 R15: 0000000000000001
> FS: 00007fce557aa800(0000) GS:ffff88012fcc0000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> CR2: ffffc9000277c070 CR3: 000000007eeed000 CR4: 00000000000007e0
> Stack:
> ffffffff816527e8 ffff8800caa3c000 ffff8800beddfd20 ffffffffa05e4655
> ffffffffa05e4ab0 ffffffffa05e4510 000000005abd5236 ffff8800caa3c000
> 0000000000001003 ffff8800beddfd58 ffffffff8163135e ffff8800caa3c000
> Call Trace:
> [<ffffffff816527e8>] ? netif_carrier_on+0x48/0x50
> [<ffffffffa05e4655>] MainVirtualIF_open+0x85/0xe0 [mt7601Usta]
> [<ffffffffa05e4ab0>] ? RtmpOSIRQRequest+0x60/0x60 [mt7601Usta]
> [<ffffffffa05e4510>] ? RT28xx_get_ether_stats+0x150/0x150 [mt7601Usta]
> [<ffffffff8163135e>] __dev_open+0xce/0x150
> [<ffffffff8163168d>] __dev_change_flags+0x9d/0x160
> [<ffffffff81631779>] dev_change_flags+0x29/0x70
> [<ffffffff816a5bac>] devinet_ioctl+0x63c/0x710
> [<ffffffff816a6d05>] inet_ioctl+0x65/0x90
> [<ffffffff816105d5>] sock_do_ioctl+0x25/0x50
> [<ffffffff81610b30>] sock_ioctl+0x1f0/0x2c0
> [<ffffffff81220340>] do_vfs_ioctl+0x2d0/0x4b0
> [<ffffffff812205a1>] SyS_ioctl+0x81/0xa0
> [<ffffffff81135a16>] ? __audit_syscall_exit+0x1f6/0x2a0
> [<ffffffff81743469>] system_call_fastpath+0x16/0x1b
> Code: 9b 48 a4 ff c6 05 bd 12 6b 00 01 48 8b 45 d8 e9 09 ff ff ff 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 66 66 90 48 8b 87 e8 01 00 00 <48> 83 78 70 00 74 41 55 48 89 e5 53 48 63 87 c0 03 00 00 85 c0
> RIP [<ffffffff8165272c>] __netdev_watchdog_up+0xc/0x80
> RSP <ffff8800beddfcd8>
> CR2: ffffc9000277c070
> ---[ end trace 97a7adc75a3f40f8 ]---
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>

--
John W. Linville Someday the world will need a hero, and you
[email protected] might be all we have. Be ready.

2014-10-07 14:59:17

by poma

[permalink] [raw]
Subject: Re: [rt2x00-users] MediaTek Inc. MT7601U Wireless Adapter

On 07.10.2014 15:57, John W. Linville wrote:
> You probably shold be sending this to MediaTek. The driver you are
> using is not part of the upstream Linux kernel.
>
> John
>

No problemos!


> On Tue, Oct 07, 2014 at 04:47:11AM +0200, poma wrote:
>>
>> BUG: unable to handle kernel paging request at ffffc9000277c070
>> IP: [<ffffffff8165272c>] __netdev_watchdog_up+0xc/0x80
>> PGD 12b01c067 PUD 12b01d067 PMD 1295e8067 PTE 0
>> Oops: 0000 [#1] SMP
>> CPU: 3 PID: 1497 Comm: wpa_supplicant Tainted: G OE 3.17.0-1.fc21.x86_64 #1
>> task: ffff88007ec44e80 ti: ffff8800beddc000 task.ti: ffff8800beddc000
>> RIP: 0010:[<ffffffff8165272c>] [<ffffffff8165272c>] __netdev_watchdog_up+0xc/0x80
>> RSP: 0018:ffff8800beddfcd8 EFLAGS: 00010202
>> RAX: ffffc9000277c000 RBX: ffff8800caa3c000 RCX: ffff8800ca22a948
>> RDX: 0000000000000000 RSI: 0000000000000005 RDI: ffff8800caa3c000
>> RBP: ffff8800beddfce8 R08: 0000000000000000 R09: 0000000000000208
>> R10: 0000000000000400 R11: 0000000000000010 R12: 0000000000000000
>> R13: ffffc9000277c000 R14: 0000000000000000 R15: 0000000000000001
>> FS: 00007fce557aa800(0000) GS:ffff88012fcc0000(0000) knlGS:0000000000000000
>> CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
>> CR2: ffffc9000277c070 CR3: 000000007eeed000 CR4: 00000000000007e0
>> Stack:
>> ffffffff816527e8 ffff8800caa3c000 ffff8800beddfd20 ffffffffa05e4655
>> ffffffffa05e4ab0 ffffffffa05e4510 000000005abd5236 ffff8800caa3c000
>> 0000000000001003 ffff8800beddfd58 ffffffff8163135e ffff8800caa3c000
>> Call Trace:
>> [<ffffffff816527e8>] ? netif_carrier_on+0x48/0x50
>> [<ffffffffa05e4655>] MainVirtualIF_open+0x85/0xe0 [mt7601Usta]
>> [<ffffffffa05e4ab0>] ? RtmpOSIRQRequest+0x60/0x60 [mt7601Usta]
>> [<ffffffffa05e4510>] ? RT28xx_get_ether_stats+0x150/0x150 [mt7601Usta]
>> [<ffffffff8163135e>] __dev_open+0xce/0x150
>> [<ffffffff8163168d>] __dev_change_flags+0x9d/0x160
>> [<ffffffff81631779>] dev_change_flags+0x29/0x70
>> [<ffffffff816a5bac>] devinet_ioctl+0x63c/0x710
>> [<ffffffff816a6d05>] inet_ioctl+0x65/0x90
>> [<ffffffff816105d5>] sock_do_ioctl+0x25/0x50
>> [<ffffffff81610b30>] sock_ioctl+0x1f0/0x2c0
>> [<ffffffff81220340>] do_vfs_ioctl+0x2d0/0x4b0
>> [<ffffffff812205a1>] SyS_ioctl+0x81/0xa0
>> [<ffffffff81135a16>] ? __audit_syscall_exit+0x1f6/0x2a0
>> [<ffffffff81743469>] system_call_fastpath+0x16/0x1b
>> Code: 9b 48 a4 ff c6 05 bd 12 6b 00 01 48 8b 45 d8 e9 09 ff ff ff 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 66 66 90 48 8b 87 e8 01 00 00 <48> 83 78 70 00 74 41 55 48 89 e5 53 48 63 87 c0 03 00 00 85 c0
>> RIP [<ffffffff8165272c>] __netdev_watchdog_up+0xc/0x80
>> RSP <ffff8800beddfcd8>
>> CR2: ffffc9000277c070
>> ---[ end trace 97a7adc75a3f40f8 ]---
>>
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
>> the body of a message to [email protected]
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>
>


2014-10-28 07:47:35

by poma

[permalink] [raw]
Subject: Re: [rt2x00-users] MediaTek Inc. MT7601U Wireless Adapter

On 08.10.2014 11:53, Stanislaw Gruszka wrote:
> On Tue, Oct 07, 2014 at 05:12:47PM +0200, poma wrote:
>> BTW, p?n Gruszka, when will these devices be supported as a part of the upstream Linux kernel?
>
> I'm not an oracle :-)
>
> Larry declared to work on some mt76xx chip support, I'm cc him.
>
> I can also work on new chips for rt2x00, but wanted to finish some
> other work before.
>
> Stanislaw
>

Even better p?n Gruszka, MediaTek has spoken. :)
I hope that they really support further development here.


Toodooloo



2014-10-08 09:56:44

by Stanislaw Gruszka

[permalink] [raw]
Subject: Re: [rt2x00-users] MediaTek Inc. MT7601U Wireless Adapter

On Tue, Oct 07, 2014 at 05:12:47PM +0200, poma wrote:
> BTW, p?n Gruszka, when will these devices be supported as a part of the upstream Linux kernel?

I'm not an oracle :-)

Larry declared to work on some mt76xx chip support, I'm cc him.

I can also work on new chips for rt2x00, but wanted to finish some
other work before.

Stanislaw


2014-10-28 10:10:48

by Stanislaw Gruszka

[permalink] [raw]
Subject: Re: [rt2x00-users] MediaTek Inc. MT7601U Wireless Adapter

On Tue, Oct 28, 2014 at 08:47:29AM +0100, poma wrote:
> On 08.10.2014 11:53, Stanislaw Gruszka wrote:
> > On Tue, Oct 07, 2014 at 05:12:47PM +0200, poma wrote:
> >> BTW, p?n Gruszka, when will these devices be supported as a part of the upstream Linux kernel?
> >
> > I'm not an oracle :-)
> >
> > Larry declared to work on some mt76xx chip support, I'm cc him.
> >
> > I can also work on new chips for rt2x00, but wanted to finish some
> > other work before.
> >
> > Stanislaw
> >
>
> Even better p?n Gruszka, MediaTek has spoken. :)
> I hope that they really support further development here.

Me too.

Stanislaw

2014-10-07 02:47:14

by poma

[permalink] [raw]
Subject: Re: [rt2x00-users] MediaTek Inc. MT7601U Wireless Adapter


BUG: unable to handle kernel paging request at ffffc9000277c070
IP: [<ffffffff8165272c>] __netdev_watchdog_up+0xc/0x80
PGD 12b01c067 PUD 12b01d067 PMD 1295e8067 PTE 0
Oops: 0000 [#1] SMP
CPU: 3 PID: 1497 Comm: wpa_supplicant Tainted: G OE 3.17.0-1.fc21.x86_64 #1
task: ffff88007ec44e80 ti: ffff8800beddc000 task.ti: ffff8800beddc000
RIP: 0010:[<ffffffff8165272c>] [<ffffffff8165272c>] __netdev_watchdog_up+0xc/0x80
RSP: 0018:ffff8800beddfcd8 EFLAGS: 00010202
RAX: ffffc9000277c000 RBX: ffff8800caa3c000 RCX: ffff8800ca22a948
RDX: 0000000000000000 RSI: 0000000000000005 RDI: ffff8800caa3c000
RBP: ffff8800beddfce8 R08: 0000000000000000 R09: 0000000000000208
R10: 0000000000000400 R11: 0000000000000010 R12: 0000000000000000
R13: ffffc9000277c000 R14: 0000000000000000 R15: 0000000000000001
FS: 00007fce557aa800(0000) GS:ffff88012fcc0000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: ffffc9000277c070 CR3: 000000007eeed000 CR4: 00000000000007e0
Stack:
ffffffff816527e8 ffff8800caa3c000 ffff8800beddfd20 ffffffffa05e4655
ffffffffa05e4ab0 ffffffffa05e4510 000000005abd5236 ffff8800caa3c000
0000000000001003 ffff8800beddfd58 ffffffff8163135e ffff8800caa3c000
Call Trace:
[<ffffffff816527e8>] ? netif_carrier_on+0x48/0x50
[<ffffffffa05e4655>] MainVirtualIF_open+0x85/0xe0 [mt7601Usta]
[<ffffffffa05e4ab0>] ? RtmpOSIRQRequest+0x60/0x60 [mt7601Usta]
[<ffffffffa05e4510>] ? RT28xx_get_ether_stats+0x150/0x150 [mt7601Usta]
[<ffffffff8163135e>] __dev_open+0xce/0x150
[<ffffffff8163168d>] __dev_change_flags+0x9d/0x160
[<ffffffff81631779>] dev_change_flags+0x29/0x70
[<ffffffff816a5bac>] devinet_ioctl+0x63c/0x710
[<ffffffff816a6d05>] inet_ioctl+0x65/0x90
[<ffffffff816105d5>] sock_do_ioctl+0x25/0x50
[<ffffffff81610b30>] sock_ioctl+0x1f0/0x2c0
[<ffffffff81220340>] do_vfs_ioctl+0x2d0/0x4b0
[<ffffffff812205a1>] SyS_ioctl+0x81/0xa0
[<ffffffff81135a16>] ? __audit_syscall_exit+0x1f6/0x2a0
[<ffffffff81743469>] system_call_fastpath+0x16/0x1b
Code: 9b 48 a4 ff c6 05 bd 12 6b 00 01 48 8b 45 d8 e9 09 ff ff ff 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 66 66 90 48 8b 87 e8 01 00 00 <48> 83 78 70 00 74 41 55 48 89 e5 53 48 63 87 c0 03 00 00 85 c0
RIP [<ffffffff8165272c>] __netdev_watchdog_up+0xc/0x80
RSP <ffff8800beddfcd8>
CR2: ffffc9000277c070
---[ end trace 97a7adc75a3f40f8 ]---