NDISulator with Intel 2200 b/g on 5.2.1-RELEASE-p9
Joey Mingrone
joey at mingrone.org
Sun Jul 18 03:02:00 PDT 2004
On July 18, 2004 04:09, Joey Mingrone wrote:
> Hi all,
>
> Here are the steps I took:
>
> I built a new kernel with "options KSTACK_PAGES=8" to accommodate the large
> alloc the w22n51.sys driver makes on the kernel stack
>
> I added the following directories from CURRENT under my source tree:
> src/sys/compat/ndis
> sys/modules/ndis
> sys/modules/if_ndis
> src/sys/dev/if_ndis
> src/usr.sbin/ndiscvt
>
> In /sys/compat/ndis/subr_ntoskrnl.c I had to comment out the following
> lines to get everything to build:
> #include <sys/kdb.h>
> kdb_enter("ntoskrnl_debugger(): breakpoint");
>
> cd /usr/src/usr.sbin/ndiscvt
> make
> make install
>
> cd /sys/modules/ndis
> make
> make install
>
> I put w22n51.sys and w22n51.INF in /sys/modules/if_ndis.
> If anyone is looking for these file they can be found inside this zip:
> http://www.powernotebooks.com/Support/intel_2200_wlan.zip
>
> cd /sys/modules/if_ndis
> ndiscvt -i w22n51.INF -s w22n51.sys -o ndis_driver_data.h
> make
>
> I got an an error: "make: don't know how to make pccarddevs.h. Stop", so I
> removed pccarddevs.h from /sys/modules/if_ndis/Makefile an it built okay.
>
> make install
>
> kldload -v ndis -> Loaded ndis, id=3
> kldload -v if_ndis -> worked sometimes, other times the command would just
> hang, but the system would still be usable
>
> when kldload if_ndis did work, the output would look like:
> ndis0: <Intel(R) PRO/Wireless 2200BG Network Connection> mem
> 0xff9ee000-0xff9eef
> ff irq 11 at device 2.0 on pci2
> ndis0: NDIS API version: 5.1
> ndis0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 5.5Mbps 11Mbps
> ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
> Loaded if_ndis, id=7
>
> Then ifconfig -a would show:
>
> bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
> options=1b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING>
> inet6 fe80::20e:a6ff:fec4:a0b1%bge0 prefixlen 64 scopeid 0x1
> inet 192.168.0.4 netmask 0xffffff00 broadcast 192.168.0.255
> ether 00:0e:a6:c4:a0:b1
> media: Ethernet autoselect (100baseTX <full-duplex>)
> status: active
> plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
> lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
> inet 127.0.0.1 netmask 0xff000000
> inet6 ::1 prefixlen 128
> inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
> ndis0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
> ether 00:0e:35:1f:df:57
> media: IEEE 802.11 Wireless Ethernet autoselect
> status: no carrier
> ssid ""
> channel -1 authmode OPEN powersavemode OFF powersavesleep 100
> wepmode OFF weptxkey 1
>
> Next I did:
>
> wicontrol -i ndis0 -l
> output: 0 stations:
>
> ifconfig ndis0 inet 192.168.0.5 netmask 255.255.255.0 ssid 5270-4
>
> Sometimes this would output:
> ifconfig: ioctl (SIOCAIFADDR): File exists
>
> Other times it would work. I think doing "ifconfig bge0 down" first
> helped.
>
> now the output from "ifconfig -a" looked like:
>
> bge0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
> options=1b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING>
> inet6 fe80::20e:a6ff:fec4:a0b1%bge0 prefixlen 64 scopeid 0x1
> inet 192.168.0.4 netmask 0xffffff00 broadcast 192.168.0.255
> ether 00:0e:a6:c4:a0:b1
> media: Ethernet autoselect (100baseTX <full-duplex>)
> status: active
> plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
> lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
> inet 127.0.0.1 netmask 0xff000000
> inet6 ::1 prefixlen 128
> inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
> ndis0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
> inet6 fe80::20e:35ff:fe1f:df57%ndis0 prefixlen 64 duplicated
> scopeid 0x4
> inet 192.168.0.5 netmask 0xffffff00 broadcast 192.168.0.255
> ether 00:0e:35:1f:df:57
> media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/54Mbps)
> status: associated
> ssid 5270-4 1:5270-4
> channel 6 authmode OPEN powersavemode OFF powersavesleep 100
> wepmode OFF weptxkey 1
>
> wicontrol -i ndis0 -l:
> 1 station:
> ap[0]:
> netname (SSID): [ 5270-4 ]
> BSSID: [ 00:0f:66:36:cb:e8 ]
> Channel: [ 6 ]
> Quality/Signal/Noise [signal]: [ 115 / 115 / 0 ]
> [dBm]: [ 115 / -34 / -149 ]
> BSS Beacon Interval [msec]: [ 0 ]
> Capinfo: [ ]
>
> Now I unplugged bge0 and successfully pinged 192.168.0.x addresses on the
> local LAN using the ndis0.
>
> So that's what successfully worked. Here's are some of the problems:
>
> Even with a defaultrouter entry in rc.conf, nothing outside the local LAN
> could be reached.
>
> Trying to loading the two ndis kernel modules from /boot/loader.conf
> wouldn't allow the system to boot.
>
> I hope that all makes sense.
>
> Joey
> _______________________________________________
> freebsd-hardware at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hardware
> To unsubscribe, send any mail to "freebsd-hardware-unsubscribe at freebsd.org"
I hope my previous post was somewhat understandable. ....posting at 4:30
isn't such a good idea.
So now it's after 6:00 and I'm replying to myself...
I've managed to get a the driver working. I can ping outside hosts.
What I did was disable everything to do with bge0 in rc.conf and when the
system booted I just did:
dhclient ndis0
(etc/dhclient.conf has: interface "ndis0" { media "ssid 5270-4"; })
and the modules were loaded automatically.
Putting:
ndis_load="YES"
if_ndis_load="YES"
if /boot/loader/conf fails with the following errors in /var/run/dmesg.boot
had:
Preloaded elf kernel "/boot/kernel/kernel" at 0xc0a5d000.
Preloaded elf module "/boot/kernel/if_ndis.ko" at 0xc0a5d1cc.
Preloaded elf module "/boot/kernel/ndis.ko" at 0xc0a5d278.
Preloaded elf module "/boot/kernel/wlan.ko" at 0xc0a5d324.
Preloaded elf module "/boot/kernel/rc4.ko" at 0xc0a5d3d0.
Preloaded elf module "/boot/kernel/acpi.ko" at 0xc0a5d478
ndis0: <Intel(R) PRO/Wireless 2200BG Network Connection> mem
0xff9ee000-0xff9eefff irq 11 at device 2.0 on pci2
ndis0: NDIS API version: 5.1
ndis0: NDIS ERROR: c00013a7 (unknown error)
ndis0: NDIS NUMERRORS: 2
ndis0: argptr: 0x4e4f4c41
ndis0: argptr: 0x2cf
ndis0: NDIS ERROR: c00013a7 (unknown error)
ndis0: NDIS NUMERRORS: 2
ndis0: argptr: 0x4e4f4c41
ndis0: argptr: 0x2cf
ndis0: NDIS ERROR: c00013a7 (unknown error)
ndis0: NDIS NUMERRORS: 2
ndis0: argptr: 0x4e4f4c41
ndis0: argptr: 0x2cf
ndis0: NDIS ERROR: c00013a7 (unknown error)
ndis0: NDIS NUMERRORS: 2
ndis0: argptr: 0x4e4f4c41
ndis0: argptr: 0x2cf
ndis0: NDIS ERROR: c00013a7 (unknown error)
ndis0: NDIS NUMERRORS: 2
ndis0: argptr: 0x4e4f4c41
ndis0: argptr: 0x2cf
ndis0: NDIS ERROR: c00013a7 (unknown error)
ndis0: NDIS NUMERRORS: 2
ndis0: argptr: 0x4e4f4c41
ndis0: argptr: 0x2cf
ndis0: NDIS ERROR: c00013a7 (unknown error)
ndis0: NDIS NUMERRORS: 2
ndis0: argptr: 0x4e4f4c41
ndis0: argptr: 0x2cf
ndis0: NDIS ERROR: c00013a7 (unknown error)
ndis0: NDIS NUMERRORS: 2
ndis0: argptr: 0x4e4f4c41
ndis0: argptr: 0x184
ndis0: NDIS ERROR: c000138d (unknown error)
ndis0: NDIS NUMERRORS: 0
ndis0: init handler failed
device_probe_and_attach: ndis0 attach returned 6
I'm also seeing the following errors after running dhclient although the
interface still get's an ip and everything seems to work:
ndis0: couldn't retrieve channel info: 19
ndis0: couldn't retrieve channel info: 19
ndis0: couldn't retrieve channel info: 19
ndis0: link up
Jul 18 05:34:01 karlsruhe kernel: ndis0: DAD detected duplicate IPv6 address
f780:0104::021e:32ff:fe2f:df27: NS in/out=1/1, NA in=0
Jul 18 05:34:01 karlsruhe kernel: ndis0: DAD complete for
f780:0104::021e:32ff:fe2f:df27 - duplicate found
Jul 18 05:34:01 karlsruhe kernel: ndis0: manual intervention required
Joey
More information about the freebsd-hardware
mailing list