好的,我知道这不会很简单,但我真的很想让它工作。
大约 18-24 个月前,我的 Asus EEE 901 上网本运行良好 - 运行 Ubuntu - 我让它按照更新管理器的建议进行“升级”。wi-fi 随后失败了——并且,在忙于其他事情的同时,摆弄并“软管”了操作系统的安装。上网本一直呆在柜子里,直到这个周末……当我使用 /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
Run Code Online (Sandbox Code Playgroud)
按照网上找到的一些建议,我通过在 /etc/modprobe.d/rt2800.conf 中输入以下内容将 rt2800pci 列入黑名单
blacklist rt2800pci
blacklist rt2800lib
Run Code Online (Sandbox Code Playgroud)
这给我留下了一个有效的安装 - 但没有 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
Run Code Online (Sandbox Code Playgroud)
如果我然后使用 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
Run Code Online (Sandbox Code Playgroud)
在网上多搜索一点建议,我需要使用 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)
Run Code Online (Sandbox Code Playgroud)
如果我返回到默认配置 - 没有列入黑名单,并运行“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
Run Code Online (Sandbox Code Playgroud)
从这里我没有看到任何明显的冲突 - 关于还有什么值得欢迎的建议。
更多信息...
我选择将螺丝刀带到我的 901 上,并取下 Wi-Fi 卡。在它的背面,有一个标签表明它根本不是 2800 系列,而是 RT2700E。也许,如果 Linux 错误地将其检测为 2800 系列,这就是我麻烦的根源?
从内核 3.0 开始,暂存驱动程序 rt2860sta 被主线驱动程序 rt2800pci 取代,并且暂存驱动程序被删除。
我的 901 很高兴使用该rt2800pci
驱动程序。确保没有启用其他驱动程序并与其冲突。