public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@suse.de>
To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Linus Torvalds <torvalds@osdl.org>, Andrew Morton <akpm@osdl.org>,
	linux-kernel@vger.kernel.org, greg@kroah.com
Subject: Re: [GIT PATCH] Remove devfs from 2.6.17
Date: Sun, 18 Jun 2006 20:22:59 -0700	[thread overview]
Message-ID: <20060619032259.GB4651@suse.de> (raw)
In-Reply-To: <20060618233508.GH4744@bouh.residence.ens-lyon.fr>

On Mon, Jun 19, 2006 at 01:35:08AM +0200, Samuel Thibault wrote:
> Hi,
> 
> Greg KH, le Sun 18 Jun 2006 16:12:04 -0700, a ?crit :
> > On Mon, Jun 19, 2006 at 01:00:41AM +0200, Samuel Thibault wrote:
> > > - With udev, this just cannot work. As explained in an earlier thread,
> > >   even using a special filesystem that would report the opening attempt
> > >   to udevd wouldn't work fine since udevd takes time for creating the
> > >   device, and hence the original program needs to be notified ; this
> > >   becomes racy.
> > > 
> > > So what is the correct way to do it? I can see two approaches:
> > 
> > You forgot:
> >   - use a static /dev if you want this.
> > No one is forcing you to use udev :)
> 
> I can't choose the preference of the users of my program.
> 
> > > Neither solution looks good to me... Just opening /dev/input/uinput
> > > should be sufficient, and udev doesn't let that for now.
> > 
> > No, just do what the distros that use udev do today, load the needed
> > modules at boot time, based on the hardware that is present in the
> > system.  This should work just fine for the uinput driver,
> 
> No hardware correspond to the uinput driver.

I'm not familiar with the uinput driver, but you might want to look at
how all of the other input drivers are autoloaded by udev based on
module aliases and see if that will work for you too.

Or just tell your users to make sure that they have the uinput driver
loaded, and look into the distro's documentation for how to have it
automatically loaded at boot time (they all provide this functionality
for modules that don't have a hardware backing device.)

> > and if not, simply add it to the list of modules that need to be
> > loaded every boot (each distro has a different place to put this
> > list), and you should be fine.
> 
> I can't ask the users of my program to do that either (actually, they
> can't even do this, since they need uinput for just being able to type
> things on the console...)

I'm not aware of what your program is, but why not do it for them in
your program startup logic (yes, it requires root access, but that's a
requirement).

> > Please realize that the method of loading a module based on the device
> > node number is very restrictive, and only works for a small minority of
> > drivers.
> 
> Agreed. But here, what is best? To explicitely load a "uinput" module or
> to explicitely open "/dev/input/uinput" ?

Well as trying to open /dev/input/uinput will not cause anything to load
anymore (due to devfs not doing this, and udev systems not allowing this
to happen), I suggest loading the uinput module.

> > > The same situation holds for other virtual devices (loop, snd-seq-dummy,
> > > ...).
> > 
> > Yes, look at how the distros do this today for loop, they merely load it
> > at boot time and everyone's happy.
> 
> So distributions should load every possible virtual device?

Within reason, it seems like they do at times.

> In the debian case, it doesn't, but udev has a links.conf script that
> creates a /dev/loop/0 entry, which losetup can open when looking for
> loop block devices, and hence the loop module gets auto-loaded. This is
> the behavior I'd expect.

Perhaps you can just create a uinput script that does this.

Or just add that device node to the /lib/udev/devices/ directory, and it
will be restored at every boot, then when your user opens it, the proper
module will be automatically loaded.  That is what that directory is
there for (as well as for device nodes that don't play nice with udev or
can't for whatever reason.)

> > And this whole thing has nothing to do with devfs, as you stated above
> > :)
> 
> Ok, but devfs had let me some hope that it would work, and udev doesn't
> so much (the abovementioned links.conf file is considered hacky).

As devfs has not been maintained in over 4 years, I don't see how not
removing it will help this situation out at all for you, sorry.

I suggest taking this topic to the linux-hotplug-devel mailing list if
you still have issues loading the uinput module at boot time for your
systems that run udev.

thanks,

greg k-h

  parent reply	other threads:[~2006-06-19  3:25 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-18 22:13 [GIT PATCH] Remove devfs from 2.6.17 Greg KH
2006-06-18 22:45 ` Michal Piotrowski
2006-06-18 23:06   ` Greg KH
2006-06-18 23:00 ` Samuel Thibault
2006-06-18 23:12   ` Greg KH
2006-06-18 23:35     ` Samuel Thibault
2006-06-19  0:48       ` Nick Piggin
2006-06-19  3:22       ` Greg KH [this message]
2006-06-19  8:23         ` Samuel Thibault
2006-06-19  9:30           ` Marcel Holtmann
2006-06-19  9:39             ` Samuel Thibault
2006-06-19 10:22               ` Marcel Holtmann
2006-06-19  0:54   ` H. Peter Anvin
2006-06-19  1:17     ` Joshua Hudson
2006-06-19  1:35       ` H. Peter Anvin
2006-06-19  5:55         ` Will Dyson
2006-06-19  7:14           ` Alexander E. Patrakov
2006-06-19 22:14             ` Daniel Barkalow
2006-06-19 22:17               ` H. Peter Anvin
2006-06-19  3:15     ` Greg KH
2006-06-19  8:52       ` Samuel Thibault

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060619032259.GB4651@suse.de \
    --to=gregkh@suse.de \
    --cc=akpm@osdl.org \
    --cc=greg@kroah.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=samuel.thibault@ens-lyon.org \
    --cc=torvalds@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox