Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Netgear WNDA3100v3 drivers
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware
View previous topic :: View next topic  
Author Message
p4plus2
n00b
n00b


Joined: 16 Dec 2014
Posts: 5

PostPosted: Tue Dec 16, 2014 2:39 am    Post subject: Netgear WNDA3100v3 drivers Reply with quote

Recently I was given a Netgear WNDA3100v3 but am having quite the rough experience getting it working on linux. Searching on google at first proved rather futile for this specific version, so I defaulted to a fallback plan of ndiswrapper. Ndiswrapper, however, fails with the following:

Code:

[ 4089.868628] ndiswrapper (import:232): unknown symbol: ntoskrnl.exe:'ExEventObjectType'
[ 4089.868641] ndiswrapper (import:232): unknown symbol: ntoskrnl.exe:'MmGetSystemRoutineAddress'
[ 4089.868644] ndiswrapper (import:232): unknown symbol: ntoskrnl.exe:'IoWMIWriteEvent'
[ 4089.868647] ndiswrapper (import:232): unknown symbol: ntoskrnl.exe:'RtlStringFromGUID'
[ 4089.868663] ndiswrapper (import:232): unknown symbol: ntoskrnl.exe:'__chkstk'
[ 4089.868713] ndiswrapper (load_sys_files:200): couldn't prepare driver 'rt2870'
[ 4089.869235] ndiswrapper (load_wrap_driver:103): couldn't load driver rt2870; check system log for messages from 'loadndisdriver'


But then I had remembered there were linux drivers for the ralink devices like the rt2870, so I went and built the modules. However, no luck the device wasn't detected at all. I opened up the rt2800usb.c and added the device to the list however, still no dice. That resulted in a rather unhelpful error: rt2800_probe_rt: Error - Invalid RT chipset 0x0000, rev 0000 detected. The device 0846:9013 seemed to be supported but this device is a 0846:9014, so I was hopeful.

lsusb -v output:
Code:

Bus 003 Device 013: ID 0846:9014 NetGear, Inc.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.01
  bDeviceClass            0
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x0846 NetGear, Inc.
  idProduct          0x9014
  bcdDevice            1.00
  iManufacturer           1 MediaTek Inc.
  iProduct                2 WNDA3100v3
  iSerial                 3 000000000
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           74
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          2 WNDA3100v3
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              200mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           8
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              2 WNDA3100v3
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 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     0x85  EP 5 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     0x08  EP 8 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     0x04  EP 4 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     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
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x07  EP 7 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     0x09  EP 9 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Binary Object Store Descriptor:
  bLength                 5
  bDescriptorType        15
  wTotalLength           12
  bNumDeviceCaps          1
  USB 2.0 Extension Device Capability:
    bLength                 7
    bDescriptorType        16
    bDevCapabilityType      2
    bmAttributes   0x0000f41e
      BESL Link Power Management (LPM) Supported
    BESL value     1024 us
    Deep BESL value    61440 us
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0002
  (Bus Powered)
  Remote Wakeup Enabled


Any ideas on what I could try to get his running? I am okay with ndiswrapper or native drivers, though I would prefer the latter.
Back to top
View user's profile Send private message
chithanh
Developer
Developer


Joined: 05 Aug 2006
Posts: 2152
Location: Berlin, Germany

PostPosted: Tue Dec 16, 2014 8:08 am    Post subject: Re: Netgear WNDA3100v3 drivers Reply with quote

p4plus2 wrote:
That resulted in a rather unhelpful error: rt2800_probe_rt: Error - Invalid RT chipset 0x0000, rev 0000 detected. The device 0846:9013 seemed to be supported but this device is a 0846:9014, so I was hopeful.
Are you sure it is a Ralink rt2800 based device?

v1 (0846:9010) is Atheros based
v2 (0846:9011) is Broadcom based
Back to top
View user's profile Send private message
p4plus2
n00b
n00b


Joined: 16 Dec 2014
Posts: 5

PostPosted: Tue Dec 16, 2014 8:21 am    Post subject: Re: Netgear WNDA3100v3 drivers Reply with quote

chithanh wrote:
p4plus2 wrote:
That resulted in a rather unhelpful error: rt2800_probe_rt: Error - Invalid RT chipset 0x0000, rev 0000 detected. The device 0846:9013 seemed to be supported but this device is a 0846:9014, so I was hopeful.
Are you sure it is a Ralink rt2800 based device?

v1 (0846:9010) is Atheros based
v2 (0846:9011) is Broadcom based


100%. In fact, I have been hacking at the device driver an managed to get it to spit out at me its specifically a 7662. I've been doing mostly guess work at this point but I got it to connect to my network and recieve an IP. But at this point if something attempts using the internet the entire system locks up. The drivers on the disk that came with it were rt2870.sys which further solidifies my thoughts that it is rt2800 based.

I'm rather stuck until I figure out how to more properly debug the issue, buts at least progress.
Back to top
View user's profile Send private message
chithanh
Developer
Developer


Joined: 05 Aug 2006
Posts: 2152
Location: Berlin, Germany

PostPosted: Wed Dec 17, 2014 4:10 pm    Post subject: Reply with quote

If it is a MT7662U device, then it will not work properly with the rt2800 driver, nor any other driver in the kernel for that matter.

Your best bet would be to build the mtk-wifi driver from OpenWrt:
https://forum.openwrt.org/viewtopic.php?id=53215
https://github.com/openwrt/mtk-wifi-gpl

Failing that, there seem to be mentionings of the 7662U in MediaTek/Ralink's MT7601U out-of-tree driver, which you could also give a try.
http://www.mediatek.com/en/downloads/
Back to top
View user's profile Send private message
p4plus2
n00b
n00b


Joined: 16 Dec 2014
Posts: 5

PostPosted: Wed Dec 17, 2014 9:38 pm    Post subject: Reply with quote

chithanh wrote:
If it is a MT7662U device, then it will not work properly with the rt2800 driver, nor any other driver in the kernel for that matter.

Your best bet would be to build the mtk-wifi driver from OpenWrt:
https://forum.openwrt.org/viewtopic.php?id=53215
https://github.com/openwrt/mtk-wifi-gpl

Failing that, there seem to be mentionings of the 7662U in MediaTek/Ralink's MT7601U out-of-tree driver, which you could also give a try.
http://www.mediatek.com/en/downloads/


Since I've started my work I've come across those links now. Unfortunately, the mtk-wifi only supports AP configurations, not sta. And, as far as I can tell, there is no support for usb devices in the mtk repo.

As for the out of tree driver I've had about add much luck as hacking at the in tree driver. The out of tree driver didn't even compile as is and needed quite a bit of tweaking. But, alas, it still crashes with a skb_over_panic. I tried to pad all skb allocations with an extra 10kb arbitrarily to see if that would help, but no dice. I am currently attempting to Frankenstein something together from various mediatek drivers, not having too much luck.

Something interesting I've found is the panic can only be triggered if I startx, the attempt accessing the internet. I can download as much as I want prior to startx, but after, even if I kill x, I get a panic instantly. All in all, this experience may not be so bad if I wasn't using a desktop without internet and a cell phone with bad reception for my development. But that's just half the fun I guess :p.
Back to top
View user's profile Send private message
chithanh
Developer
Developer


Joined: 05 Aug 2006
Posts: 2152
Location: Berlin, Germany

PostPosted: Thu Dec 18, 2014 7:59 pm    Post subject: Reply with quote

From what I read of the mtk-wifi documentation, you need to edit the Makefile to build STA mode.

Also, try the latest kernel version which the 7601 driver builds against without patching.
Back to top
View user's profile Send private message
p4plus2
n00b
n00b


Joined: 16 Dec 2014
Posts: 5

PostPosted: Fri Dec 19, 2014 6:28 am    Post subject: Reply with quote

chithanh wrote:
From what I read of the mtk-wifi documentation, you need to edit the Makefile to build STA mode.

Also, try the latest kernel version which the 7601 driver builds against without patching.


The mtk-wifi drivers have STA support removed, the source files are in fact missing. The 7601 drivers do not include most of the needed files either for the mt7662 and integrating the chipset turns out to be infeasible do to most of the underlaying structs being different. However, I spent the last three days modding the MT7612U drivers and finally have them working :D! Its so far been three or so hours since my last change and I've not yet had a single crash. Currently my bandwidth is a fraction of what I should be getting (around 5mbps vs the 128mpbs I get when hardwired), but its a massive step in the right direction.

My next step will probably be to attempt rewriting the driver from scratch hopefully significantly more organized than the out of tree driver. Even if its never good enough to submit as an actual driver its a learning experience I am not willing to pass up :). I am just glad to have gotten this far, but now that my desktop has internet again I can prepare an actual development environment. I am not sure I am ready to call this thread "solved" as there is still an open issue of getting a long term solution working, but its more solved than when I started, not sure what convention dictates in these situations.

Anyways, I'll be sure to occasionally post any significant progress updates, but until then thanks for taking the time to reply and offer assistance.
Back to top
View user's profile Send private message
jbernardo
n00b
n00b


Joined: 06 Apr 2015
Posts: 1

PostPosted: Mon Apr 06, 2015 10:25 am    Post subject: Reply with quote

Hi, did you manage to advance on this? Sorry to bother you, but you seem to be the only person working on these drivers.
Back to top
View user's profile Send private message
ccpaging
n00b
n00b


Joined: 08 Oct 2015
Posts: 1

PostPosted: Thu Oct 08, 2015 9:46 am    Post subject: Reply with quote

p4plus2 wrote:
However, I spent the last three days modding the MT7612U drivers and finally have them working :D!


I got netgear A6210 which uses MT7612u and can not make it working in kernel 4.x.x.

There is a modify version which can be compiled.

https://github.com/ccpaging/MT7612U_DPO_LinuxSTA

But something is wrong:

https://github.com/ccpaging/MT7612U_DPO_LinuxSTA/issues/1

Help!

thanks
Back to top
View user's profile Send private message
emagdnim
n00b
n00b


Joined: 03 Sep 2015
Posts: 2

PostPosted: Sat Mar 05, 2016 12:14 pm    Post subject: Reply with quote

Update: there's is a working driver: https://github.com/jurobystricky/Netgear-A6210
Speed is good, but there's random short timeouts, but it's usable, I have used this driver daily for 2 months now. My speeds are 60-70Mbs down and 12Mbs up (My internet connection is 100/10 vdsl, and can get max 80Mbs down with wired)

Edit: oh, this was mentioned behind previous post's link :)
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum