Identifying your 802.11g device

There are roughly for kind of devices.

Existing devices

prism-based USB devices

netchip 2280 + prism PCI chip

Two months ago, all 802.11g wifi dongles were prism54-based, and covered by the development that happens here. Those were based on the following combo :

Although some of those PCI chips are fullmac-capable, it appears that the firmware loaded into all instances of this combo are softmac firmwares (that additionally include some code to interact with the net2280)

The communication protocol of those devices includes many idiosyncrasies meant to take care of the net2280.

Those are the devices the current driver focuses on.

newer prism54 dongles

Those devices got rid of the net2280 with a new generation of chips directly integrating the usb communication part (ISL3887, as the XH8196 driver seems to indicate).

They have a different firmware and the communication protocol is somewhat different (the core communication protocol is the same, though). Basically, the protocol is simpler, less verbose.

Basic support for them is lagging behind only by a little bit, due to my not having one. If you can spare one, please send it over ! If you can test and improve the support yourself, that's even better :)

ralink-based devices

You're in luck here, because ralink seems to cooperate, and an USB driver is in the works. See their website.

atheros (madwifi) devices

It seems they are coming (see netgear's website ; you bet i'll get one !) I only know the wg111t and wg111u.

how can you tell which kind of device you have ?

Please plugin your device, do a lsusb -vvv, check the device numbers and/or the endpoint configuration.

First generation prism54 devices
almost all devices (see in this driver file)

Their endpoint configuration will give you something like this with =lsusb -vvv= :

     bNumEndpoints          11
        bEndpointAddress     0x01  EP 1 OUT
        bEndpointAddress     0x81  EP 1 IN
        bEndpointAddress     0x02  EP 2 OUT
        bEndpointAddress     0x82  EP 2 IN
        bEndpointAddress     0x83  EP 3 IN
        bEndpointAddress     0x84  EP 4 IN
        bEndpointAddress     0x8d  EP 13 IN
        bEndpointAddress     0x0d  EP 13 OUT
        bEndpointAddress     0x8e  EP 14 IN
        bEndpointAddress     0x0e  EP 14 OUT
        bEndpointAddress     0x8f  EP 15 IN
Second generation prism54 devices
[0x0846:0x4240] (newer WG111), [0x0cde:0x0008] (Sagem XG703A) [0x0baf:0x0118] (USR rebranding of the WN4501)

There are many others ; refer to their endpoint configuration :

      Endpoint Descriptor:                   
        bLength                 7            
        bDescriptorType         5            
        bEndpointAddress     0x81  EP 1 IN   
        bmAttributes            2            
          Transfer Type            Bulk      
          Synch Type               none      
        wMaxPacketSize        512            
        bInterval               0            
      Endpoint Descriptor:                   
        bLength                 7            
        bDescriptorType         5            
        bEndpointAddress     0x01  EP 1 OUT  
        bmAttributes            2            
          Transfer Type            Bulk      
          Synch Type               none      
        wMaxPacketSize        512            
        bInterval               0            
      Endpoint Descriptor:                   
        bLength                 7            
        bDescriptorType         5            
        bEndpointAddress     0x82  EP 2 IN   
        bmAttributes            2            
          Transfer Type            Bulk      
          Synch Type               none      
        wMaxPacketSize        512            
        bInterval               0            
      Endpoint Descriptor:                   
        bLength                 7            
        bDescriptorType         5            
        bEndpointAddress     0x02  EP 2 OUT  
        bmAttributes            2            
          Transfer Type            Bulk      
          Synch Type               none      
        wMaxPacketSize        512            
        bInterval               0            
      Endpoint Descriptor:                   
        bLength                 7            
        bDescriptorType         5            
        bEndpointAddress     0x83  EP 3 IN   
        bmAttributes            3            
          Transfer Type            Interrupt 
          Synch Type               none      
        wMaxPacketSize         64            
        bInterval               1            
Ralink devices
[13b1:000d] (Linksys WUSB54G version 4)

Endpoint configuration unknown.

atheros devices
unknown