Differences between revisions 17 and 68 (spanning 51 versions)
Revision 17 as of 2008-02-13 22:15:33
Size: 6331
Editor: FranklinPiat
Comment: some cleanup. more needed.
Revision 68 as of 2020-05-21 11:44:56
Size: 6755
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
["WiFi"] ~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: [[fr/NdisWrapper|Français]]-~
Line 4: Line 4:
(!) [:/Talk:Talk]
----
Some vendors do not release specifications of the hardware, and don't provide a linux driver for their wireless network cards. Ndiswrapper project provides a linux kernel module that loads and runs Windows kernel API and NDIS (Network Driver Interface Specification) API drivers supplied by the vendors within the Linux kernel. A Windows driver for wireless network card is then linked to this implementation so that the driver runs natively, as though it is in Windows, without binary emulation.
= NDISwrapper =
This page describes how to install NDISwrapper on Debian systems.
Line 8: Line 7:
Ndiswrapper uses the Windows *.inf driver files that came with your hardware to operate your wireless card on Linux. Most likely you will need to uncompress a *.cab file which contains your drivers. <<TableOfContents(2)>>
Line 10: Line 9:
== Packages == == Introduction ==
Some vendors do not release hardware specifications and do not provide a Linux driver for their devices.
Line 12: Line 12:
Make sure the following packages are installed: The [[http://ndiswrapper.sourceforge.net/|NDISwrapper]] project provides a Linux kernel module that loads and runs Windows kernel API and NDIS ([[WikiPedia:Network_Driver_Interface_Specification|Network Driver Interface Specification]]) API drivers supplied by the vendors within the Linux kernel. A Windows driver is then linked to this implementation so that the driver runs natively, as though it is in Windows, without binary emulation.
Line 14: Line 14:
 * packages DebPkg:ndiswrapper
 * packages ndiswrapper-${arch}-[default|smp|xen]
 * DebPkg:ndiswrapper-utils -Userspace utilities for ndiswrapper. You will also need the kernel module package.
 * wireless-tools (If you use a with wireless card)
NDISwrapper uses Windows XP driver files - which may have been supplied with your hardware - to operate your device. This driver wrapper is ''only'' available for use on the x86 and x86-64 architectures (Debian [[i386]] and [[DebianAMD64|AMD64]] ports respectively).
Line 19: Line 16:
Choose the proper kernel module package (${arch}) for your architecture. Most people will just need to use "ndiswrapper-${arch}-default". While NDISwrapper is intended for use with [[WiFi]] devices, it may alternatively be used for other hardware classes, such as Ethernet adapters or USB-to-serial converters. This page assumes use of a wireless LAN device.
Line 21: Line 18:
<!> 16-bit PC Card (PCMCIA) devices are not supported. [[WikiPedia:PC_Card#CardBus|CardBus]] devices are supported.
Line 22: Line 20:
== Installation == == Installation Overview ==
Line 24: Line 22:
 1. Install the NDISwrapper kernel module and supporting applications.
Line 25: Line 24:
Download the module's source and build a module binary package :  1. Install the relevant NDIS driver for your device.
Line 27: Line 26:
To download and install ndiswrapper tools and modules with debian ( provided you have the standard debian kernel )  1. Configure the wireless interface.
Line 29: Line 28:
 {{{
apt-get install module-assistant ndiswrapper-utils ndiswrapper-source
m-a prepare
m-a update
module-assistant auto-install ndiswrapper
}}}
== Module Installation ==
Line 36: Line 30:
You find more instruction in /usr/share/doc/ndiswrapper*/README* ## nb. APT installs recommended packages by default since Lenny; ndiswrapper-dkms is included as a result.
Line 38: Line 32:
The drivers you find may be packaged as ZIP, or an executable file. Some of the EXE files are just ["zip"] files, so you can run ["unzip"] and obtain driver files. Some EXE files are CAB files, so run DebPkg:cabextract and/or unshield on CAB file, typically named data2.cab  1. Install the relevant linux-headers, [[DebianPkg:ndiswrapper-utils-1.9]] and DebianPkg:wireless-tools packages: {{{
# apt-get install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') ndiswrapper-utils-1.9 wireless-tools
}}}
 This will also install the recommended DebianPkg:ndiswrapper-dkms package. DKMS will build the NDISwrapper module for your system.
Line 40: Line 37:
Assuming you have downloaded the Windows driver in ~/Desktop/Downloads/V11.1.1.0_XP_DRIVERS.ZIP :
 {{{
$mkdir /usr/local/i4965/
$cd /usr/local/i4965/
$unzip -q ~/Desktop/Downloads/V11.1.1.0_XP_DRIVERS.ZIP
$ndiswrapper -i /usr/local/i4965/NETw4x32.INF
 1. Add {{{ndiswrapper}}} to the list of kernel modules to load at boot time: {{{
# echo ndiswrapper >> /etc/modules
Line 48: Line 41:
Alternatively, You might refer directly to any windows owned folder. If the way to this folder (the pathname) contains white spaces, e.g. "Program Files", it is recommended first to move with ["cd"] to the folder containing the required ''*.inf''' file: After module installation, [[#ndis|install a NDIS driver]] and [[#configure|configure your wireless interface]].
Line 50: Line 43:
 {{{
cd '/windows/where the inf file is'
ndiswrapper -i this_and_that.inf
<<Anchor(ndis)>>
== NDIS Driver ==
{i} '''Windows XP''' drivers are required to be used. NDISwrapper does not support [[WikiPedia:Network_Driver_Interface_Specification|NDIS]] 6.x (Windows Vista/7/8) at this time.

You are required to provide the appropriate driver for your device. The first place you should check is the [[http://ndiswrapper.sourceforge.net/|NDISwrapper wiki]]. It lists many models of wireless devices that are usable with NDISwrapper and the driver that works best.

If you can't find it there, the [[http://www.linuxant.com/driverloader/drivers.php|Linuxant Windows Driver]] page has many drivers that work with NDISwrapper. It also has drivers for some 64-bit devices that don't offer native 64-bit drivers on the manufacturer's web page.

The final place you should examine is your driver CD or the manufacturer's web page. These often work, but sometimes they're broken or don't offer you full functionality. It's best to go with the ones listed on the NDISwrapper web page.

The driver you find may be packaged as a ZIP (.zip) archive or a self-extractable {{{.zip}}} inside a [[WikiPedia:Portable_Executable|Portable Executable]] (.exe) format. Such self-extractable .exe are ZIP archive encapsulated inside a .exe, you can run the {{{unzip}}} de-archiver (provided by the DebianPkg:unzip package) to extract its contents.

Other .exe files may be !InstallShield installers or other installer formats. These require the use of utilities such as DebianPkg:unshield or DebianPkg:orange to extract the contents within.

If your drivers are within the [[WikiPedia:Cabinet_(file_format)|cabinet file format]] (.cab), install DebianPkg:cabextract and run {{{cabextract}}} on a file of interest, typically named {{{data2.cab}}}.

=== Installation ===
<!> The following procedure is specific to the "Dell Wireless Card 1390" (PCI ID 14e4:4311) device and is provided as an '''example only'''. Consult the [[http://ndiswrapper.sourceforge.net/|NDISwrapper wiki]] for information on your specific device.

 1. Install the DebianPkg:unzip package: {{{
# apt-get install unzip
}}}
 1. Acquire an archive containing the NDIS driver from Dell's FTP site: {{{
# wget http://ftp.us.dell.com/network/R151517.EXE
}}}
 1. Extract its contents: {{{
# unzip -a R151517.EXE
}}}
 1. Install the NDIS driver: {{{
# ndiswrapper -i DRIVER/bcmwl5.inf
}}}
 1. To verify NDIS driver installation, list the currently installed drivers: {{{
# ndiswrapper -l
}}} You should receive the following output: {{{
bcmwl5 : driver installed
        device (14E4:4311) present
Line 55: Line 81:
Refer to the NDISwrapper manual page for more information: [[DebianMan:8/ndiswrapper-1.9|ndiswrapper-1.9(8)]]
Line 56: Line 83:
Let's make sure it's configured :
 {{{
$ndiswrapper -l
installed drivers:
netw4x32 driver installed, hardware (8086:4233) present
You can alternatively use DebianPkg:ndisgtk to install drivers to the system.

=== Uninstallation ===
To remove a previously installed NDIS driver from your system: {{{
# ndiswrapper -e <driver>
}}}
For example: {{{
# ndiswrapper -e bcmwl5
Line 63: Line 93:
Then add ndiswrapper in /etc/modules
 {{{
# added ndiswrapper to load XXXXX Network driver.
ndiswrapper
You can alternatively use DebianPkg:ndisgtk to uninstall drivers from the system.

<<Anchor(configure)>>
== Configuration ==

 1. Insert the NDISwrapper module into the kernel: {{{
# modprobe ndiswrapper
Line 68: Line 101:
 1. Verify your device has an available interface: {{{
# iwconfig
}}}
 1. [[WiFi/HowToUse|Configure]] your wireless interface as appropriate.
Line 69: Line 106:
You can either reboot you system to get the module loaded... or simply run {{{modprobe ndiswrapper}}} this time ;). == Other Notes ==
Line 71: Line 108:
This should be it. NDISwrapper only supports managed and ad-hoc device operating modes.<<FootNote([[http://sourceforge.net/apps/mediawiki/ndiswrapper/index.php?title=FAQ#Is_master_mode_or_promiscuous_mode_supported.3F|"Is master mode or promiscuous mode supported?" - NDISwrapper FAQ]])>>
Line 73: Line 110:
== See Also ==
 * DebianPkg:ndisgtk - a graphical frontend for ndiswrapper
 * DebianPkg:cabextract - a program to extract Microsoft Cabinet files
 * DebianPkg:orange - extracts CAB files from self-extracting installers
 * DebianPkg:unshield - extracts CAB files from !InstallShield installers
 * [[WiFi/HowToUse|How to use a WiFi interface]]
Line 74: Line 117:
== Uninstallation == == External Links ==
 * [[http://ndiswrapper.sourceforge.net/|NDISwrapper homepage]]
 * NDISwrapper manual pages: [[DebianMan:8/ndiswrapper-1.9|ndiswrapper-1.9(8)]]
 * [[irc://irc.freenode.net/%23ndiswrapper|#ndiswrapper]] - [[IRC]] channel
Line 76: Line 122:
To uninstall a driver, you need to type:

 {{{
ndiswrapper -e <then the name of the driver to uninstall>
}}}

An additional check can be to look at

 {{{
/etc/ndiswrapper
}}}

if a directory named as the installed driver is there available.
 
== bConfigure interface ==

Use ["iwconfig"] to configure wireless network interface.

=== Configure on insert / Hotplug ===

According to a DebianEtch entry on the ndiswrapper wiki, an 'allow-hotplug wlan0' entry in /etc/network/interfaces is about all it takes to get the card to be automatically configured and brought up when inserted (beyond the required steps to configure the card for manually bringing the interface up.)

http://ndiswrapper.sourceforge.net/mediawiki/index.php/InstallDebianEtch

On Sarge this does not appear to be the case. Adding that line does not make hotplug 'just work'. This is most likely due to the lack of an entry for ndiswrapper in /lib/modules/<kernel version>/modules.pcimap. According to the hotplug overview when new hardware is detected the MODULE_DEVICE_TABLE map is consulted to determine which module is responsible for the device. Without that entry or some other help hotplug will not 'just work' for the device.

The easiest workaround is to require the ndiswrapper module at boot so that it is always loaded and ready to claim the hardware. Just add it to the list in /etc/modules.

The most difficult workaround (for many) may be to edit the ndiswrapper source and recompile so that it will make MODULE_DEVICE_TABLE entries for your hardware.

http://www.linuxquestions.org/questions/showthread.php?t=360483
http://sourceforge.net/mailarchive/message.php?msg_id=6713442

An inbetween workaround may be to modifiy /etc/hotplug/pci.agent to parse an /etc/hotplug/pci.handmap and have it include the hardware details necessary to load ndiswrapper when your card is inserted, like you can do with usb.handmap. This step and the re-coding are probably best left to the developers which leaves us with /etc/modules.

There seems to be a couple different ways documented to enable hotplugging on interfaces (once hotplugging is working for ndiswrapper). Mentioned in the DebianEtch page on the ndiswrapper wiki is the line allow-hotplug wlan0. The man page for the interfaces file confirms that this is the intended way to enable hotplug. In /etc/hotplug/net.agent, you are directed to include mapping hotplug stanzas in /etc/network/interfaces.

On a Debian 3.1 / Dell Inspiron 1200 system the allow-hotplug entry did not seem to be necessary. The map stanza seemed to be enough, once ndiswrapper was already loaded. YMMV.

== External links ==
 * Ndiswrapper : [http://ndiswrapper.sourceforge.net/ Homepage]
 * [http://ndiswrapper.sourceforge.net/joomla/index.php?/component/option,com_openwiki/Itemid,33/ Wiki],
 * [http://ndiswrapper.sourceforge.net/joomla/index.php?/component/option,com_openwiki/Itemid,33/id,list/ ndiswrapper compatiblity list].
 
=== Cab ===
You can try unpacking *.cab files with any of the following:

 * DebPkg:cabextract - a program to extract Microsoft Cabinet files
 * DebPkg:unshield - extracts CAB files from InstallShield installers (If it doesn't succeed, you might want to try using i5comp or i6comp under Windows. search it in google)
Line 126: Line 123:
CategoryHardware ## This page is referenced from https://www.debian.org/doc/manuals/debian-faq/software.html
CategoryHardware | CategoryWireless | CategoryPermalink

Translation(s): Français


NDISwrapper

This page describes how to install NDISwrapper on Debian systems.

Introduction

Some vendors do not release hardware specifications and do not provide a Linux driver for their devices.

The NDISwrapper project provides a Linux kernel module that loads and runs Windows kernel API and NDIS (Network Driver Interface Specification) API drivers supplied by the vendors within the Linux kernel. A Windows driver is then linked to this implementation so that the driver runs natively, as though it is in Windows, without binary emulation.

NDISwrapper uses Windows XP driver files - which may have been supplied with your hardware - to operate your device. This driver wrapper is only available for use on the x86 and x86-64 architectures (Debian i386 and AMD64 ports respectively).

While NDISwrapper is intended for use with WiFi devices, it may alternatively be used for other hardware classes, such as Ethernet adapters or USB-to-serial converters. This page assumes use of a wireless LAN device.

<!> 16-bit PC Card (PCMCIA) devices are not supported. CardBus devices are supported.

Installation Overview

  1. Install the NDISwrapper kernel module and supporting applications.
  2. Install the relevant NDIS driver for your device.
  3. Configure the wireless interface.

Module Installation

  1. Install the relevant linux-headers, ndiswrapper-utils-1.9 and wireless-tools packages:

    # apt-get install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') ndiswrapper-utils-1.9 wireless-tools

    This will also install the recommended ndiswrapper-dkms package. DKMS will build the NDISwrapper module for your system.

  2. Add ndiswrapper to the list of kernel modules to load at boot time:

    # echo ndiswrapper >> /etc/modules

After module installation, install a NDIS driver and configure your wireless interface.

NDIS Driver

{i} Windows XP drivers are required to be used. NDISwrapper does not support NDIS 6.x (Windows Vista/7/8) at this time.

You are required to provide the appropriate driver for your device. The first place you should check is the NDISwrapper wiki. It lists many models of wireless devices that are usable with NDISwrapper and the driver that works best.

If you can't find it there, the Linuxant Windows Driver page has many drivers that work with NDISwrapper. It also has drivers for some 64-bit devices that don't offer native 64-bit drivers on the manufacturer's web page.

The final place you should examine is your driver CD or the manufacturer's web page. These often work, but sometimes they're broken or don't offer you full functionality. It's best to go with the ones listed on the NDISwrapper web page.

The driver you find may be packaged as a ZIP (.zip) archive or a self-extractable .zip inside a Portable Executable (.exe) format. Such self-extractable .exe are ZIP archive encapsulated inside a .exe, you can run the unzip de-archiver (provided by the unzip package) to extract its contents.

Other .exe files may be InstallShield installers or other installer formats. These require the use of utilities such as unshield or orange to extract the contents within.

If your drivers are within the cabinet file format (.cab), install cabextract and run cabextract on a file of interest, typically named data2.cab.

Installation

<!> The following procedure is specific to the "Dell Wireless Card 1390" (PCI ID 14e4:4311) device and is provided as an example only. Consult the NDISwrapper wiki for information on your specific device.

  1. Install the unzip package:

    # apt-get install unzip
  2. Acquire an archive containing the NDIS driver from Dell's FTP site:

    # wget http://ftp.us.dell.com/network/R151517.EXE
  3. Extract its contents:

    # unzip -a R151517.EXE
  4. Install the NDIS driver:

    # ndiswrapper -i DRIVER/bcmwl5.inf
  5. To verify NDIS driver installation, list the currently installed drivers:

    # ndiswrapper -l

    You should receive the following output:

    bcmwl5 : driver installed
            device (14E4:4311) present

Refer to the NDISwrapper manual page for more information: ndiswrapper-1.9(8)

You can alternatively use ndisgtk to install drivers to the system.

Uninstallation

To remove a previously installed NDIS driver from your system:

# ndiswrapper -e <driver>

For example:

# ndiswrapper -e bcmwl5

You can alternatively use ndisgtk to uninstall drivers from the system.

Configuration

  1. Insert the NDISwrapper module into the kernel:

    # modprobe ndiswrapper
  2. Verify your device has an available interface:

    # iwconfig
  3. Configure your wireless interface as appropriate.

Other Notes

NDISwrapper only supports managed and ad-hoc device operating modes.1

See Also


CategoryHardware | CategoryWireless | CategoryPermalink