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

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

我刚刚在 ASUS X401U 上安装了 Ubuntu 12.10,安装后没有无线连接列表。在 HP 上安装时没有遇到这个问题。我该怎么做才能启用 Wifi?

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

答案1

有几本指南也谈到了同样的方式。例如此来源此来源或者错误报告提及一些使该无线网卡在几种类型的笔记本电脑上运行的程序。

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

我将提到几种方法,所有这些方法都涉及下载驱动程序、编译驱动程序并确保其正常工作。据悉,在 3.9 内核版本中,无线网卡工作正常,因此在 13.04 和反向移植版本或 13.10 中,这个问题应该可以解决。

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

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

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

  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“exit 0”行上方,这样它就会自动启动界面。

官方网站指南

  1. 前往联发科并下载适用于 Linux 的 Ralink RT3290 驱动程序联发科在移动下载链接方面做得很好,没有重定向。以下是所有新链接可下载固件但你猜怎么着,他们从中移除了 RT3290。加油联发科 ;)

    感谢其他遇到此问题并分享了其资源的人,这里列出了所有可用的下载链接,供您在联发科决定帮助 Linux 并开放时使用:

  2. 将文件重命名为,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/并编辑文件配置文件

  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万一n。在我的情况下,它有但应检查以确保两个 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 目录并按照上述说明进行操作。

答案2

对于那些按照上述步骤操作后仍无法使用 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-*

相关内容