EmbeddedRelated.com
Forums
The 2024 Embedded Online Conference

Usage of USB drivers -Reg

Started by rama subrahmanyam July 5, 2009
Hi,

Iam new to the USB drivers in Linux. I don't know how to test my USB driver.. What is the starting point for USB drivers?

Actually I want to write driver for WiFi USB dongle.

Iam following the O'Reilly book for Linux device drivers for USB drivers.

With regards,
Bh.Subrahmanyam.

Love Cricket? Check out live scores, photos, video highlights and more. Click here http://cricket.yahoo.com
Hi,

> What is the starting point for USB drivers?

The question is a bit vague, but I assume you mean you're familiar with
the Kernel otherwise.
There's _tons_ of stuff out there, but I found it first was a bit hard
to tell which documentation is better (and which book to get). You
seemed to imply you're comfortable with that.

I found that a (seemingly) decent way to learn about kernel modules,
specific for WiFi and esp. USB based (I did SDIO too), is to dive in at
the deep end.
This meant finding example source and get the driver working.
I still had 2 old Digimate USB WiFi adapters around somewhere, so I used
them. They used the (older) very common Zydas ZD1201 chipset.
(Studying the source would be useful in any case IMO)

I got the source here :
http://linux-lc100020.sourceforge.net/

It was quite easy to build the driver module from the source and expand
it a bit.
Plenty of good links on related stuff like the firmware download setup
etc. etc.
Chances are your USB device has a Zydas in it. The ZD1211 for example is
in the kernel source.

A tip in case you go this way too :
My device wasn't a "standard" one. I simply added its vid/pid to the
source in zd1201.c and then it enumerated.
You might find a similar struct in your case :

static struct usb_device_id zd1201_table[] = {
{USB_DEVICE(0x0586, 0x3400)}, /* Peabird Wireless USB Adapter */
{USB_DEVICE(0x0ace, 0x1201)}, /* ZyDAS ZD1201 Wireless USB Adapter */
ADDED ==> {USB_DEVICE(0x2001, 0x3900)}, /* my Digimate (D-link Corp
ZD1201 based 802.11b USB Adapter */
{USB_DEVICE(0x050d, 0x6051)}, /* Belkin F5D6051 usb adapter */
{USB_DEVICE(0x0db0, 0x6823)}, /* MSI UB11B usb adapter */
{USB_DEVICE(0x1044, 0x8005)}, /* GIGABYTE GN-WLBZ201 usb adapter */
{}
};

As you can see, turned out my "no brand" adapter was actually a
D-link :-) :-)
I'm actually about to rebuild it for uClinux since I've just recently
done a uClinux port to the Olimex SAM9-L9260 board.

Have fun !

On Sun, 2009-07-05 at 19:43 +0530, rama subrahmanyam wrote:
> Hi,
>
> Iam new to the USB drivers in Linux. I don't know how to test my USB
> driver. What is the starting point for USB drivers?
>
> Actually I want to write driver for WiFi USB dongle.
>
> Iam following the O'Reilly book for Linux device drivers for USB
> drivers.
>
> With regards,
> Bh.Subrahmanyam.
>
> ______________________________________________________________________
> See the Web's breaking stories, chosen by people like you. Check out
> Yahoo! Buzz.
--
Best regards,
Kris


The 2024 Embedded Online Conference