Linux – Can Linux support a “Ralink corp. RT2800 802.11n PCI” (maybe a RT2860STA?) in an Asus EEE 901 netbook

linuxwifi

OK, I know that this isn't going to be straightforward, but I'd really like to get it working.

About 18-24 months ago, my Asus EEE 901 netbook was working fine – running Ubuntu – and I let it 'upgrade' as the update manager suggested. The wi-fi subsequently failed – and, while busy with other things, fiddled and 'hosed' the OS install. The netbook stayed in a cupboard until this weekend… when I overwrote the drives using /dev/zero – then installed a completely fresh copy of Linux Mint 12.

On the fresh install, I'm still having problems with the Wi-Fi, though everything else is fine.

With the default Linux Mint install, the first indication of a problem comes from this entry in /var/log/syslog

... [5.048933] rt2800pci 0000:01:00.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19
... [5.048980] rt2800pci 0000:01:00.0: setting latency timer to 64
... [5.062119] phy0 -> rt2800_init_eeprom: Error - Invalid RF chipset detected.
... [5.062134] phy0 -> rt2x00lib_probe_dev: Error failed to allocate device
... [...     ] rt2800pci 0000:01:00.0: PCI INT A disabled

Following some advice found online, I blacklisted rt2800pci by entering the following into /etc/modprobe.d/rt2800.conf

blacklist rt2800pci
blacklist rt2800lib

This left me with a working install – but no wi-fi support. I then set out to identify the correct driver. The relevant output from lshw is:

*-network UNCLAIMED
    description: Network controller
    product: RT2800 802.11n PCI
    vendor: Ralink corp
    physical id: 0
    bus info: pci@0000:01:00.0
    version: 00
    width: 32 bits
    clock: 33MHz
    capabilities: bus_master cap_list
    configuration: latency=0
    resources: memory:fbef0000-febfffff

If I then use lspci to investigate further with "lspci -vs 01:00.0"

01:00.0 Network controller: Ralink corp. RT2800 802.11n PCI
        Subsystem: Ralink corp. Device 2860
        Physical Slot: eeepc-wifi
        Flags: bus master, fast devsel, latency 0, IRQ 11
        Memory at febef0000 (32-bit, non-prefetchable) [size=64K]
        Kernel modules: rt2800pci

A little more searching online suggested that, rather than use the rt2800pci driver for a 2860 device, I needed to use the rt2860sta driver. I don't have one of those installed with the generic kernel.

I visited http://www.ralinktech.com/en/04_support/support.php?sn=501 – and downloaded "RT2860PCI/mPCI/CB/PCIe(RT2760/RT2790/RT2860/RT2890)" – and followed the instructions in README_STA.

When I used insmod to install the new driver, I got an ra0 device reported… and network-manager identified that the netbook had a wireless capability. Unfortunately, that's where things fell apart. None of the local infrastructure-mode access points were found by the network-manager… and when I tried to connect to one by explicitly giving its name… no connection was able to be established – and ifconfig gave some worrying output… The Mac address looked bogus 00:00:ff:ff:ff:ff – and thousands of 'overruns'.

So… The question: Does Linux still support the Ralink driver in my Asus EEE 901? If so, which is the correct driver to use – and how do I configure that driver?

Requests

Output of "lspci -n" (I've no idea what might be useful in this…)

00:00.0 0600: 8086:27ac (rev 03)
00:02.0 0300: 8086:27ae (rev 03)
00:02.1 0380: 8086:27a6 (rev 03)
00:1b.0 0403: 8086:27d8 (rev 02)
00:1c.0 0604: 8086:27d0 (rev 02)
00:1c.1 0604: 8086:27d2 (rev 02)
00:1c.2 0604: 8086:27d4 (rev 02)
00:1c.3 0604: 8086:27d6 (rev 02)
00:1d.0 0c03: 8086:27c8 (rev 02)
00:1d.1 0c03: 8086:27c9 (rev 02)
00:1d.2 0c03: 8086:27ca (rev 02)
00:1d.3 0c03: 8086:27cb (rev 02)
00:1d.7 0c03: 8086:27cc (rev 02)
00:1e.0 0604: 8086:2448 (rev e2)
00:1f.0 0601: 8086:27b9 (rev 02)
00:1f.2 0101: 8086:27c4 (rev 02)
00:1f.3 0c05: 8086:27da (rev 02)
01:00.0 0280: 1814:0601
04:00.0 0200: 1969:1026 (rev b0)

If I return to the default configuration – with nothing blacklisted, and run "lsmod | grep rt", I get this:

parport_pc             32114  0 
rt2800pci              18340  0 
rt2800lib              48717  1 rt2800pci
crc_ccitt              12595  1 rt2800lib
rt2x00pci              14202  1 rt2800pci
rt2x00lib              48114  3 rt2800pci,rt2800lib,rt2x00pci
mac80211              272785  3 rt2800lib,rt2x00pci,rt2x00lib
cfg80211              172392  2 rt2x00lib,mac80211
eeprom_93cx6           12653  1 rt2800pci
parport                40930  3 parport_pc,ppdev,lp

From this I don't see any obvious conflicts – advice as to what else to look for welcome.

Even more info…

I've opted to take a screwdriver to my 901, and removed the Wi-Fi card. On the back of it, there's a label that suggests it's not a 2800 series at all – but, rather, it's an RT2700E. Perhaps, if Linux is wrongly detecting it as being a 2800 series, that's the root of my troubles?

Picture of front of card
Picture of back of card

Best Answer

From Kernel 3.0 the staging driver rt2860sta is replaced by mainline driver rt2800pci, and the staging drivers are deleted.

My 901 happily uses the rt2800pci driver. Make sure that no other drivers are enabled and conflicting with it.

Related Question