如何使Ralink RT3290无线网卡正常工作?

我刚刚在华硕X401U上安装了Ubuntu 12.10,安装后没有无线连接列表。 我没有在HP上安装这个问题。 我能做些什么来启用Wifi?

07:00.0 Network controller [0280]: Ralink corp. Device [1814:3290] 

有几个指南以同样的方式说。 像这个来源 , 这个来源或错误报告的指南提到了一些程序,以使这个无线卡在几种类型的笔记本电脑上工作。

有些案例提到降级到12.04,然后为它安装特定的3.6内核版本,其他人提到升级到13.04并安装3.9内核版本。 甚至另一种情况是,它提到用户从官方网站下载驱动程序,并逐步指导如何安装它。

我将提到几种方法,所有这些都涉及下载驱动程序,编译它并确保它的工作原理。 已经注意到在3.9内核版本中,无线网卡正常工作,因此在13.04中使用backports或13.10这个问题应该得到解决。

因此,有几种方法可以使您的Ralink RT3290无线网卡在12.04及更高版本中运行(并非所有方法都能正常工作,因此请尝试寻找最适合您计算机的方法):

由于您的供应商ID为1814:3290,这意味着您有一个Ralink RT3290无线网卡。 对于那种情况我们(连接有线电缆后):

  1. 在执行以下步骤时,将有线电缆连接连接到计算机以暂时连接Internet。

  2. 打开终端并执行以下行以安装编译自己的无线驱动程序所需的一切:

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

现在,根据您希望如何进行,请按照以下指南之一进行操作:

内核4.X的非官方驱动程序

如果以上内容在Kernels 4.X上不起作用,那么我能够按照此源测试的解决方案是

请从此处或此处下载更新的驱动程序( 非常感谢Jim Colaco )。 这是在Ubuntu 16.04和16.10上测试的。

 sudo tar -xvf rt3290sta-2.6.0.0.dkms.tar -C /usr/src sudo dkms install -m rt3290sta -v 2.6.0.0 --force sudo reboot 

现在在某些情况下,您需要启用无线驱动程序的接口(因为它不会自动启动接口),然后重新启动网络服务。 像这样的东西:

 sudo ifconfig WIRELESSCARD up sudo service network-manager restart 

所以一个例子是:

 sudo ifconfig eno1 up sudo service network-manager restart 

我建议在/etc/rc.local将这2行放在“exit 0”行之上,这样它就会自动启动界面。

官方网站指南

  1. 转到Mediatek并下载用于Linux的Ralink RT3290驱动程序 MediaTek在移动链接下载并没有重定向方面做得很好。 这是所有可下载固件的新链接,但猜猜是什么,他们从中删除了RT3290。 去联发科;)

    感谢其他人也遇到了问题并分享了他们的消息来源,这里列出了所有可用的下载链接供您在Mediatek决定帮助Linux并开放时使用:

  2. 将文件重命名为2012_0508_RT3290_Linux_STA_v2.6.0.0.tar.bz2因为2012_0508_RT3290_Linux_STA_v2.6.0.0.tar.bz2在确保文件正常工作方面做得很好。

  3. 解压缩文件,它应该创建一个名为DPO_RT3290_LinuxSTA_V2600_20120508的文件夹

  4. 转到DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/并编辑文件config.mk

  5. 在第31行,您应该找到变量HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n 。 将其更改为

     HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y 

    并保存文件。

  6. 转到主提取文件夹(它应该是DPO_RT3290_LinuxSTA_V2600_20120508文件夹)并键入:

     make sudo make install 
  7. 如果编译正确,请执行以下操作:

     modprobe rt3290sta 
  8. 如果第7步运行没有任何问题,我们将模块添加到每次启动时加载的模块列表中:

     sudo -H gedit /etc/modules 

    并在文件末尾添加一行rt3290sta 。 保存并退出。

DROPBOX指南

(不推荐,因为您从Dropbox帐户下载了不受信任的tarball。

  1. 下载源驱动程序:

     wget http://dl.dropbox.com/u/11876059/DPO_RT3290_LinuxSTA_V2600_20120508.tar.gz 

    然后我们解压缩文件

     tar -xvf DPO_RT3290_LinuxSTA_V2600_20120508.tar.gz 
  2. 进入新创建的文件夹:

     cd ~/DPO_RT3290_LinuxSTA_V2600_20120508 

    然后我们开始编译过程

     make sudo make install 
  3. 然后,我们测试以查看驱动程序是否已正确编译和安装

     sudo modprobe rt3290sta 
  4. 如果第3步运行没有任何问题,我们将模块添加到每次启动时加载的模块列表中:

     sudo -H gedit /etc/modules 

    并在底部添加一行说rt3290sta 。 保存并退出。

额外指南

一些用户提到了其他步骤。 这可能适用于您,也可能不适用于您 如果您觉得系统无法正常工作,可能下面的一点可以帮助您:

  • 打开config.mk文件时,不仅HAS_NATIVE_WPA_SUPPLICANT更改为y值,还要使用HAS_WPA_SUPPLICANT将其HAS_WPA_SUPPLICANTn 。 在我的情况下,它有y,但应检查以确保WPA_SUPPLICANT都设置为`y。

  • 将冲突的无线驱动程序列入黑名单。 请执行下列操作:

     sudo -H gedit /etc/modprobe.d/blacklist.conf 

    添加以下行(确保它们首先不存在):

     #Wireless drivers conflicting with rt3562sta blacklist rt2800pci blacklist rt2x00pci 
  • 更新initramfs: sudo update-initramfs -u

  • 如果您在Ubuntu 13.04或Ubuntu 13.10(以及可能还有更高版本)上编译驱动程序时遇到问题,那么这可能是因为Linux内核的更改导致与驱动程序代码不兼容。 这可以通过打开来修复

     gedit os/linux/pci_main_dev.c 

    并在顶部附近的“#include”之后添加以下内容

     #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0) #define __devexit #define __devinit #define __devinitdata #endif 

    然后改变文件的部分说

     #if LINUX_VERSION_CODE >= 0x20412 remove: __devexit_p(rt2860_remove_one), #else remove: __devexit(rt2860_remove_one), #endif 

     #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0) remove: rt2860_remove_one, #else #if LINUX_VERSION_CODE >= 0x20412 remove: __devexit_p(rt2860_remove_one), #else remove: __devexit(rt2860_remove_one), #endif #endif 

这有望解决编译器错误。 返回DPO_RT3290_LinuxSTA_V2600_20120508目录并按照上述说明操作。

对于那些即使遵循上述步骤(包括我)也无法使用WiFi的人,这是一个简单且非常受欢迎的修复方法。

问题是内核在支持驱动程序方面存在问题,幸运的是,最新的稳定内核版本修复了该错误,并且WiFi可以使用默认驱动程序。

下载32位内核包

 wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.12-saucy/linux-headers-3.12.0-031200-generic_3.12.0-031200.201311031935_i386.deb wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.12-saucy/linux-headers-3.12.0-031200_3.12.0-031200.201311031935_all.deb wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.12-saucy/linux-image-3.12.0-031200-generic_3.12.0-031200.201311031935_i386.deb 

下载64位内核包

 wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.12-saucy/linux-headers-3.12.0-031200-generic_3.12.0-031200.201311031935_amd64.deb wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.12-saucy/linux-headers-3.12.0-031200_3.12.0-031200.201311031935_all.deb wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.12-saucy/linux-image-3.12.0-031200-generic_3.12.0-031200.201311031935_amd64.deb 

安装包

 sudo dpkg -i linux-headers-3.12.0-*.deb linux-image-3.12.0-*.deb sudo update-grub sudo reboot 

这应该做到这一点。

如果你想删除内核

 sudo apt-get purge linux-image-3.12.0-* linux-headers-3.12.0-*