lkml.org 
[lkml]   [2006]   [Jun]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [GIT PATCH] Remove devfs from 2.6.17
Greg KH, le Sun 18 Jun 2006 15:13:43 -0700, a écrit :
> Since 2.6.13 came out, I have seen no complaints about the fact that
> devfs was not able to be enabled anymore,

There has been at least my complaint about udev not being able to
auto-load modules on /dev entry lookup (28th March 2006):

« Given a freshly booted linux box, hence uinput is not loaded (why
would it be, it doesn't drive any real hardware) ; what is the right
way(tm) for an application to have the uinput module loaded, so that it
can open /dev/input/uinput for emulating keypresses?

- With good-old static /dev, we could just open /dev/input/uinput
(installed by the distribution), and thanks to a
alias char-major-10-223 uinput
line somewhere in /etc/modprobe.d, uinput gets auto-loaded.

- With devfs, it doesn't look like it works (/dev/misc/uinput is not
present and opening it just like if it existed doesn't work). But I
read in archives that it could be feasible.

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

Using modprobe:
- try to use /dev/input/uinput ; if it succeeds, fine.
- else, if errno != ENOENT, fail
- else, (ENOENT)
- try to call `cat /proc/sys/kernel/modprobe` uinput
- try to use /dev/input/uinput again ; if it succeeds, fine
- else, assume that it really wasn't compiled, and hence fail.

Triggering auto-load by creating one's own node.
- try to use /dev/input/uinput ; if it suceeds, fine.
- else, if errno != ENOENT, fail
- else, (ENOENT)
- mknod /somewhere/safe/uinput c 10 223
- use /somewhere/safe/uinput ; if it succeeds, fine
- else, assume that it really wasn't compiled, and hence fail.
»

Neither solution looks good to me... Just opening /dev/input/uinput
should be sufficient, and udev doesn't let that for now.

The same situation holds for other virtual devices (loop, snd-seq-dummy,
...).

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

\
 
 \ /
  Last update: 2006-06-19 01:03    [W:0.151 / U:1.308 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site