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.

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
- http://learningsolaris.com/archives/2009/03/10/opensolaris-wifi-broadcom-bcm4312-on-dell-vostro-1710
- http://ptribble.blogspot.com/2008/04/ndis-wrapper-on-indiana.html
- http://solaris.or.id/archives/install-driver-wifi-bcm4311-80211bg-wlan-menggunakan-ndiswrapper-di-opensolaris-200811/
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
(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.