Re: [RFC PATCH] USB: remove CONFIG_USB_DEVICEFS

From: Greg Kroah-Hartman
Date: Fri May 25 2012 - 03:17:17 EST


On Fri, May 25, 2012 at 03:06:33PM +0800, Jeff Chua wrote:
> On Fri, May 25, 2012 at 2:01 PM, Greg Kroah-Hartman
> <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> > On Fri, May 25, 2012 at 01:48:06PM +0800, Jeff Chua wrote:
> >> On Fri, May 25, 2012 at 5:52 AM, Greg Kroah-Hartman
> >> <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> >> > On Thu, May 24, 2012 at 11:55:16PM +0800, Jeff Chua wrote:
> >> >> On Thu, Apr 26, 2012 at 11:12 PM, Greg Kroah-Hartman
> >> >> <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> >> >> > On Thu, Apr 26, 2012 at 11:06:45AM -0400, Alan Stern wrote:
> >> >> >> On Wed, 25 Apr 2012, Greg Kroah-Hartman wrote:
> >> >> >>
> >> >> >> > This option has been deprecated for many years now, and no userspace
> >> >> >> > tools use it anymore, so it should be safe to finally remove it.
> >> >> >> >
> >> >> >> > Reported-by: Kay Sievers <kay@xxxxxxxx>
> >> >> >> > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> >> >> >> >
> >> >> >> > Anyone object to me queuing this up for the 3.5 kernel release?
> >> >> >>
> >> >> >> I'm not sure about this.  There are a few systems still floating around
> >> >> >> that don't use udev; on those systems /proc/bus/usb is the only way for
> >> >> >> user programs to control USB devices.  Admittedly, I have no idea
> >> >> >> whether any such systems will be using 3.5 or later kernels...
> >> >> >
> >> >> > They don't have to use udev, they can use devtmpfs (which is what the
> >> >> > majority of embedded systems use today), or they can just use static
> >> >> > device nodes to get access to these devices, the char node is still
> >> >> > present, we aren't getting rid of them at all.
> >> >>
> >> >> Looks like vmware is breaking. Can't find any usb devices. I'm not using udev.
> >> >
> >> > vmware doesn't use usbfs, otherwise how would it be working on all of
> >> > the systems out there that haven't mounted usbfs for years?
> >> >
> >> > What exactly broke?  What version of vmware are you using, and is the
> >> > problem in the guest or host?
> >> >
> >> > We delayed other usbfs changes for years due to vmware "issues", it
> >> > wouldn't be the first time we've had to handle this :(
> >>
> >>
> >> VMWare workstation 8.0.3
> >>
> >> # vmware-usbarbitrator -f --info
> >> DICT       product.buildNumber = 703057
> >> DICT           product.version = 8.0.3
> >> DICT workstation.product.version = 8.0.3
> >> DICT              product.name = VMware Workstation
> >> VMware USB Arbitration Service Version 8.4.19
> >> USB: Unable to open "/proc/bus/usb/devices" (No such file or directory).
> >> No USB enumerator!
> > Ok, I have no idea what any of this means.
>
> I think the process "vmware-usbarbitrator" is trying to read
> proc/bus/usb/devices and can't find the file, so when I go to vmware,
> it can't find any usb devices.

You are running this program where, in the host or guest?

> > What host os are you using that does not have udev in it?
>
> No udev. My own vanilla kernel.

What distro. Why no udev? What is managing your /dev/ tree? A distro
package? A tarball? Something else?

> > What client os are you using that wants access to the USB ports that is
> > not working?  Is this the latest version of vmware (hint, I have no idea
> > what their version numbering is, you are going to have to look that up,
> > but I know they have fixed stuff like this in their newer releases.)
>
> It's the latest vmware workstation 8.0.3. The vmware "Removable
> Devices" tab is not showing any USB devices.

For the host or guest?

> > What release of the host os are you running?
>
> Linux-3.4.0 with commit 07acfc2a9349a8ce45b236c2624dad452001966b.

No, sorry, what distro?

> > If you aren't using udev, what are you using for your static device nodes?
>
> Usually, with /proc/bus/usb/devices present, vmware will just read
> from this file and I get to see the usb devices in vmware.

That's nice, but it's been depreciated for many years now. vmware
supports this to run on older systems that never changed. The usbfs
code turned out to be wrong as it couldn't handle user permissions
properly, which is why it has been removed.

Use /dev/usb/ device nodes intead. If you have a distro that has static
device nodes, just add them to the package that has those nodes, and you
should be fine. That will bring you into the mid 2000's as far as
device nodes go, I'm amazed that this hasn't been noticed before now.

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/