Solaris NDIS Wrapper Toolkit

The Solaris NDIS Wrapper Toolkit was designed to allow
native binary Windows(R) drivers to be used in Solaris.  NDIS stands
for Network Driver Interface Standard, and refers to the set of APIs
that are commonly used by the Windows(R) network drivers.  With this toolkit, Solaris network drivers can only be built from Windows(R) network drivers that were built for the same architecture.  So a 32-bit Windows(R) driver cannot be used to build a 64-bit Solaris driver - you'll need to obtain a native 64-bit Windows(R) driver for that.

This toolkit is a derivative work from the Project Evil on FreeBSD, and
is provided under the same BSD license terms.
 

Where to get NDIS drivers?

Network cards usually come with CDs that contain Windows(R) drivers.
If you don't have a CD with drivers for your card, then you can try
finding drivers on your computer or network card vendor's web site.
The NDIS wrapper was designed to emulate NDIS APIs for different
releases of Windows(R), but it works best with drivers designed for
NDIS 5.0 or later.

What is needed?

You'll need to have two driver files to build a Solaris driver:

  • .INF file (ASCII text file).  It contains information that tells the Windows(R) installer what devices this driver supports and what registry keys should be created to control driver's configuration.  Note that sometimes the .INF file is supplied in a UNICODE format, so it must be converted to ASCII before it can be used by the Solaris NDIS Wrapper Toolkit.  This can be done by running "iconv -f utf-16 -t ascii driver.inf > ndis.inf".
  • .SYS file (binary file).  This file contains the actual driver executable code in Windows(R) Portable Executable (PE) format.  
  • When a system is running OpenSolaris 2009.06 or later distribution, users need to install additional packages that are not involved in the LiveCD to compile ndiswrapper, they are SUNWgcc, SUNWonbld and SUNWflexlex, and then: export PATH=/usr/bin:$PATH

NOTE:

NDIS wrapper toolkit V1.2.5 supports Opensolaris build_125+.
download.
![new](../new.gif) 

NDIS wrapper toolkit V1.2.4 supports Opensolaris build[122 - 124].
download.   

NDIS wrapper toolkit V1.2.3 is now available. download.
- integrated with Brussels support.
- better user experiences with OpenSolaris-0906 release.
- It is recommended version for OpenSolaris build[111 - 121].

For ndis users have installed OpenSolaris build[105 - 110], please find ndis-1.2.3-prelim(contributed by George White:os0342). download.

NDIS wrapper toolkit V1.2.1 is now available. download.
new features are as below:
- integrated with Fastreboot support.
- integrated with Suspend/Resume support.
This version supports OpenSolaris build[100, 104], it was contributed by George White (george@palisad.com) (OS0342)

NDIS wrapper toolkit V1.2 can be downloaded here.  

  • Enhanced to work in 802.11n mode for Broadcom new WiFi chipsets.
    -- Dell 1505 PCI Express 802.11 a/b/g/n Mini-Card product detail.
  • Need to install SUNWonbld package to compile it. 

NDIS wrapper toolkit V1.1 can be downloaded here

  • It bases on GLDv3. Support OpenSolaris from build54 to build 99.
  • Support IBSS mode at 32bit kernel.
  • Support more bcm43xx chipsets than ndis-0.1.
  • Support both 64bit and 32bit kernel.

NDIS wrapper toolkit V0.1 can be downloaded here.

  • It is based on GLDv2.

How to build a driver?

Here's an example of how to build a Solaris network driver for the
Broadcom wireless card assuming you've got all necessary components
(bcmwl5.inf, bcmwl5.sys). You can also refer to Carlton's ndiswrapper setup experience.

    # wget http://www.opensolaris.org/os/community/laptop/downloads/ndis-1.2.3.tar.gz
    # gzip -dc ndis-1.2.3.tar.gz | tar xvf -
    # cd ndis-1.2.3/i386
    (copy bcmwl5.inf and bcmwl5.sys here)
    # make ndiscvt
    # ./ndiscvt -i bcmwl5.inf -s bcmwl5.sys -o ndis.h
    # make ndis
    # cp bcmndis /kernel/drv/bcmndis
    # make ndisapi
    # cp ndisapi /kernel/misc

To build a 64-bit version of the driver, you'll also need to do the following steps under 64bit kernel:

    # cd ../amd64
    # make ndiscvt
    (copy bcmwl564.inf and bcmwl564.inf here)
    # ./ndiscvt -i bcmwl564.inf -s bcmwl564.sys -o ndis.h
    # make ndis
    # cp bcmndis /kernel/drv/amd64/bcmndis
    # make ndisapi
    # cp ndisapi /kernel/misc/amd64

Now you can try loading ndisapi module and attaching the driver to
your network card, for example:

    # add_drv -i '"pci14e4,4320"' bcmndis

PCI ID in the example above consists of the Vendor ID (14e4) and the
Device ID (4320) used by the Broadcom's BCM4306 chipset.
To find out the right PCI ID for your network card,
try using "/usr/X11/bin/scanpci -v", or visit this site
with thousands of well known PCI IDs.

After that, you should be able to plumb bcmndis0 interface using ifconfig.
The driver can also be configured with dladm, nwam, wificonfig or inetmenu

Some Blogs

Broadcom BCM43XX chipsets based PCI/PCIe/Cardbus adapters

        4301  BCM4303 802.11b Wireless LAN Controller
  1028 0407  TrueMobile 1180 Onboard WLAN
  1043 0120  WL-103b Wireless LAN PC Card
 4307  BCM4307 802.11b Wireless LAN Controller
 4311  BCM4311 802.11b/g WLAN
  1028 0007  Wireless 1390 WLAN Mini-Card
  1028 0008  Wireless 1390 WLAN ExpressCard
  103c 1363  BCM4311 802.11b/g Wireless LAN Controller
  103c 1364  BCM4311 802.11b/g Wireless LAN Controller
  103c 1365  BCM4311 802.11b/g Wireless LAN Controller
  103c 1374  BCM4311 802.11b/g Wireless LAN Controller
  103c 1375  BCM4311 802.11b/g Wireless LAN Controller
  103c 1376  BCM4311 802.11b/g Wireless LAN Controller
  103c 1377  BCM4311 802.11b/g Wireless LAN Controller
  103c 137f  BCM4322 802.11a/b/g/n Wireless LAN Controller
  103c 1380  BCM4322 802.11a/b/g/n Wireless LAN Controller
  14e4 4311  BCM94311MCG
 4312  BCM4312 802.11a/b/g
  1028 0007  Wireless 1490 Dual Band WLAN Mini-Card
  1028 0008  Wireless 1490 Dual Band WLAN ExpressCard
  103c 135a  Broadcom 802.11a/b/g WLAN
  103c 135f  Broadcom 802.11a/b/g WLAN
  103c 1360  Broadcom 802.11a/b/g WLAN
  103c 1361  Broadcom 802.11a/b/g WLAN
  103c 1362  Broadcom 802.11a/b/g WLAN
  103c 1370  Broadcom 802.11a/b/g WLAN
  103c 1371  Broadcom 802.11a/b/g WLAN
  103c 1372  Broadcom 802.11a/b/g WLAN
  103c 1373  Broadcom 802.11a/b/g WLAN
  103c 30b5  Presario V3242AU
  1371 103c  Broadcom 802.11 Multiband-netwerkadapter(6715s)
 4315  BCM4312 802.11b/g
  1028 000b  Wireless 1395 WLAN Mini-Card
  1028 000c  Wireless 1397 WLAN Mini-Card
  103c 137c  BCM4312 802.11b/g Wireless LAN Controller
  103c 137d  BCM4312 802.11b/g Wireless LAN Controller
 4318  BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller
  1028 0005  Wireless 1370 WLAN Mini-PCI Card
  1028 0006  Wireless 1370 WLAN PC Card
  103c 1355  Broadcom 802.11b/g WLAN
  103c 1356  Broadcom 802.11b/g WLAN
  103c 1357  Broadcom 802.11b/g WLAN
  1043 100f  WL-138G V2 802.11g WLAN PCI Card
  1043 120f  A6U notebook embedded card
  1154 0355  Buffalo WLI2-PCI-G54S High Speed Mode Wireless Adapter
  1468 0311  Aspire 3022WLMi, 5024WLMi, 5020
  1468 0312  TravelMate 2410
  14e4 0449  Gateway 7510GX
  14e4 4318  WPC54G version 3 [Wireless-G Notebook Adapter] 802.11g Wireless Lan Controller
  16ec 0119  U.S.Robotics Wireless MAXg PC Card
  1737 0042  WMP54GS version 1.1 [Wireless-G PCI Adapter]  802.11g w/SpeedBooster
  1737 0048  WPC54G-EU version 3 [Wireless-G Notebook Adapter]
 4319  BCM4311 [AirForce 54g] 802.11a/b/g PCI Express Transceiver
  1028 0005  Wireless 1470 Dual Band WLAN Mini-PCI Card
  1028 0006  Wireless 1470 Dual Band WLAN PC Card
  103c 1358  Broadcom 802.11a/b/g WLAN
  103c 1359  Broadcom 802.11a/b/g WLAN
  103c 135a  Broadcom 802.11a/b/g WLAN
 4320  BCM4306 802.11b/g Wireless LAN Controller
  1028 0001  TrueMobile 1300 WLAN Mini-PCI Card
  1028 0002  TrueMobile 1300 WLAN PC Card
  1028 0003  Wireless 1350 WLAN Mini-PCI Card
  1028 0004  Wireless 1350 WLAN PC Card
  103c 12f4  Broadcom 802.11b/g WLAN
  103c 12f8  Broadcom 802.11b/g WLAN
  103c 12fa  Broadcom 802.11b/g WLAN
  103c 12fb  Broadcom 802.11b/g WLAN
  1043 100f  WL-100G
  1057 7025  WN825G
  106b 004e  AirPort Extreme
  1154 0330  Buffalo WLI2-PCI-G54S High Speed Mode Wireless Desktop Adapter
  144f 7050  eMachines M6805 802.11g Built-in Wireless
  144f 7051  Sonnet Aria Extreme PCI
  14e4 4320  Linksys WMP54G PCI
  1737 4320  WPC54G
  1799 7000  F5D7000uk 54G Wireless Network Card
  1799 7001  Belkin F5D7001 High-Speed Mode Wireless G Network Card
  1799 7010  Belkin F5D7010 54g Wireless Network card
  1799 7011  F5D7011 54g+ Wireless Network card
  185f 1220  TravelMate 290E WLAN Mini-PCI Card
 4324  BCM4309 802.11a/b/g
  1028 0001  Truemobile 1400
  1028 0002  TrueMobile 1400 Dual Band WLAN PC Card
  1028 0003  Truemobile 1450 MiniPCI
  1028 0004  Wireless 1450 Dual Band WLAN PC Card
  103c 12f9  Broadcom 802.11a/b/g WLAN
  103c 12fc  Broadcom 802.11a/b/g WLAN
 4325  BCM43xG 802.11b/g
  1414 0003  Wireless Notebook Adapter MN-720
  1414 0004  Wireless PCI Adapter MN-730
 4328  BCM4328 802.11a/b/g/n
  1028 0009  Wireless 1500 Draft 802.11n WLAN Mini-Card
  1028 000a  Wireless 1500 Draft 802.11n WLAN Mini-card
  103c 1366  BCM4321 802.11a/b/g/n Wireless LAN Controller
  103c 1367  BCM4321 802.11a/b/g/n Wireless LAN Controller
  103c 1368  BCM4321 802.11a/b/g/n Wireless LAN Controller
  103c 1369  BCM4321 802.11a/b/g/n Wireless LAN Controller
  14e4 4328  BCM4328 802.11a/b/g/n
 432b  BCM4322 802.11a/b/g/n Wireless LAN Controller
  1028 000d  Wireless 1510 Wireless-N WLAN Mini-Card

Windows@ Driver and Device Id reported work

(14E4,432b)

(14E4,4328)

(14E4,4311)

(14E4,4315)

  • Above devices work under solaris 32bit kernel with HP Official Release Windows@ driver Download![new](../new.gif)  

(14E4,4320 rev2)

(14E4,4324)

  • Above devices work under solaris 32bit kernel with Dell Official Release Windows@ driver Download.

(14E4,4320 rev2)

  • Above device work under solaris 32bit kernel with Acer Official Release Windows@ driver (ftp://ftp.support.acer\-euro.com/notebook/ferrari_3200/driver/winxp/Broadcom 802.11g Wireless Lan driver 3.30.15.0.zip).

(14E4,4320 rev3)

  • Above device work under solaris 32bit kernel with Linksys Official Release Windows@ driver Download.

(14E4,4311)

(14E4,4312)

(14E4,4318)

(14E4,4319)

  • Above devices work under solaris 32bit kernel with HP Official Release Windows@ driver Download.
  • For HP dv6000 and dv9500z laptop, higher version XP driver is required to make bcm4311 work under 32bit OpenSolaris kernel Download

(14E4,4301)

  • Above device work under solaris 32bit kernel with Linksys Official Release Windows@ driver Download.(Select firmware version V2.7).

(14E4,4301)

(14E4,4303)

(14E4,4307)

(14E4,4320)

(14E4,4325)

  • Above devices work under solaris 64bit kernel with "64-bit Broadcom 54g_Drivers", netbc564.inf Version 10/01/2002,3.70.17.6, provided by Microsoft.
last modified by admin on 2009/10/26 12:28
Collectives
Project


© Sun Microsystems Inc. 2009
XWiki Enterprise 1.8.2.19075 - Documentation
Terms Of Use | Privacy | Trademarks | Copyright Policy | Site Guidelines | Site map | Help
Your use of this web site or any of its content or software indicates your agreement to be bound by these Terms of Use.