分享

SDB:ndiswrapper的

 紫火神兵 2013-01-07

ndiswrapper的是一个程序,使用Windows *。inf文件与您的硬件的驱动程序文件到你的无线网卡在Linux上运行。

内容

[ 隐藏 ]

(为什么不呢)的ndiswrapper

有些厂商不释放规格的硬件或提供他们的无线网卡Linux驱动程序。的ndiswrapper项目实现了在Linux内核的Windows内核API和网络驱动程序接口规范(NDIS)API。然后链接到这个实现的驱动程序在本地运行,就好像它是在Windows中,如果没有二进制仿真的无线网卡的Windows驱动程序。

但是请注意,你应该使用本地无线驱动程序(如B43,ath9k的,等等)时,由内核提供的可能。ndiswrapper的工作原理是桥接的Windows驱动程序到内核空间;为内核开发,这是违反了GPL许可的内核。此外,ndiswrapper的不标准的内核功能,如4K堆栈,使用户仅二进制驱动程序在内核空间,用户不能修改或修复。此外,ndiswrapper的并不在所有的工作没有Windows的驱动程序,其中1)是不可重新发布的2)是不是开源的。此外,由于ndiswrapper的是联系在一起的内核,Windows的无线驱动程序中的bug有可能导致内核崩溃,甚至想在Windows相同的错误可能不会造成问题。因此,有稳定性的问题,以及考虑。另一个问题是,如果你遇到一个内核bug,在一个糟糕的结果,最核心的开发人员会问你重现该问题没有污点的内核,而无需装载任何非GPL驱动程序。

更好的解决方案使用ndiswrapper

它归结为是ndiswrapper的是一个不得已的解决方案。如果你的无线网卡没有一个免费的软件兼容的Linux驱动程序和固件考虑购买一个新的。要知道,大部分地方销售Linux兼容卡不支持Linux,很可能不是免费软件,兼容的芯片组。

这意味着卡将不能由自由软件社区的支持,你是在怜悯的芯片组制造商的支持。您可能会发现您的卡不再卡时停止工作或不工作在所有与您选择的分布。

有几个地方,你可以拿,卡,从它清楚地表明了芯片组或免费软件的支持。目前唯一明确的源代码免费软件兼容卡的ThinkPenguin.com

另外一个方法是可以找到免费的基于该芯片组的软件兼容卡。这是一个比较困难的,一般的用户发现具有挑战性的记录芯片组不匹配的型号可供名单在网上找到。这是因为制造商改变不改变型号的芯片组。


获得的ndiswrapper

出自openSUSE媒体

openSUSE的安装的CD / DVD中包含的ndiswrapper。使用中的YaST的软件管理工具,并确保安装了以下软件包:

  • ndiswrapper的
  • 的ndiswrapper-KMP默认| SMP的xen]
  • 无线工具


选择适当的内核模块包(KMP)为你的架构。要了解你正在运行的内核:

使用uname-r

从驱动器:无线资源库

您可以获取最新版本的ndiswrapper驱动程序:无线资源库。

  • 首先,检查你正在运行的内核的版本:
使用uname-r
  • 然后,获取root权限运行
苏 - 
  • 根据您的openSUSE版本,您是否正在运行最新的内核,你必须添加正确的资料库:

现有的内核

如果你还没有更新的内核默认情况下,openSUSE的安装,这些都是正确的存储库中添加:

核心2.6.25.5-1.1 i386或x86_64的GNU / Linux(openSUSE 11.0中)

zypper的的AR http://download./repositories/driver:/wireless/openSUSE_11.0的ndiswrapper

内核2.6.27.7_9.1-i386或x86_64的GNU / Linux 1.1(openSUSE 11.1的)

zypper的AR http://download./repositories/driver:/wireless/openSUSE_11.1的ndiswrapper

核心2.6.31.5-0.1 i386或x86_64的GNU / Linux(openSUSE的11.2)

zypper的AR http://download./repositories/driver:/wireless/openSUSE_11.2的ndiswrapper

最新的内核

如果你已经更新到最新版本,可在线更新你的内核,你需要添加这些资料库,而不是:

openSUSE 11.0中:

zypper的AR http://download./repositories/driver:/wireless/11.0-update/的ndiswrapper

openSUSE 11.1的:

zypper的AR http://download./repositories/driver:/wireless/11.1-update/的ndiswrapper

openSUSE的11.2:

zypper的AR http://download./repositories/driver:/wireless/11.2-update/的ndiswrapper


  • 您已经添加了库后,您可以运行命令来安装ndiswrapper的内核:

如果你有“桌面”的内核:

在ndiswrapper的zypper的ndiswrapper的KMP桌面

如果你有“默认”的内核:

在ndiswrapper的zypper的ndiswrapper的KMP默认的

如果你有“PAE”内核:

zypper的的ndiswrapper的ndiswrapper-KMP-PAE


  • 完成安装后,您可以删除存储库运行:
zypper的RR的ndiswrapper


从源代码

您也可以直接从ndiswrapper的网站下载并编译的最新版本


获取Windows驱动程序

您可能能够确定ndiswrapper的兼容性列表中寻找特定硬件的驱动程序,你需要

如果您运行的是64位的Linux内核,你必须找到64位Windows驱动程序(这是有点很难找到比在32位的Windows驱动程序)!所以,如果你不能在64位的Windows驱动程序,你需要安装32位版本的openSUSE,如果你打算使用ndiswrapper的!

从您的Windows分区

如果你有一个双引导的机器,你有你的卡正常工作在Windows,那么您的驱动程序的一种方式是把它从Windows分区本身。请记住,如果你的Windows安装的是32位的,你的驱动程序是32位,同样为64位的Windows,驱动程序将64]

在Windows中,在“网络适配器”下设备管理器,找到你的无线网卡。右键点击属性- >驱动程序- >“驱动程序详细信息...”。在这里,你应该找到的路径*。sys文件,通常位于您的?:\ WINDOWS \ SYSTEM32 \ DRIVERS \目录中。

现在,您将使用Windows的“搜索”功能找到相应的*。inf文件,这是没有什么更比一个简单的文本文件(尝试打开一个!),所需的驱动程序的所有文件的列表。因此,一个样品在Windows中的搜索查询将是:

Windows搜索查询
所有的文件名称的一部分: *。INF
文件中的一个字或词组: <the *.sys路径发现above>
看: 本地硬盘驱动器(C :)

此搜索可能需要一段时间!当你找到它,看看里面的*。inf文件,用文本编辑器,如果你需要找到更多的文件。如果你是幸运的,一切都应该在一个单独的目录(例如C:\ Program Files文件\ Atheros的\ DRIVERS \)。所有这些文件复制到一个位置(如在/ home / myuser这种子树)或外部USB驱动器是访问你的Linux系统。

从驱动程序的安装软件

有几个地方,你可以找到你的驱动程序,在这里列出的优先顺序:

  • 您的硬件附带的安装光盘,
  • 您的PC或卡制造商的支持网站
  • 通过寻找你的*。sys文件与谷歌

如果你幸运的话,你会找到合适的*。inf和相关文件变得非常容易。有时候,你会需要解压缩*。CAB文件,其中包含您的驱动程序。您可以尝试解压缩这些*。cab文件cabextract(命令行实用程序)。

您可以获取cabextract的:

苏-C'zypper的cabextract“

同样,一旦你发现所有的文件,将它们复制到一个位置,这是访问你的Linux分区。

inf文件处理多个*。

如果有两个或两个以上的。inf文件,不要惊慌,每个人都是不同的版本的Windows。我的驱动程序的光盘有两个:

bcmwl5a.inf
bcmwl5.inf

第一个是WIN98第二个是Win2K中,Me和XP。在我的情况下,赢得98驱动程序工程和XP没有。


安装驱动程序

  • 打开一个控制台窗口,并获得root权限:(su命令的意思是“替代用户”,它可以是超级用户root用户,如果你不知道那是什么,它会问你的root密码)
苏 - 
  • 现在,键入:
ndiswrapper的-I / path/to/drivers/bcmwl5a.inf的

一定要包括你的。inf文件的实际路径。

温馨提示:输入绝对路径,你可能更喜欢的文件夹中。inf文件之前先运行命令更改目录(cd)。如果这个文件夹(路径)的方式来包含空格,如“程序文件”,有时更容易为新手CD包含必要的。inf文件的文件夹:

CD /首页/ / inf文件是'
后,你可以安装驱动程序,只是使用的。inf文件名 ??:

的ndiswrapper-I filename.inf

  • 如果一切顺利的话,类型:
的ndiswrapper-L
  • 如果您安装了一个有效的/兼容Windows的驱动程序,ndiswrapper的显示是这样的:
<driver-name>:安装驱动程序
设备(XXXX:XXXX)目前(备用驱动:<native-driver-name>)

在哪里<driver-name>用ndiswrapper和<native-driver-name>安装的Windows驱动程序的名称的名称是Linux原生驱动程序被重写。

本机驱动程序可能需要“blacklist'ed,如果它被安装和被检测到,在日志文件中表示:”的/ var / log / messages文件“。黑名单防止本机尝试操作硬件的驱动程序,因为我们要的ndiswrapper的驱动程序来操作。要阻止本机驱动程序,添加一行到文件/ ETC / modprobe.d /黑名单“,上面写着:

黑名单<native-driver>


其中,<native-driver>是被列入黑名单的驱动程序的实际名称。

  • 如果ndiswrapper的说:“无效的驱动器”,然后你需要卸载该驱动程序,并尝试不同的。
  • 要卸载驱动程序,你需要键入:
<then的ndiswrapper-R驱动程序的名称uninstall>
  • 额外的检查可以看
的/ etc / ndiswrapper的 

如果有一个目录安装的驱动程序命名为。

USB WLAN棒

如果你有一个USB WLAN棒,有一个额外的步骤,你需要做的正确安装驱动程序。您需要提供的ndiswrapper的VendorID和ProductID的USB WLAN棒的,使用-d选项。查找的id YaST中的硬件信息类USB。另外,您还可以运行:

的lsusb

你应该能够得到两个four-characters/digits的数字,像168C和0013。

要连结USBID的驱动程序,您必须键入:

的ndiswrapper-D谢谢:谢谢<then的名称,驱动程序>

有看看的命令:

的dmesg |尾

成功加载的驱动程序/连接。

如果一切正常,你可以写别名的ndiswrapper在modules.conf中

的ndiswrapper-M

加载ndiswrapper的命令

modprobe的ndiswrapper的

之后,您可以使用YaST配置


在YaST中配置您的卡

如果你有问题越来越被检测的无线网卡(K)NetworkManager的,您可能需要额外的步骤来配置网卡。

由于openSUSE 11.1的,你可以不再编辑在YaST中的网络设置,当网络的网络管理控制。如果你有问题(K)NetworkManager的更多信息,看到http://en./NDISwrapper Conflicts_with_NetworkManager

有许多可能的可能的配置。下面是一个典型的例子: 截图演练

DHCP

  • 启动YaST的网络配置:网络设备→网卡
  • “概述”选项卡
  • 选择:“添加”按钮,在下半部分
  • 选择:
    • 设备类型:“无线”
    • 配置名称:“0”(或任何:))
    • 硬件配置名称:“静态0”
    • 模块名称:“ndiswrapper的”
    • 选项??:“(??保持空)
    • 不要选择“PCMCIA”或“USB”
    • ... 终于“Next”(下一步)
  • 在下一屏幕中,选择DHCP在“主机名和名称服务器”,在“高级→DHCP选项”,然后单击“下一步”
  • 在“无线网卡配置”窗口中选择(保持默认值):
    • 操作模式:“被管理”
    • 网络名称(ESSID):“(保持空)
    • 身份验证模式:“打开”
    • 输入类型:“通关密语”
    • 加密密钥:“(保持空)
    • .. 终于“Next”(下一步)
  • 在KWallet管理器可能会打开 - 给他你的密码,而忽略开口(它不会做任何事情)
  • 忽略加密警告说,“做自己的风险”
  • 早在“网卡配置概述”,选择“下一步”。

你的卡被配置。

现在,你可能会打开你的任务栏(踢球)的网络管理和找到的网络中选择一个。禁用线连接(如果已连接),和访问互联网。

如果不广播SSID(无线网络名称),你可以选择自己的,具体的网络管理。


潜在的冲突与问题

连接问题

一旦你有ndiswrapper的工作,你会看到无线网卡灯,LED与网络启动,即在启动或在响应命令rcnetwork重新启动

您将可以看到可用的网络,通过KDE的网络管理器或作为root用户发出的命令发出

苏-C'的iwlist WLAN0扫描“

您可能需要更改WLAN0,以配合您的无线接口

所以,你发现你的首选网络,并尝试连接。不过,也有一些陷阱,以避免...

的发行说明openSUSE 11.1的状态,有没有出通道12-14包容性的开箱即用支持。 默认情况下,WLAN信道12,13和14被禁用,因为它是不允许使用这些渠道无处不在。如果你想使用它们在您所在地区的更多信息,请参阅http://en./Tracking_down_wireless_problems

因此,请确保您的路由器不使用这些信道,除非你已经手动启用它们所描述的URL中。

我还发现我的的美国网件DG834PN和与汤普森SPEEDTOUCH BeThere通道1,2和3的问题。我发现,连接WPA-PSK真的不可靠的,没有启用加密几乎是不可能的。持续下跌的信号,并习惯性地回落到11Kbps。

我将建议是关掉所有的安全。将身体下到路由器的笔记本电脑和检查报告的信号强度。通道的问题将被报告为小于100%。例如,我发现我的笔记本电脑,通道1时,只报70%的笔记本电脑和路由器均在彼此毫米。

一旦你有一个通道,报告100%尝试连接。只有一次的连接工作可靠,没有安全,你应该启用它,说,WPA-PSK。

ndiswrapper的未装入

您可以检查是否ndiswrapper内核模块被加载运行

现在lsmod | grep的ndiswrapper的

如果该命令返回任何输出,你需要,加载ndiswrapper的。运行

苏 - 

获得root权限,然后

modprobe的ndiswrapper的

modprobe的运行后,如果你已经在使用YaST 配置您的卡,那么你可以运行

rcnetwork重新启动

是一样的(只是较小的打字)

/ etc / init.d中/网络重新启动

重新启动您的网络管理员和卡应正确激活的。

在启动时加载ndiswrapper的

一种方法,可以编辑您的网络脚本在/ etc / init.d /的网络。加入一个行说modprobe的ndiswrapper的实际组网脚本之前会被加载之前运行的脚本,让ndiswrapper的。请注意,这不应该,如果你需要配置你的无线接口使用YaST和“模块名称”字段中输入的'ndiswrapper的“在。这应该ndiswrapper内核模块加载在开机的。

另一种方法是编辑配置文件的/ etc / sysconfig / kernel中,加入的ndiswrapperMODULES_LOADED_ON_BOOT部分(如:MODULES_LOADED_ON_BOOT =“ndiswrapper的”)。

在某些情况下(USB WLAN)配置无线接口的使用YaST,不自动加载ndiswrapper模块。为了让您无线局域网卡,在开机的时候,你必须编辑您的网络脚本在/ etc / init.d /的网络(如上文所述)。

从源代码编译为1.46及以上

ndiswrapper的1.46及以上,需要2.6.17或更高版本的内核,以正确编译。只有版本的openSUSE 10.2和以前的SUSE版本2.6.17 +内核的新船;用户将需要升级他们的内核版本或使用年龄大于或等于1.45。当然,谁选择的的预编译的ndiswrapper-KMP-<fl??avor>的的包,附带的CD / DVD光盘的用户可以忽略这个问题。

使用NetworkManager冲突

如果您无法连接到无线网络使用NetworkManager,您或许可以使用ifup的连接配置无线连接(IP地址,加密,AUTHENICATION等)通过YaST。


硬件的具体信息

Atheros的

如果你有Atheros公司的卡,建议您尝试madwifi的第一次。如果你不能让madwifi的工作,然后ndiswrapper的将最有可能做的工作,虽然你可能会遇到一些小问题。有关详细信息,请参阅Atheros的madwifi的

注:本指南的最初尝试的IBM T43P后,它不会工作的默认版本的ndiswrapper的。我必须下载最新的版本(1.43稳定)和编译/制造/安装。然后,我不得不添加行“modprobe的ndiswrapper的”开始在/ etc / rc.d中/网络,它在引导时启动。

进一步的注意:不要忘了,如果你最终更新您的openSUSE系统,使你正在运行一个新的内核,你将不得不再次重新编译的ndiswrapper。

AR5005G(通常用在笔记本电脑),您将需要一个更近的Windows驱动程序。如果你有机会您可以复制的驱动程序从C:\ Program Files文件\ Atheros的\驱动程序在Windows上安装

您也可以尝试提取它从Windows驱动程序CD,或者你可以下载32位Atheros的NDIS驱动程序(如果你没有其他的方式来获得驱动程序,这是作为最后手段。)如果你使用的是64位版本( x86_64的),你将需要64位的驱动程序。


博通


openSUSE的11.2

Broadcom的无线适配器的驱动程序可以下载的官方网站http://www./support/802.11/linux_sta_SUSE.php

下载的焦油球和提取

 #tar xvf命令混合portsrc-x86_32-v5.60.48.36.tar.gz的

安装内核开发环境

 #zypper的-T模式devel_kernel的的

变更的目录和根的驱动程序并安装驱动程序

 混合portsrc#CD-x86_32-v5.60.48.36
 #make install的
 #命令depmod

检查驱动程序的安装

 #modprobe的-L | grep的wl.ko
    内核/驱动器/网络/无线/ wl.ko

现在你可以加载的驱动程序,并尝试连接

 #modprobe的WL

如果有什么问题去http://en./Tracking_down_wireless_problems,并考虑提交一份错误报告http://bugzilla.


参见


外部链接

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多