On Tue, Oct 04, 2011 at 05:19:13PM +0200, Jack Smith wrote: > On Tue, 2011-10-04 at 07:57 -0700, Greg KH wrote: > > If you want the host side of the MTP solution, that too is done in > > userspace, no kernel driver needed. I think it's in the gphoto library > > code that uses libusb to talk to the devices. I'd recommend digging > > around in that. > > > OK, so, can I ask why this is done in user space, instead of as a kernel > module ? Because it can :) > Also, why are some USB protocols are handled as drivers, e.g. Mass > Storage, while others are not ? Pardon me asking, but why the > inconsistency ? A USB driver is done in the kernel if it needs to provide the interface to userspace in a consistant manner like other types of devices of the same type. So, for a usb storage device, it needs to act like a "normal" block device, so the driver is in the kernel so that userspace doesn't need to know about what type of device this is (scsi, ata, ide, usb, etc.) Same goes for USB video cameras, they have a kernel driver that exposes to userspace a "normal" video device. But, for other devices that do not have a corrisponding "traditional" way to be exposed to userspace, like the MTP api describes), and there are no speed or performance benifits from being within the kernel, then those will be implemented as userspace drivers, using libusb or usbfs directly. > > Hope this helps, > > > Yes, very helpful, but: > > The thing is, I really want to work on device drivers. It seemed like > USB-MTP would be a good candidate since USB is clearly not going away, > and MTP seems fairly poorly supported within Linux (unless I'm missing > something). Look at the libgphoto library, I think all of the code you want to use is there. And yes, writing device drivers is fun, but we only do it if it is necessary. Sometimes making a driver actually makes things more complex than if we did it only as a userspace driver. Take this protocol for example, how would you export the MTP interface to userspace in a manner that would be easy for userspace programs to interact with it? thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html