File:  [DragonFly] / src / sys / dev / netif / ndis / README
Revision 1.1: download - view: text, annotated - select for diffs
Thu Jul 29 21:51:55 2004 UTC (10 years, 2 months ago) by dillon
Branches: MAIN
CVS tags: HEAD, DragonFly_Stable, DragonFly_Snap29Sep2004, DragonFly_Snap13Sep2004, DragonFly_RELEASE_1_8_Slip, DragonFly_RELEASE_1_8, DragonFly_RELEASE_1_6_Slip, DragonFly_RELEASE_1_6, DragonFly_RELEASE_1_4_Slip, DragonFly_RELEASE_1_4, DragonFly_RELEASE_1_2_Slip, DragonFly_RELEASE_1_2, DragonFly_RELEASE_1_10_Slip, DragonFly_RELEASE_1_10
Provide some basic instructions on how to create an NDIS wireless driver
based on instructions I found on the net and my own playing around.

$DragonFly: src/sys/dev/netif/ndis/README,v 1.1 2004/07/29 21:51:55 dillon Exp $
			USING IF_NDIS WITH WINDOWS DEVICE DRIVERS

(1) Locate the .INF and .SYS file for the windows driver.  I have no idea
    where the official location for these things are but I found the one
    for the Centrino 2200 chipset (for my Sony TR3A) here:

    http://news.gw.com/freebsd.hardware/4894
    http://www.powernotebooks.com/Support/intel_2200_wlan.zip

    My MD5 (intel_2200_wlan.zip) = 281812933642f3f2fd54710ee7bba2d4
    This is unofficial.

(2) Unpack the files into a temporary directory, then copy the appropriate
    .INF and .SYS file to /usr/local/modules/if_ndis.

    mkdir -p /usr/local/modules/if_ndis
    cp .... 

(3) Generate a driver module header file using ndiscvt then build and
    install the module.  The object directory in which you store the
    header file should match what make obj creates.  If your DFly sources
    are in /usr/src then the example below will work.

    # cd /usr/src/sys/dev/netif/ndis
    # make obj
    # make clean
    # ndiscvt -i /usr/local/modules/if_ndis/w22n51.INF -s /usr/local/modules/if_ndis/w22n51.sys -o /usr/obj/usr/src/sys/dev/netif/ndis/ndis_driver_data.h
    # make
    # make install

(4) Load all required modules into the running kernel:

    # kldload /modules/wlan.ko
    # kldload /modules/ndis.ko
    # kldload /modules/if_ndis.ko

    You should get something similar to the following system console
    messages:

    ndis0: NDIS API version: 5.1
    ndis0: MAC address: 00:0e:35:15:ee:72
    ndis0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 5.5Mbps 11Mbps
    ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps

(5) Bring the interface up and associate the SSID.  If you aren't sure
    what your basestation id is you can use 'wicontrol -i ndis0 -l' to
    list available ssid's.

    # ifconfig ndis0 up
    # wicontrol -i ndis0 -l
    # ifconfig ssid "your_basestation_id"

(6) Ifconfig should show the interface up and associated.  Run dhclient
    or ifconfig your IP address. 

    # ifconfig ndis0
    [should show the interface up and associated]
    # dhclient ndis0