Linux 能否支持 Asus EEE 901 上网本中的“Ralink corp. RT2800 802.11n PCI”(也许是 RT2860STA?)

Linux 能否支持 Asus EEE 901 上网本中的“Ralink corp. RT2800 802.11n PCI”(也许是 RT2860STA?)

好吧,我知道这不会很简单,但我真的很想让它发挥作用。

大约 18-24 个月前,我的华硕 EEE 901 上网本工作正常 - 运行 Ubuntu - 我按照更新管理器的建议让它“升级”。无线网络随后失败了——并且在忙于其他事情的同时,摆弄并“软管”了操作系统的安装。上网本一直放在柜子里,直到这个周末......当我使用 /dev/zero 覆盖驱动器时 - 然后安装了 Linux Mint 12 的全新副本。

在全新安装时,我仍然遇到 Wi-Fi 问题,但其他一切都很好。

在默认的 Linux Mint 安装中,问题的第一个迹象来自 /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

根据网上找到的一些建议,我通过在 /etc/modprobe.d/rt2800.conf 中输入以下内容将 rt2800pci 列入黑名单

blacklist rt2800pci
blacklist rt2800lib

这让我可以正常安装 - 但没有 Wi-Fi 支持。然后我开始寻找正确的驱动程序。 lshw 的相关输出是:

*-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

如果我然后使用 lspci 进一步调查“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

在线搜索表明,我需要使用 rt2860sta 驱动程序,而不是对 2860 设备使用 rt2800pci 驱动程序。我没有与通用内核一起安装其中之一。

我参观过http://www.ralinktech.com/en/04_support/support.php?sn=501- 并下载“RT2860PCI/mPCI/CB/PCIe(RT2760/RT2790/RT2860/RT2890)” - 并按照 README_STA 中的说明进行操作。

当我使用 insmod 安装新驱动程序时,我报告了 ra0 设备...并且网络管理器识别出上网本具有无线功能。不幸的是,这就是事情崩溃的地方。网络管理器没有找到任何本地基础设施模式接入点...当我尝试通过明确给出其名称来连接到一个接入点时...无法建立连接 - 并且 ifconfig 给出了一些令人担忧的输出。 .. Mac 地址看起来是假的 00:00:ff:ff:ff:ff - 以及数千个“溢出”。

那么...问题:Linux 是否仍然支持我的 Asus EEE 901 中的 Ralink 驱动程序?如果是这样,哪个是正确的驱动程序 - 以及如何配置该驱动程序?

要求

“lspci -n”的输出(我不知道这有什么用......)

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)

如果我返回到默认配置 - 没有任何内容被列入黑名单,并运行“lsmod | grep rt”,我会得到以下结果:

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

从这里我没有看到任何明显的冲突 - 关于还有什么值得欢迎的建议。

更多信息...

我选择用螺丝刀拆开我的 901,并取下 Wi-Fi 卡。在它的背面,有一个标签表明它根本不是 2800 系列,而是 RT2700E。也许,如果 Linux 错误地将其检测为 2800 系列,这就是我的麻烦的根源?

卡正面图片 卡片背面图片

答案1

从内核3.0开始临时驱动程序 rt2860sta 被主线驱动程序 rt2800pci 取代,并且临时驱动程序被删除

我的 901 很高兴使用该rt2800pci驱动程序。确保没有启用其他驱动程序并与其冲突。

答案2

我将转录我找到的解决方案,看看是否有帮助(http://www.linuxformat.com/forums/viewtopic.php?p=87981

下载 RT2860PCI/mPCI/CB/PCIe(RT2760/RT2790/RT2860/RT2890) 驱动程序http://www.ralinktech.com/en/04_support/support.php?sn=501到您的主文件夹:

2010_07_16_RT2860_Linux_STA_v2.4.0.0.tar.bz2

启动终端并安装build-essentiallinux-headers包(如果您还没有安装):

sudo apt-get install build-essential linux-headers-generic

现在,在您的主文件夹中解压 Ralink 软件包:

tar -xvjf 2010_07_16_RT2860_Linux_STA_v2.4.0.0.tar.bz2

2010_07_16_RT2860_Linux_STA_v2.4.0.0现在,您的主目录中应该有一个名为的文件夹。

编辑2010_07_16_RT2860_Linux_STA_v2.4.0.0/os/linux/config.mk文件以允许网络管理员管理该卡:

gedit ~/2010_07_16_RT2860_Linux_STA_v2.4.0.0/os/linux/config.mk

找到这些行:

# Support Wpa_Supplicant 
HAS_WPA_SUPPLICANT=n 

# Support Native WpaSupplicant for Network Maganger 
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n

并将两行中的“n”更改为“y”,这样它们现在显示为:

# Support Wpa_Supplicant 
HAS_WPA_SUPPLICANT=y 

# Support Native WpaSupplicant for Network Maganger 
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y

并保存文件。

现在进入该2010_07_16_RT2860_Linux_STA_v2.4.0.0目录,以root身份编译并安装驱动程序:

cd ~/2010_07_16_RT2860_Linux_STA_v2.4.0.0
sudo su 
make && make install

这里重要的是不要单独使用“sudo”,而是使用“sudo su”,因为由于某种原因使用 sudo 安装脚本无法创建必要的文件和文件夹。

现在,仍然是 root modprobe 驱动程序模块:

modprobe rt2800sta

花点时间创建 ra0 设备节点,网络管理器现在应该能够显示您所在区域内所有可见的无线网络,同时您可以停止 root。

exit

确保 ra0 已启动并按预期运行:

iwconfig

希望您的无线卡现在可以工作...使用网络管理器设置您的 WEP/WPA(2) 密钥,并连接到您的网络。

为了确保模块在重新启动后加载,请将其添加到 /etc/modules 文件中:

sudo echo rt2800sta >> /etc/modules

相关内容