使用针对 Windows 设计的网络设备
尽管 Linux 提供了大多数人需要在其计算机上使用的软件,但对于任何操作系统而言,兼容最新的网络硬件都是一个问题。现在的 Linux 发行版包含大量网络硬件的设备驱动程序,但针对新网络协议和相关硬件的 Linux 驱动程序能够可能跟不上形势,尤其是在无线领域。如果 Linux 机器在系统启动时无法识别或使用新的网络设备,则表明该设备的驱动程序不可用,或者这些设备驱动程序需要的一些其他资源(比如特定于硬件的固件)不可用。在这些情况下,友好的邻域搜索引擎始终应是您首要考虑的办法:具有同一个新发布的硬件的其他人可能已能在 Linux 系统上正确运行这个搜索引擎。
如果无法为新发布的网络硬件找到内置的 Linux 驱动程序,大多数新硬件都附带了一张 CD,其中包含使支持的操作系统能够高效使用该硬件的特殊驱动程序。不幸的是,这些驱动程序 CD 很少包含专为 Linux 系统设计的驱动程序。在一些情况下,特定硬件的 Linux 驱动程序可从硬件供应商的网站获得。在此情况下,供应商通常还会提供安装和配置说明。许多硬件供应商还提供了在线论坛,可在其中提出问题,或讨论您遇到的任何安装或配置问题。
如果您正在使用或试用的 Linux 发行版不支持您的桌面或笔记本电脑上的特定网络硬件,而且供应商未提供 Linux 驱动程序,也不是毫无办法。NDISwrapper 程序包使您能够在 Linux 系统上使用大部分 Windows XP 网络设备驱动程序。网络驱动程序接口规范 (Network Driver Interface Specification, NDIS) 是一个针对网络接口卡 (NIC) 的标准应用程序编程接口。NDISwrapper 程序包不支持 NDIS (V6),这是 Windows 8、Windows 7 和 Windows Vista 使用的驱动程序格式,所以您只能将 NDISwrapper 程序包用于 Windows XP 驱动程序。如果使用 64 位 Linux 系统,则只能使用 64 位 Windows XP 驱动程序;32 位 Windows XP 驱动程序不适用于 64 位系统。
在系统上安装 ndiswrapper-utils 程序包(在一些 Linux 发行版上,可能还需要安装 ndiswrapper-common 程序包)后,可执行以下步骤来安装和使用 Windows XP NDIS 驱动程序:
检查是否已加载相同硬件的任何 Linux 驱动程序,如果已加载,则使用 rmmod DRIVER 命令卸载。
找到想要使用的驱动程序的 .inf 和 .sys 文件。
如果您的硬件的 Windows XP 驱动程序已在一个自解压 .exe 文件中提供,通常可使用 Linux unzip 实用程序来提取。如果在一个 .cab 文件中提供,则可使用 Linux cabextract 实用程序提取。如果在 InstallShield 文件中提供,可使用 unshield 实用程序提取。(在大部分 Linux 发行版中,所有这些实用程序都在存储库中的同名程序包中。)在最糟糕的情况下,可将驱动程序安装在 Windows 计算机上,然后再将它们复制到 Linux 系统上。
以 root 用户身份使用以下这样的命令或使用 sudo 命令安装驱动程序:
ndiswrapper -i DRIVER.inf以 root 用户身份运行以下命令,或使用 sudo 命令验证 Windows 驱动程序是否已正确安装:
ndiswrapper -l以 root 用户身份运行以下命令,或使用 sudo 命令加载 NDISwrapper 可加载内核模块:
modprobe ndiswrapper以 root 用户身份运行以下命令,或使用 sudo 命令,为您的网络接口创建一个模块配置文件别名:
ndiswrapper -m此条目将类似于以下形式:
alias wlan0 ndiswrapper确保与 ndiswrapper 内核模块关联的以太网接口名称与您希望将其用于的接口匹配,如 ifconfig -a 命令的输出所示。
此刻,新网络硬件应可从 Linux 系统中看到,而且您应能够使用标准的 Linux 网络配置实用程序(比如 /sbin/ifconfig),或者配置和使用关联的 NIC。
如果希望为也拥有原生 Linux 驱动程序的硬件使用 ndiswrapper 内核模块和 Windows 驱动程序,则将需要创建一个名称类似于 /etc/modprobe.d/blacklist-DRIVER.conf 的文件,其中包含一个类似 blacklist DRIVER 的条目,以确保您下次重新启动系统时不会加载 Linux 驱动程序。
如果偏爱图形应用程序的简单性,则有多个选项可用于 NDISwrapper 程序包。图 1 显示了 ndisgtk 应用程序,可从同名的程序包中将该应用程序安装到系统上。
图 1. 使用 ndisgtk 添加一个 Windows 驱动程序
NDISwrapper 程序包不但有用,而且给人印象深刻。即使 Linux 为您的硬件提供了原生驱动程序,您也可能会发现,使用 Windows 驱动程序可提供比使用内置的 Linux 等效驱动程序更高的性能。
结束语
Linux 是一个免费且强大的操作系统,而且(目前)还易于使用。在桌面或便携式电脑上使用 Linux,可带来比 Windows 等操作系统高得多的性能,这也是为旧计算机注入新活力的一种不错的方式。但是,与基于 Windows 的服务器、某些类型的 Windows 文件或面向 Windows 的网络硬件互操作,这仍然是许多企业和家庭环境的需求。Linux 提供了广泛的软件和技术选择,支持您与这些系统和硬件互操作,从而从桌面 Linux 系统为您提供了两全其美的办法。
关于作者
William von Hagen 担任作家和 UNIX 系统管理员已经超过 20 年,并从 1993 年开始成为 Linux 爱好者。Bill 是一些图书的作者或合著者,涉及的主题包括 Ubuntu Linux、Xen Virtualization、GNU Compiler Collection (GCC)、SUSE Linux、Mac OS X、Linux 文件系统和 SGML。他还为 Linux 和 Mac OS X 出版物和网站撰写了许多文章。