我买了一台带有 RTL8723AE-BT 无线网卡的新笔记本电脑,但似乎没有什么能使它工作。
Realtek 通常会为其卡提供驱动程序,但 Realtek 网站上没有此特定卡的驱动程序。我尝试了以下步骤以尝试使其正常工作:
安装了 ndiswrapper 版本 1.57(来自存储库,带有 dkms)和 1.58rc1(从 ndiswrapper 网站的源代码编译)。两个版本都失败了:版本 1.57 没有为函数 IoWMIOpenBlock 和 IoWMIQueryAllData 提供接口。1.58rc1 在其位置有虚拟函数,但它失败并显示“ioremap 失败”消息。
经过进一步调查,我发现 1.58rc1 中的函数 NdisMMapIOSpace (ndis.c:808) 被调用时物理地址和长度为零,这导致了失败。由于这个函数似乎没有在 ndiswrapper 的代码中的任何地方被调用,我猜想 Windows 驱动程序以某种方式使用伪造的参数来调用它。
我尝试使用 Windows XP 驱动程序的 64 位版本(在我安装的系统上,使用 x86_64 版本的 Ubuntu)和 32 位版本(在启用了持久性的 live-USB x86 系统上)。两个版本都出现了相同的错误。
由于 Realtek 的 RTL8192CE/SE/DE Linux 驱动程序实际上在其源代码中提到了 8723 芯片组,我尝试编译它们并对其进行 modprobing,但它们没有获取卡 ID (10ec:8723)。我还尝试
echo 10ec 8723 > new_id
在驱动程序的 sysfs (/sys/bus/pci/drivers/rtl8192de) 位置 (实际上,在每个位置上,一次一个) 上执行此操作,但即使使用 sudo,我也收到“权限被拒绝”错误。如果我sudo su
再试一次,我会收到错误bash: echo: write error: Invalid argument
。
我已经没有主意了。买了一台新笔记本,只能用 Ubuntu,却不能使用其 Wi-Fi 连接,这真是令人沮丧。
如果有人能提供替代方案,我将不胜感激。
编辑:lshw -C 网络输出
$ sudo lshw -C network -numeric
*-network UNCLAIMED
description: Network controller
product: Realtek Semiconductor Co., Ltd. [10EC:8723]
vendor: Realtek Semiconductor Co., Ltd. [10EC]
physical id: 0
bus info: pci@0000:03:00.0
version: 00
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress cap_list
configuration: latency=0
resources: ioport:d000(size=256) memory:f7900000-f7903fff
*-network
description: Ethernet interface
product: RTL8111/8168B PCI Express Gigabit Ethernet controller [10EC:8168]
vendor: Realtek Semiconductor Co., Ltd. [10EC]
physical id: 0.2
bus info: pci@0000:04:00.2
logical name: eth0
version: 0a
serial: 00:90:f5:cd:6d:f7
size: 100Mbit/s
capacity: 1Gbit/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 1000bt 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=full firmware=N/A ip=192.168.0.106 latency=0 link=yes multicast=yes port=MII speed=100Mbit/s
resources: irq:43 ioport:c000(size=256) memory:f2104000-f2104fff memory:f2100000-f2103fff
答案1
Realtek 正在非官方提供官方 Linux 驱动程序(通过 Dropbox)
Realtek 在 92 系列驱动程序版本 0006.0514.2012 中添加了对 RTL8273AE-BT 的支持。由于未知原因,其网站上尚未提供 Windows 和 Linux 驱动程序。但 Realtek 技术支持已提供 Dropbox 链接,其中包含源代码/固件压缩包,许多用户报告说该压缩包可以正常工作。
在哪里可以买到?安全吗?
- 驱动程序可以通过以下方式下载:这个 Dropbox 链接。
我可以确认这个文件确实如其所声称的那样,此内容列表,前提是它具有以下 MD5 或 SHA1 哈希值:(您可以使用
md5sum
或进行验证sha1sum
)MD5:fd10e9a347c6447f649324d6bdab53de SHA1:1ccd6ae73878d8bf65bd7c0384e333b121606230
如何在 Ubuntu 上构建和安装驱动程序?
- Ctrl使用+ Alt+打开终端T。
您需要先安装这些软件包来构建驱动程序:
sudo apt-get install build-essential linux-headers-generic linux-headers-`uname -r`
粘贴以下行即可一步下载并提取驱动程序档案:
wget -O- http://dl.dropbox.com/u/57056576/DRIVERS/REALTEK/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012.tar.gz | tar -xz
更改为提取的驱动程序目录,构建并安装驱动程序:
光盘rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012 制作 安装
通过加载来测试驱动程序(这是一个一次性步骤;重新启动一次后,驱动程序应在每次启动时自动加载):
sudo modprobe rtl8723e
答案2
注释掉/删除
IEEE80211_HW_BEACON_FILTER
(中的第 320 行base.c
)使得使用 3.4 内核时可以进行编译。到目前为止,我还没有遇到任何问题。该卡似乎可以像以前一样工作,尽管它的能效可能较低。我不能保证它不会引起任何问题,但总比没有好。
好吧,这里有一些新的反馈给你:我做了以上所有操作,但得到了相同的编译错误,并按照你的建议修复了它。然后驱动程序工作了一次。重启后,它再也无法打开任何无线连接。尝试启动 Windows 7,但仍然无法检测到任何无线连接。
我现在确信此过程已损坏了我的 wlan 适配器 - Windows 仍可识别该设备,但存在一些问题,因为它不再感应到任何无线连接。我必须使用外部 linksys 适配器,因为我的板载 realtek 已消失 :/
<<>> 请忽略上述评论,因为我写的时候很生气。
更新:我发现驱动程序不知怎么地将我的 WLAN 模块的“漫游灵敏度”设置为“低”,这导致它无法检测到任何无线信号。在 Windows 7 中,我进入设备管理器并将该设置更改为“高”,然后它又恢复了正常!呼……
无论如何,请注意,如果您在遵循互联网建议时不小心,这种事情可能会发生在您身上。我会再三考虑是否再次启动我的 ubuntu 分区...
答案3
我与 Realtek 的一位支持人员进行了交谈,并收到了 Dropbox 上托管的另一位用户就此问题提交的相同文件。我按照自述文件的指示编译了驱动程序,并且成功了,您可能需要将 8723* 固件文件复制到 rtlwifi 文件夹中。
但应该说,这个解决方案并不完美,我与 WEP AP 的连接相当不稳定。另外该驱动程序支持内核 3.3 及以上版本。
3.4 内核删除了 mac80211 模块中该驱动程序需要编译的一些调用,因此会因错误而退出,无法编译。目前这对于 ubuntu 来说不是问题,但这意味着您无法在最新的 Fedora 17 或任何其他使用 3.4+ 内核的发行版(包括即将推出的 Ubuntu 版本)上安装该驱动程序。
看http://article.gmane.org/gmane.linux.kernel.wireless.general/84114/match=ieee80211_hw_beacon_filter了解变更的信息。