
 ORiNOCO USB for Linux
 ---------------------

 Thanks for testing this.

 The code is not very pretty, but it has been reported to work with:
 
 	Compaq W200
	Compaq WL215

 Making it work the quick way:
 ----------------------------

	 $ make inkernel-firmware
	 $ make KERNEL_SRC=/path/to/my/kernel/source
	 $ su
	 # insmod driver/hermes.o
	 # insmod driver/orinoco.o
	 # insmod driver/orinoco_usb.o

	You should now have an wlan0 network device ready for use.
 
 Making it work the "real" way:
 -----------------------------

	$ make make orinoco_usb_fw.bin -C firmware
	$ make KERNEL_SRC=/path/to/my/kernel/source
	$ su
	# insmod driver/fwfs.o
	# mount -t fwfs fwfs /mnt
	# cp firmware/orinoco_usb_fw.bin /mnt/orinoco_ezusb_fw
	# insmod driver/hermes.o
	# insmod driver/orinoco.o
	# insmod driver/orinoco_usb.o
 
	You should now have an wlan0 network device ready for use.

 Interesting module parameters:
 -----------------------------

 - orinoco_usb.o: 
 	- force_unsupported:
		If set to '1', it has two effects: it will try to handle a
		device that has not been reported to work, and it will treat
		as unknown any device that is actually supposed to be
		supported.
	- watchdog_secs:
		The card some times gets a little stuck under heavy load, and
		setting this to a nonzero value can help. Read the source for
		a better explanation.
	- debug:
		Set to '1' to get lot's of debugging messages.

 - orinoco.o:
 	- orinoco_debug:
		Enables and disables debugging in orinoco.o code.
 
 Note on fxload:
 --------------

  Orinoco devices don't change identity upon firmware load, which means that
  fxload and the kernel driver would end up stepping on each other's toes. And
  even then, a byte has to be changed in the firmware depending on the device.

  If you know a clean way to overcome this situation, I really want to know,
  in the meanwhile, just forget about fxload.

 About fwfs:
 ----------

  fwfs is my proposal for a clean way to provide firmware to the kernel
  drivers from user-space. The idea was not very well accepted and I am working
  on an alternative, but for now fwfs is there and it works.

  If usage is quite simple, you mount fwfs somewhere and copy the appropriate
  firmware with the appropriate name within. And in orinoco_usb's current
  implementation, you just have to replug the card to use newly provided
  firmware.

  To get the thing going (in case you are not using inkernel-firmware):
	# mount -t fwfs fwfs /some_path
	# cp path_to_firmware /some_path/orinoco_ezusb_fw
	Plug the card.

  To test a different firmware (even if you are using inkernel-firmware):
  	# mount -t fwfs fwfs /some_path
	# cp path_to_other_firmware /some_path/orinoco_ezusb_fw
	Unplug and plug the card.

 Support for PCI/CS Orinoco variants:
 -----------------------------------

  My intention is making a driver that works with all PCI/CS/USB devices, and
  I believe that it does work with all of them, but since this is pretty alpha
  code it may crash your kernel and kill your dog :-).

 Contents:
 --------
 	driver/:
		The driver code.
	util/extractfw:
		Extracts the firmware from the Windows .sys file. It can be
		used to replace orinoco_usb_fw.h in the driver or to provide
		the firmware in binary form via fwfs.
	util/unzip-url.sh
		Extracts a file from a zip archive stored in a remote server
		without downloading the whole archive.
	hotplug/:
		Outdated hotplug support, not anymore pertinent.
	firmware/:
		Support for easily downloading of the firmware from some ftp
		site, like HermesAP does.
	
