Re: usbfs, claiming entire usb devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 4 May 2009, Steve Calfee wrote:

> As I see it this is the problem.
> 
> We already have a good user space solution for handling driver loading
> and handling devices -- udev.
> 
> The problem is that we have another scheme for allocating drivers to
> devices via driver probe routines. When a new device is discovered the
> kernel tries to allocate devices to drivers by a first registered gets
> first claim on a device. This is done independently of udev. Having
> this kernel based method of device to driver mapping makes sense if
> there is no udev and a module is already loaded -- known devices get
> allocated to drivers.
> 
> The conflict is painful with the many broken (Windows tested only)
> devices. Perfectly USB legal bus sequences hang/kill many devices. If
> an emulator system (qemu, vmware,...) has an OS driver that knows
> exactly how to coddle the broken device, there is currently no known
> way to not have the kernel NOT break the device (doing perfectly legal
> USB transfers).

Are broken devices really the issue here?  Sure, it would be nice to be 
able to prevent kernel drivers from sending these devices requests they 
can't handle.  But I think there may be more to it than just that.

> The only solution I see is to have the USB probing stuff be modal -
> either the kernel is in control of everything or udev is. I hate modal
> interfaces, it is a pain to determine which mode a system is in,
> double the debug issues etc, but I see no alternative for the
> emulation, remote USB (usb-ip) problems.
> 
> When udev is in charge it should handle driver installation and device
> probing. When the kernel is in charge udev can do as it does now, but
> the kernel will handle probing. This allows embedded systems and boot
> time device handling to go on as now.
> 
> Ideally, multiple (root level emulator created) udev scripts could
> simultaneously handle multiple "owners" of devices, both locally and
> (multiple) virtual operating systems.

Why does udev have to get involved?  It doesn't know what other 
programs (emulators etc.) might be running at any given time.

Alan Stern

--
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

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux