2012-06-20 09:39:25

by Vishal Nandanwar

[permalink] [raw]
Subject: Need help regarding the USB mass storage driver

Hi,

I am working on a USB mass storage driver for a pen drive. I have done
coding as per the USB_skeleton.c file provided in Linux 3.2 source
code. I could assign the driver to pen drive when pen driver is
inserted in USB connector.

I am stuck in data transfer, could not do the data transfer. During
enumeration interface sub class is 06 i.e. SCSI transparent command
set. Please find my questions below.

1. Where are these SCSI transparent command set documented?
2. Is there any sample code(apart from Linux source) which describes
the SCSI transparent command set and mass storage driver?
3. When I connect the pen drive and associate my driver, pop up
doesn't appear on the screen for this device. but when default
driver(usb_storage) is used this pop up does appear. What I need to do
here?

Any thing other I need to take care here?

Vishal N


2012-06-20 10:21:05

by Thomas Petazzoni

[permalink] [raw]
Subject: Re: Need help regarding the USB mass storage driver

Le Wed, 20 Jun 2012 15:09:20 +0530,
Vishal Nandanwar <[email protected]> a écrit :

> I am working on a USB mass storage driver for a pen drive. I have done
> coding as per the USB_skeleton.c file provided in Linux 3.2 source
> code. I could assign the driver to pen drive when pen driver is
> inserted in USB connector.

Why do you need to write a new driver?

Normally, all the USB storage devices conform to the USB Mass Storage
specification, which means that the usb-storage driver of the Linux
kernel can be used for them. There is no need for a separate driver for
each USB storage device, unless of course it doesn't comply with the
USB Mass Storage specification.

Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

2012-06-20 15:05:10

by Alan Stern

[permalink] [raw]
Subject: Re: Need help regarding the USB mass storage driver

On Wed, 20 Jun 2012, Vishal Nandanwar wrote:

> Hi,
>
> I am working on a USB mass storage driver for a pen drive. I have done
> coding as per the USB_skeleton.c file provided in Linux 3.2 source
> code. I could assign the driver to pen drive when pen driver is
> inserted in USB connector.

Do you understand that the usb_skeleton.c file is totally inappropriate
as a model for a mass-storage driver?

> I am stuck in data transfer, could not do the data transfer. During
> enumeration interface sub class is 06 i.e. SCSI transparent command
> set. Please find my questions below.
>
> 1. Where are these SCSI transparent command set documented?

Google is your friend. But see the answer to your next question...

> 2. Is there any sample code(apart from Linux source) which describes
> the SCSI transparent command set and mass storage driver?

There is no such thing as the SCSI transparent command set. "SCSI
transparent" means "use whatever command set the relevant SCSI standard
specifies".

There is non-Linux source code for mass-storage drivers in other
open-source operating systems.

> 3. When I connect the pen drive and associate my driver, pop up
> doesn't appear on the screen for this device. but when default
> driver(usb_storage) is used this pop up does appear. What I need to do
> here?

Fix your driver. It's not possible to give a more complete answer
without further information.

Alan Stern