Adding new device IDs to zd1211rw
Given that there are various different configurations of ZD1211 devices available (different ["en/users/Drivers/zd1211rw/RFtypes" RF types], ZD1211 vs ZD1211B, etc), we have not copied over the entire list of USB ID's from the vendor/vendor-based drivers. We require that each device ID is tested before we add it to zd1211rw.
If you attempt to use zd1211rw and dmesg doesn't indicate that zd1211rw is at all interested in the USB device you just plugged in, you probably need to add the ID to the driver.
If you have one of these currently-unsupported devices, we'd really appreciate it if you could make a small modification to the zd1211rw driver and then test your device with the new driver. The process is fairly simple.
Please note that zd1211rw has requirements such as userspace firmware and a very recent kernel version. See the ["en/users/Drivers/zd1211rw" driver homepage] for more info.
1. Modify the driver
Install and configure the kernel sources as you normally would, including the zd1211rw driver.
Open up drivers/net/wireless/zd1211rw/zd_usb.c in your favourite text editor. Towards the top of the file, you will see a table called usb_ids. The start of it looks like:
static struct usb_device_id usb_ids[] = { /* ZD1211 */ { USB_DEVICE(0x0ace, 0x1211), .driver_info = DEVICE_ZD1211 }, { USB_DEVICE(0x07b8, 0x6001), .driver_info = DEVICE_ZD1211 },
Look up the USB ID for your product (you can find this with lsusb). In this example we'll assume your device ID is 1111:2222. Add an entry similar to the one below to the table, so the start of the table now reads:
static struct usb_device_id usb_ids[] = { /* ZD1211 */ { USB_DEVICE(0x1111, 0x2222), .driver_info = DEVICE_ZD1211 }, { USB_DEVICE(0x0ace, 0x1211), .driver_info = DEVICE_ZD1211 }, { USB_DEVICE(0x07b8, 0x6001), .driver_info = DEVICE_ZD1211 },
The line that was added is highlighted in red. It is fairly self explanatory - you can how 1111:2222 was inserted into the table.
If you have a ZD1211B device then you must use DEVICE_ZD1211B instead of DEVICE_ZD1211.
The order of entries in the table does not matter. It does not matter if you create a ZD1211B entry in the section labelled