|
|
Solaris NDIS Wrapper ToolkitThe Solaris NDIS Wrapper Toolkit was designed to allow native binary Windows® 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® network drivers. With this toolkit, Solaris network drivers can only be built from Windows® network drivers that were built for the same architecture. So a 32-bit Windows® driver cannot be used to build a 64-bit Solaris driver – you'll need to obtain a native 64-bit Windows® 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® 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®, but it works best with drivers designed for NDIS 5.0 or later. Even though drivers for Windows 2000 should work, for best results drivers designed for Windows XP of Windows Server 2003 should be used instead. What is needed?You'll need to have two driver files to build a Solaris driver:
You'll need to have GCC compiler v3.4.3 or newer to generate both 32-bit and 64-bit Solaris/x86 binaries. Solaris 10 comes with just the right version installed in /usr/sfw/bin, so that's what provided Makefiles are using by default. You'll also need to have flex installed somewhere in your $PATH to build the ndiscvt binaries. There is one in /usr/sfw/bin. NDIS wrapper toolkit V1.2 can be downloaded here.
NDIS wrapper toolkit V1.1 can be downloaded here.
NDIS wrapper toolkit V0.1 can be downloaded here.
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 (bcm32.inf, bcm32.sys, bcm64.inf, bcm64.sys). You can also refer to Carlton's ndiswrapper setup experience.
To build a 64-bit version of the driver, you'll also need to do the following steps under 64bit kernel:
Now you can try loading ndisapi module and attaching the driver to your network card, for example:
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 wificonfig or inetmenu Laptops with the following Broadcom chipset-based network cards have been tested:
Windows@ Driver and Device Id reported work with ndis-1.2(14E4,4328)(14E4,4311)
Windows@ Driver and Device Id reported work with ndis-1.1(14E4,4320)(14E4,4324)
(14E4,4320)
(14E4,4311)(14E4,4312)(14E4,4318)(14E4,4319)
(14E4,4301)
(14E4,4301)(14E4,4303)(14E4,4307)(14E4,4320)(14E4,4325)
|