RT539x PCIe 驱动程序中的一些错误

RT539x PCIe 驱动程序中的一些错误

我有一台 HP650 笔记本电脑,配有 Wi-Fi 芯片 RT539a。我使用的是 Ubuntu 12.04 操作系统,但 Wi-Fi 无法在此操作系统上运行。Ubuntu 论坛为我提供了一些解决这些问题的提示。它们如下:

  • 从 Ralink 下载 Linux 驱动程序 (RT5390PCIe)。

  • 解压。文件将被解压到 2010_1216_RT5390_LinuxSTA_V2.4.0.4_WiFiBTCombo_DPO 文件夹。

  • 假设您有 32 位系统,请从 opensuse 网站下载除 x64_86 补丁之外的所有补丁。

  • 将补丁复制到文件夹 - 2010_1216_RT5390_LinuxSTA_V2.4.0.4_WiFiBTCombo_DPO
    转到文件夹。

  • 在 /os/linux/config.mk 文件中进行以下更改 - HAS_ANTENNA_DIVERSITY_SUPPORT=y(最初为 n)

    sudo su
    cp RT2860STA.dat RT5390STA.dat
    mkdir -p /etc/Wireless/RT5390STA
    cp RT5390STA.dat /etc/Wireless/RT5390STA
    make clean
    make <- i have problems
    make install
    modprobe rt5390sta
    exit

但是当我运行“make”时,出现了编译器错误:

/home/hp650/rt/os/linux/../../common/cmm_asic.c: In function
‘AsicGetAutoAgcOffsetForTemperatureSensor’:
/home/hp650/rt/os/linux/../../common/cmm_asic.c:1233:28: warning:
assignment discards ‘const’ qualifier from pointer target type
[enabled by default]
/home/hp650/rt/os/linux/../../common/cmm_asic.c:1246:28: warning:
assignment discards ‘const’ qualifier from pointer target type
[enabled by default]
  CC [M]  /home/hp650/rt/os/linux/../../common/cmm_cmd.o
  CC [M]  /home/hp650/rt/os/linux/../../chips/rtmp_chip.o
/home/hp650/rt/os/linux/../../chips/rtmp_chip.c: In function
‘HWAntennaDiversityEnable’:
/home/hp650/rt/os/linux/../../chips/rtmp_chip.c:2010:2: error: ‘regs’
undeclared (first use in this function)
/home/hp650/rt/os/linux/../../chips/rtmp_chip.c:2010:2: note: each
undeclared identifier is reported only once for each function it
appears in
make[2]: *** [/home/hp650/rt/os/linux/../../chips/rtmp_chip.o] Error 1
make[1]: *** [_module_/home/hp650/rt/os/linux] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.2.0-29-generic-pae'
make: *** [LINUX] Error 2

有人可以在这件事上帮助我吗?

答案1

我认为使用较新版本的 RT5390 你会更幸运:https://dl.dropbox.com/u/58267392/2011_1007_RT5390_RT5392_Linux_STA_V2.5.0.3_DPO.zip

答案2

我有一台预装了 SUSE Linux Enterprise Novell 的 HP650。

这台笔记本电脑上的无线网卡是 Ralink 539a。内核加载的此 wlan 卡的驱动程序/模块是rt2800pci。当然,问题是默认情况下它们不起作用,或者即使它们起作用,也不稳定且几乎无法使用。

在阅读了许多线程并按照许多不同的线路进行构建后,结果 2011_1007_RT5390_RT5392_Linux_STA_V2.5.0.3_DPO从未成功,构建失败并make返回错误,因为天线被更改为 y 表示是,或者wlan0如果天线开关保持 n 表示关闭,则驱动程序不会启动接口。

后来我找到了专门针对Ralink 539a的错误报告和交流,最终找到了问题的解决方案:

  1. 从以下位置下载最新的 Compat-Wireless 驱动程序linuxwireless.org
  2. 解压到目录
  3. cd到目录
  4. sudo make
  5. sudo make install
  6. 重启电脑
  7. 使用无线开/关按钮确保无线网卡灯/LED 亮起....

这对我来说是有效的。

我还读到的一条注释是每次更新内核或驱动程序时旧的 rt2800pci 驱动程序/模块被解压,因此无线再次无法工作。因此,需要执行相同的程序makemake install使用compat.wireless可以工作的驱动程序进行覆盖。

答案3

如果有人在更高版本的 Ubuntu 和内核版本 3.8 及更高版本中遇到同样的问题,我之前对此做了一个简单的修复。我在 Ubuntu 14.04 上进行了测试:

该软件包包含驱动程序、补丁以及每次内核升级后安装和重新编译驱动程序的完整说明。

https://github.com/agerwick/RT28XX-RT539X-Linux-driver

相关内容