我正在尝试让我的 Atheros AR1111 EB-WG PCI 无线适配器工作。现在甚至检测不到 wifi。我在 ubuntu 12.04 64 位上,我设法找到了 xp64bit 驱动程序。我遵循了以下确切步骤: https://help.ubuntu.com/community/WifiDocs/Driver/Ndiswrapper
我这样做的地方:
ndiswrapper -l
我得到类似这样的信息:
{name of driver} : driver installed
device ({Chipset ID}) present
这表明驱动程序已正确安装
但是,加载新模块后:
sudo modprobe ndiswrapper
什么都没有发生,并且 iwconfig 显示我仍然没有 wlan。
我尝试执行 dmseg | grep ndiswrapper,但没有驱动程序加载错误或任何奇怪的事情。
我还在 /etc/modprobe.d/blacklist.conf 中将 ath5k、ath8k 列入黑名单
我做错了什么?这可能是什么原因造成的?
答案1
ndiswrapper
本质上存在缺陷,并且始终与现有的绝大多数 WiFi 驱动程序不兼容。在内部,它使用一种类似于wine
一般用户空间应用程序的模拟形式。这是一门不完善的科学,因为 NDIS 设备驱动程序的语义和函数调用用法各不相同,而且ndiswrapper
历史上只实现了对目标驱动程序绝对需要的函数调用的支持,即最低限度。因此,许多函数调用仍未实现,并且由于 Linux 内核网络堆栈的设计,可能无法实现。
你可能没有做任何“错误”的事情,只是我认为你需要ndiswrapper
先加载内核模块,然后运行ndiswrapper -l
。但是如果你没有得到界面,那么它只是不工作. 这几乎是 的常态ndiswrapper
。
比如wine
,单个无线网卡的单个驱动程序版本必须有明确的“针对性”,开发团队(志愿者或商业)必须分析驱动程序的 NDIS 调用并确定如何修改ndiswrapper
以支持该驱动程序。这是模拟层的标准开发方法,因为实现整个模拟层非常耗费人力,而且由于语义不匹配、分层不匹配等原因,开箱即用就会出现大量错误。
您应该更加努力地寻找适合您芯片组的开源、原生驱动程序。否则,您可能就没那么幸运了。ndiswrapper
这不是解决方案;它只是为一小部分使用不常见芯片组的用户提供基本无线功能的临时占位符,直到可以编写开源驱动程序为止。不要依赖它;不要指望它能正常工作;坚持使用原生驱动程序,或者干脆用开箱即用的驱动程序替换您的硬件。抱歉。