Subject: Re: ray driver, Pro cards, and Windows
To: None <>
From: Atsushi Onoe <>
List: current-users
Date: 12/12/2000 12:00:28
Content-Type: Text/Plain; charset=us-ascii

> You need to update the firmware of the WaveLAN card for NetBSD also to 6.x.

You can find the firmware at following url:

	* You need run on Windows, and perhaps you will be requested to
	  update the Windows driver to ver 4.x.
	  I cannot exec netscape right now due to the emulation problem,
	  so that I cannot confirm detail information about drivers.

To confirm current version, run the attached program:
	% ./wi wi0 fd20
	fd20: 001f 0001 0006 0004

I guess 0006 is the major version and 0004 is the minor.


Atsushi Onoe

Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="wi.c"

#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <net/if.h>
#include <netinet/in.h>
#include <netinet/if_ether.h>
#ifdef __NetBSD__
#include <dev/pcmcia/if_wi_ieee.h>
#ifdef __FreeBSD__
#include <machine/if_wavelan_ieee.h>

#include <err.h>
#include <string.h>

main(int argc, char **argv)
	int s, i;
	struct ifreq ifr;
	struct wi_req wreq;
	struct region *reg;
	extern char *__progname;

	if (*argv && (strncmp(*argv, "wi", 2) == 0 || strncmp(*argv, "an", 2) == 0)) {
		strcpy(ifr.ifr_name, *argv);
	} else
		strcpy(ifr.ifr_name, "wi0");
	if (*argv == NULL)
		errx(1, "usage: %s [interface] rid", __progname);
	ifr.ifr_data = (caddr_t)&wreq;
	if ((s = socket(AF_INET, SOCK_DGRAM, 0)) == -1)
		err(1, "socket");
	memset(&wreq, 0, sizeof(wreq));
	wreq.wi_type = strtoul(*argv++, NULL, 16);
	wreq.wi_len = sizeof(wreq.wi_val) / 2 + 1;
	if (ioctl(s, SIOCGWAVELAN, &ifr) == -1)
		err(1, "%s: SIOCGWAVELAN", ifr.ifr_name);
	printf("%04x:", wreq.wi_type);
	for (i = 0; i < wreq.wi_len - 1; i++)
		printf(" %04x", wreq.wi_val[i]);