![更新](https://linux22.com/image/835851/%E6%9B%B4%E6%96%B0.png)
首先,我只想说,我是一名 IT 工程师(Windows 桌面/服务器等),因此在进行高级技术故障排除时,我愿意深入研究。但不幸的是,我是 Linux 新手,所以请同时保持礼貌。
问题:
自从将我的 HP Pavilion G6 笔记本电脑从 Ubuntu 12.10 升级到 13.04 后,我的无线功能就无法正常工作。主要的问题是,如果我坐在楼上,无线信号会下降到大约“2”格,下载速度(根据 speedtest.net)非常慢(0.26Mbps)。但是,如果我坐在楼下路由器前面,我就可以满的信号和speedtest.net显示连接速度很快(大约40Mbps)。
这才不是发生在 Ubuntu 12.10 上。无论在楼上还是楼下,我都能收到很强的信号,速度测试结果高达 40Mbps。
如果需要证据,我可以提供结果的截图。
当然,这个问题导致了我的第二个问题。Wifi 连接会定期随机请求输入 Wifi 密码(显然密码是正确的,因为所有其他设备连接正常,它只是用这个密码工作)。如果我尝试单击“确定”以接受输入的密码,它会重新尝试连接几分钟,然后再次请求密码。这将陷入持续的循环,直到我重新启动笔记本电脑。
我尝试过/研究过的:
因此,从大量的谷歌搜索、askubuntu 问题、wifi 故障排除指南、硬件类型的知识库等等来看,该问题似乎与部署 Ubuntu 时开源驱动程序内置的无线驱动程序的更新版本有关。
切中要点:
在 12.10 和 13.04 上运行以下命令将显示以下结果:
Ubuntu 12.10
root@chris-test:~# lshw -C network
*-network
description: Wireless interface
product: Ralink corp.
vendor: Ralink corp.
physical id: 0
bus info: pci@0000:01:00.0
logical name: wlan0
version: 00
serial: 68:94:23:0d:0e:db
width: 32 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=rt2800pci driverversion=3.5.0-22-generic firmware=0.34 ip=192.168.15.225 latency=0 link=yes multicast=yes wireless=IEEE 802.11bgn
resources: irq:16 memory:52500000-5250ffff
*-network
description: Ethernet interface
product: RTL8101E/RTL8102E PCI Express Fast Ethernet controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:02:00.0
logical name: eth0
version: 05
serial: 28:92:4a:56:90:7e
size: 10Mbit/s
capacity: 100Mbit/s
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=half firmware=rtl_nic/rtl8105e-1.fw latency=0 link=no multicast=yes port=MII speed=10Mbit/s
resources: irq:42 ioport:3000(size=256) memory:52404000-52404fff memory:52400000-52403fff
root@chris-test:~# lspci -nnk | grep -iA2 net
01:00.0 Network controller [0280]: Ralink corp. Device [1814:539b]
Subsystem: Hewlett-Packard Company Device [103c:18ed]
Kernel driver in use: rt2800pci
--
02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller [10ec:8136] (rev 05)
Subsystem: Hewlett-Packard Company Device [103c:183f]
Kernel driver in use: r8169
Ubuntu 13.04
root@chris-laptop:~# lshw -C network
*-network
description: Wireless interface
product: Ralink corp.
vendor: Ralink corp.
physical id: 0
bus info: pci@0000:01:00.0
logical name: wlan0
version: 00
serial: 68:94:23:0d:0e:db
width: 32 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=rt2800pci driverversion=3.8.0-19-generic firmware=0.34 ip=192.168.15.225 latency=0 link=yes multicast=yes wireless=IEEE 802.11bgn
resources: irq:16 memory:52500000-5250ffff
*-network
description: Ethernet interface
product: RTL8101E/RTL8102E PCI Express Fast Ethernet controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:02:00.0
logical name: eth0
version: 05
serial: 28:92:4a:56:90:7e
size: 10Mbit/s
capacity: 100Mbit/s
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=half firmware=rtl_nic/rtl8105e-1.fw latency=0 link=no multicast=yes port=MII speed=10Mbit/s
resources: irq:43 ioport:3000(size=256) memory:52404000-52404fff memory:52400000-52403fff
root@chris-laptop:~# lspci -nnk | grep -iA2 net
01:00.0 Network controller [0280]: Ralink corp. Device [1814:539b]
Subsystem: Hewlett-Packard Company Device [103c:18ed]
Kernel driver in use: rt2800pci
02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller [10ec:8136] (rev 05)
Subsystem: Hewlett-Packard Company Device [103c:183f]
Kernel driver in use: r8169
所以从我所看到的,这里唯一的主要区别是两个发行版上的“驱动程序版本”。
Ubuntu 12.10:
configuration: broadcast=yes driver=rt2800pci driverversion=3.5.0-22-generic firmware=0.34 ip=192.168.15.225 latency=0 link=yes multicast=yes wireless=IEEE 802.11bgn
驱动程序版本=3.5.0.22-通用
Ubuntu 13.04:
configuration: broadcast=yes driver=rt2800pci driverversion=3.8.0-19-generic firmware=0.34 ip=192.168.15.225 latency=0 link=yes multicast=yes wireless=IEEE 802.11bgn
驱动程序版本=3.8.0.19-generic
我只能想象新版本中发生了一些变化,这实际上导致了我的无线网卡出现问题。
所以我认为我可能需要做的是将这个驱动程序推到较旧版本?有人能确认这是一个可能的修复吗?有人能告诉我我完全搞错了吗?
我希望这些信息足以帮助到某些人。如果需要任何进一步的信息,如前所述,我非常乐意运行进一步的命令和测试来尝试隔离问题。
PS:提前感谢您的时间和考虑。
更新
所以我昨晚度过了非常有趣的时刻!
按下按钮时,我的 DVD 驱动器无法打开托盘,并且无法再读取 DVD。
我将主电源连接到笔记本电脑,然后我的 DVD 驱动器又开始工作了。
保持电源连接,我尝试在 WiFi 上运行速度测试。(40Mbps - 大约是我的线路的全部能力)。
但是,我已经在 12.10 上试过电池,没有任何问题。
我的假设
从发现这一点,我只能假设 13.04 不正确支持我的电池/电源设置?
另一种可能性是电池本身有故障,但是当我从 HP UEFI 运行电池测试时,它似乎没有显示任何错误。
有什么想法吗?
更新 19/09/13
因此,在此之后,我尝试将 13.04 分区内核更新到 3.9 而不是 3.8,根据一些错误跟踪器的说法,这已经为某些人解决了这个问题。
不幸的是,这不是帮我解决了这个问题。这让我觉得这些驱动程序很可能存在内核问题。
还有其他想法吗?
答案1
我建议你尝试两件事:
echo "options rt2800pci nohwcrypt=1" | sudo tee /etc/modprobe.d/rt2800pci.conf
sudo modprobe -rfv rt2800pci
sudo modprobe -v rt2800pci
我认为电源管理是主要问题,请执行以下操作:
gksudo gedit /etc/pm/power.d/wireless
(这将创建或编辑一个配置文件,以覆盖默认的电源管理行为)并输入以下内容:
#!/bin/sh
/sbin/iwconfig wlan0 power off
高于 exit0,然后保存 gedit,关闭并重新启动。
谢谢
答案2
不幸的是,我没有找到解决办法。这些驱动程序版本实际上是内核版本。驱动程序模块是作为内核本身的一部分提供的,因此降级并不容易。
ls /lib/modules/`uname -r`/kernel/drivers/net/wireless/
对我来说,我之前放弃了基于 ralink 的 wifi 卡,因为各种 Linux 发行版都存在类似的问题,不过,也许值得尝试一下建议的解决方案这里Hadaka 禁用了驱动程序的 hwcrypt(尽管是 12.04):
答案3
因此,通过大量研究和耐心,我成功地使用 RT5390sta 驱动程序解决了 HP Pavilion G6 上的这个问题。现在,我可以从光纤线路上获得完整的 40Mbps 下行速度(略低于)和大约 10Mbps 的上行速度(无论如何从未高过)。
我为解决问题做了什么
首先,我看到很多人建议将他们的内核升级到 3.9,但不幸的是这对我来说不起作用。
在花费大量时间尝试解决这个问题之后,内核 3.11.1(稳定版)已经发布,我按照以下链接的说明安装了它:
使用 wget 检索 .deb 文件
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.11.1-saucy/linux-headers-3.11.1-031101-generic_3.11.1-031101.201309141102_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.11.1-saucy/linux-headers-3.11.1-031101_3.11.1-031101.201309141102_all.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.11.1-saucy/linux-image-3.11.1-031101-generic_3.11.1-031101.201309141102_amd64.deb
然后使用 dpkg -i 安装这些 .deb 文件
sudo dpkg -i linux-headers-3.11.1*.deb linux-image-3.11.1*.deb
更新 grub (如果需要):
update-grub
重启后检查内核:
uname -a
安装此内核后,我关注了以下错误跟踪网站上的一篇文章(#14):
https://bugs.launchpad.net/ubuntu/+bug/1173759
- 下载驱动程序http://www.mediatek.com/_en/07_downloads/01-1_windowsDetail.php?sn=5001
tar -xvf /home/ukbeast/USERNAME/Downloads/2011_1007_RT5390_RT5392_Linux_STA_V2.5.0.3_DPO_v2. bz2.bz2
cd 2011_1007_RT5390_RT5392_Linux_STA_V2.5.0.3_DPO
- 下载补丁http://gridlox.net/diff/rt5592sta_fix_64bit_3.8.patch到上面的目录
patch -p1 <rt5592sta_fix_64bit_3.8.patch
(如果要求目录则指向 pci_main_dev.c)- 确保 /os/linux/config.mk 读取 HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
make
sudo make install
modprobe rt5390sta
经过所有这些,我的网速测试恢复到了预期水平。这可能是驱动程序和补丁的问题,也可能是内核 3.11.1 的问题,但无论如何,这些步骤成功解决了我的问题。
答案4
我认为这对你有帮助。我喜欢使用 WICD,因为它是一个简单易用的网络管理器。它是 Ubuntu 中网络管理器的一个非常好的替代品,当网络管理器不起作用时,它似乎总是能工作。要安装它,只需打开终端。现在下载最新的 NetworkManager,以防 WICD 不起作用时你需要重新安装它 sudo apt-get install -d --reinstall network-manager network-manager-gnome
然后安装它 sudo apt-get install wicd-gtk
现在您需要卸载 NetworkManager:sudo apt-get remove --purge network-manager-gnome network-manager
现在您可以在菜单中找到 WICD 启动 WICD,找到要使用的网络并输入所需信息、密码、加密等,然后选择自动连接到此网络。一切就绪!
WICD 可能也可以在 Ubuntu 更新管理器中使用,因此您可以先在那里查看,但重要的是完全卸载网络管理器以防止冲突!