Anti Veeranna

The pain, the pleasure ..

Getting RT3370 USB Wifi adapter to work in Linux

with one comment

They look like this one on the picture, nice and small. Available form Ebay. USB id is 0x148F,0×3370. It is not really supported by any of the drivers included with the latest kernel (2.6.34) and the official Ralink drivers available from their site do not support it either. This specific device id is not even in the source, and I did not manage to get it fully working after adding the id either.

Thankfully there are Windows drivers for this chipset and there is also ndiswrapper which allows Windows network drivers to be used in other operating systems, like Linux.

Sadly the windows drivers are distributed as one single Installshield .exe installer. I have no Windows machines in my home and none of the tools I had available (cabextract, etc) could not deal with this file. Finally managed to get the drivers (2780.sys and 2780.inf for WinXP) out of the installer with a help of a friend, who had a Windows machine.

First attempt to load this driver with ndiswrapper ended with the following error message in syslog:

ndiswrapper (import:242): unknown symbol: ntoskrnl.exe:'MmGetSystemRoutineAddress'

Then, I thankfully found this piece of information from Dirk Schwendemann, which I will reproduce here:

the ralink driver 1.4.0.0 (09/25/2008) for a rt2870 usb stick complains about a missing symbol MmGetSystemRoutineAddress.

I’ve just added an empty stub:

wstdcall void* WIN_FUNC(MmGetSystemRoutineAddress,1)
(struct unicode_string *name)
{
struct ansi_string ansi;
if (RtlUnicodeStringToAnsiString(&ansi, name, TRUE) == STATUS_SUCCESS) {
WARNING("MmGetSystemRoutineAddress: %s", ansi.buf);
RtlFreeAnsiString(&ansi);
}

return 0;
}

So I got the latest ndiswrapper (1.56), doublechecked the source, did not find this stub, added it to ntoskrnl.c somewhere after the other Mm* stubs, recompiled ndiswrapper, installed it and lo and behold .. my USB stick is now working.

Thanks Dirk ;)

Advertisement

Written by Anti Veeranna

2010/10/03 at 16:19

Posted in Pain

One Response

Subscribe to comments with RSS.

  1. There is now also a working staging driver for this device. Have a look at http://ubuntuforums.org/showthread.php?t=1748136

    Winnie

    2011/06/16 at 11:42


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.