无线网卡Realtek RTL8723AE-BT未被识别。

我买了一台带有RTL8723AE-BT无线网卡的新笔记本电脑,但似乎没有任何方法可以让它工作。
通常,Realtek会在其网站上提供该型号的驱动程序,但这个特定型号的无线网卡并没有可用的驱动程序。为了尝试让它工作,我已经尝试了以下步骤:
安装了ndiswrapper的1.57版本(来自存储库,并使用dkms)和1.58rc1版本(从ndiswrapper官网编译而来)。但是两个版本都失败了:1.57版本没有提供IoWMIOpenBlock和IoWMIQueryAllData函数的接口。1.58rc1版本替代这两个函数,但是却出现“ioremap failed”错误。
进一步调查后,发现在1.58rc1版本的ndis.c文件中,函数NdisMMapIOSpace(行808),被传入物理地址和长度为零的参数,导致了失败。由于在ndiswrapper的任何代码中似乎都没有调用这个函数,我猜测可能是Windows驱动程序以虚假的参数调用了该函数。
我尝试在已安装的系统上使用64位版本(该系统使用x86_64版的Ubuntu)和32位版本(启用了持久化的x86现场USB系统)的Windows XP驱动程序。两个版本都出现了相同的错误。
由于Realtek的RTL8192CE/SE/DE Linux驱动程序实际上在其源代码中提到了8723芯片组,所以我尝试编译并加载它们,但它们无法识别卡片ID(10ec:8723)。我还尝试在/sys/bus/pci/drivers/rtl8192de位置(实际上是每个驱动程序的位置,一个接一个地执行)上使用命令“echo 10ec 8723 > new_id”,但即使使用sudo也会出现“Permission denied”错误。如果我尝试使用“sudo su”再次执行该命令,将会出现“bash: echo: write error: Invalid argument”错误。

我已经没有了主意。买了一台新笔记本电脑,只用Ubuntu却无法使用Wi-Fi连接,真是令人沮丧。

如果有人能给出其他选择的建议,我将非常感激。

编辑:lshw -C network 输出

$ 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

笔记本电脑的制造商/型号是什么?请粘贴lshw -c network命令的输出结果。 - ish
这本笔记本电脑是巴西当地制造商生产的,型号是Avell Diamond P110-F1HJ。根据lshw的输出显示,该卡未被认领;我会在帖子中更新结果。 - ugopozo
Ugopozo:我已经添加了一个最新发布的驱动程序的更新答案,以及一个迷你常见问题解答和构建步骤。如果您认为它回答了您最初的问题,请考虑接受这个答案 :) 谢谢 - ish
这个链接 http://askubuntu.com/a/165002/74671 是有效的,谢谢! - Chu-Siang Lai
6个回答

Realtek将官方Linux驱动程序通过Dropbox非官方地提供

Realtek在92系列驱动程序版本0006.0514.2012中添加了对RTL8273AE-BT的支持。由于未知原因,他们的网站上没有Windows或Linux驱动程序(但)。但是,Realtek技术支持一直提供带有源代码/固件tarball的Dropbox链接,许多用户报告其有效。

我从哪里获取它? 安全吗?

  • 驱动程序可以通过这个Dropbox链接下载。
  • 我可以确认这个文件是它所声称的,具有这个内容列表,只要它具有以下MD5或SHA1哈希值:(您可以使用md5sumsha1sum进行验证)

    MD5: fd10e9a347c6447f649324d6bdab53de
    SHA1: 1ccd6ae73878d8bf65bd7c0384e333b121606230
    

如何在Ubuntu上构建和安装驱动程序?

  1. 使用 Ctrl+Alt+T 组合键打开终端。
  2. 首先需要安装以下软件包以构建驱动程序:

    sudo apt-get install build-essential linux-headers-generic linux-headers-`uname -r`
    
  3. 将下面的命令粘贴到终端中,一次性下载并解压驱动程序存档:

    wget -O- http://dl.dropbox.com/u/57056576/DRIVERS/REALTEK/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012.tar.gz | tar -xz
    
  4. 切换到解压后的驱动程序目录,构建并安装驱动程序:

    cd rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012
    make
    sudo make install
    
  5. 通过加载驱动程序来测试它(这是一个一次性的步骤;在重启一次后,驱动程序应该会自动加载):

    sudo modprobe rtl8723e
    

我进行了测试,确实有效。我对从Dropbox匿名来源安装驱动程序感到不安,因为它在其他主题中有链接,我甚至试图直接联系Realtek的支持(但没有成功),但是您的高声誉使我认为值得一试。然而,Linux驱动程序大大降低了无线工作范围,这是正常的吗?我安装后的信号范围很一般。您是否有关于Realtek是否打算发布此驱动程序的更新以及如何更新的任何信息?感谢您的时间。 - ugopozo
只是想确认一下:这个驱动程序虽然可以工作,但在范围方面存在严重问题。我之所以这么说,是因为使用这个驱动程序从同一位置连接到同一网络时,显示出明显更多的不稳定性(甚至无法连接到我的工作无线网络),而在Windows上使用相同的卡或在Linux上使用USB dongle则没有这种情况。这可能就是为什么它还没有出现在Realtek的网站上的原因;它还没有达到生产水平。 - ugopozo
完美地工作了。只需要tar xvf,make,sudo make install和modprobe就可以直接使用了。非常感谢! :-) - Albus Dumbledore
5驱动程序的更新版本,与3.5内核兼容,在此处可以找到:http://www.liteon.com/UserFiles/driver/Module/Network/WLAN/RTL/rtl_92ce_92se_92de_8723ae_linux_mac80211_0007.0809.2012.tar.gz - user239558
嘿,我在编译这个源代码时遇到了困难http://unix.stackexchange.com/questions/74110/i-can-not-get-my-realtek-8723-driver-source-compiled 所以我发现最新的源代码在https://github.com/lwfinger 你可以在你的回答中包含这个信息。 - Sir l33tname
我在安装了Ubuntu 12.10后进行了这个操作。它起作用了。然后我进行了一个包括内核的更新...结果又不起作用了。所以我猜想我必须再次重复这个过程。是的,它又起作用了。 :) - ultrajohn
但突然间,它再也无法检测到无线网络了...你觉得这里发生了什么事情? - ultrajohn
我本能地让我的笔记本电脑休眠,然后再唤醒它,然后无线设备又恢复了正常工作。 - ultrajohn
这里可以找到适用于3.8内核的修改版:https://github.com/vicre/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0516.2013_revison_1 - aanton
找到了一个关于新内核的页面: http://blog.83c.org/how-to-compile-the-realtek-8169-driver-with-linux-kernel-3-8/ - aanton
有没有人碰巧有Windows驱动程序的链接?我猜不出正确的名称。 - Gizmo

IEEE80211_HW_BEACON_FILTER (在 base.c 的第320行)注释/删除,可以在使用3.4内核时进行编译。到目前为止我还没有遇到任何问题。虽然可能不那么省电,但该卡似乎像以前一样工作。我不能保证它不会引起任何问题,但总比什么都没有好。
好吧,这里有一些新反馈:我做了以上所有操作,并得到了相同的编译错误,用您的建议修复了它。然后驱动程序工作了一次。重新启动后,它无法再打开任何无线连接。 尝试进入windows 7,仍然无法检测到任何无线连接。
我现在确信这个过程已经砖化了我的无线适配器- Windows仍然识别设备,但存在某些问题,因为它不再感应任何无线连接。我必须使用外部linksys适配器,因为我的内置realtek已经失效:/ <<请忽略上面的评论,因为我写这篇评论时很生气>> 更新:我发现那个驱动程序不知何故将我的无线局域网模块的“漫游灵敏度”设置为“低”,这导致它无法检测到任何无线信号。在Windows 7中,我进入设备管理器并将该设置更改为“高”,然后神奇地恢复正常!真是松了一口气...
无论如何,请注意,如果你在遵循互联网上的建议时不小心,类似的事情可能会发生在你身上。下次再启动我的Ubuntu分区之前,我会三思而后行...

我和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获取有关这些更改的信息。

1我可以确认,在3.5内核上,即使删除导致其无法编译的有问题代码行,该驱动程序仍然无法正常工作。我们需要一种新的解决方案来解决这个问题,因为目前12.10版本是不支持的。 - user239558
对以上内容进行更新,以下驱动程序在我这里适用于3.5版本。 http://www.liteon.com/UserFiles/driver/Module/Network/WLAN/RTL/rtl_92ce_92se_92de_8723ae_linux_mac80211_0007.0809.2012.tar.gz - user239558

嗯,我找到了一个“解决方案”。这不是一个合适的解决方案:我只是买了一个带有RTL8188CUS芯片组的无线USB dongle,在安装驱动程序后,它会迅速被识别。

对于在阅读此帖子的具有相同问题的任何人,我会说最好的解决方案是等待Realtek在其网站上发布8723的官方驱动程序。他们通常会这样做,而且连Windows驱动程序都不在官方网站上提供(我猜这表明这是一种相当新的芯片组)。

我会密切关注网站,并在驱动程序发布时更新此答案,并提供安装的具体说明。



你是怎么收到它们的?人们是否可以从Realtek的网站获取它们?出于安全考虑,人们可能不想从Dropbox下载这样的文件。(没有办法知道这些文件是否真的是它们所说的!) - Eliah Kagan
你好!为了获得这些驱动程序,我不得不给Realtek写信。他们通过邮件将它们发送给了我。我不知道为什么他们没有把这些驱动程序放在他们的网站上。 - user56800
2013年5月15日,Realtek网站上仍然没有任何信息。Ubuntu 13.04已经包含了8723驱动程序。如果需要编译,请使用更新的tarball:rtl_92ce_92se_92de_8723ae_linux_mac80211_0007.0809.2012.tar.gz。 - ubfan1

谢谢。我遇到了同样的问题,下载并构建了这两个.gz文件后,我的卡就能用了!
由于某种原因,安装脚本没有正确复制固件,所以我不得不手动操作。我将rtlwifi文件夹中的rtl8723fw.bin和rtl8723fw_B.bin从源目录移动到/lib/firmware/rtlwifi/,重新启动后它就正常工作了。
不过我相信很快这个驱动程序就会被添加到Linux内核中。