From: Olivier Galibert <galibert@pobox.com>
To: Greg KH <greg@kroah.com>
Cc: linux-kernel@vger.kernel.org
Subject: Device enumeration (was Re: CD writing in future Linux (stirring up a hornets' nest))
Date: Mon, 13 Feb 2006 20:53:22 +0100 [thread overview]
Message-ID: <20060213195322.GB89006@dspnet.fr.eu.org> (raw)
In-Reply-To: <20060213175046.GA20952@kroah.com>
On Mon, Feb 13, 2006 at 09:50:46AM -0800, Greg KH wrote:
> On Mon, Feb 13, 2006 at 05:49:11PM +0100, Olivier Galibert wrote:
> > You mean root is mandatory to talk with devices, whatever they are?
>
> Not at all. You only have to be root to create a device node, nothing
> new there.
Ok, since I don't think you're being deliberately dense, please pick
up your beverage of choice in order to clear up your head and let's
start again calmly.
Problem: finding and talking to all the devices which have capability
<x>, as long as the system administrator allows.
Examples of <x> can be:
- Maxgate hard drive I can do firmware upgrades on
- Motokia phone I can exchange data with
- CD/DVD drive, with or without writing capabilities
The hard drive can be ide, sata or in a usb enclosure. The phone can
be connected through serial-over-usb or serial-over-bluetooth, etc.
At that point, we get several answers:
1- You do not need to do device enumeration, the user has to know the
devices names, period.
2- Hal knows it, ask him
3- Udev knows it, ask him
4- sysfs has all the information you need, just read it
Answer 1 gets a little tiring after a while. Usability starts by not
asking the user things you can know automatically.
Answer 2 is a little annoying. Hal/dbus are not at 1.0 at that point
yet, especially Hal. The constraints they put on programs and
especially on libraries can be a little hard to swallow, mandatory
glib for a start. It's a little too much for such low-level needs.
OTOH, it has the advantage of being able to tell you dynamically of
new devices being connected.
Answer 3 is even more annoying. Udev is not very good at backwards
compatibility (udevinfo -d of fedora core 3, i.e. udev-039, is
udevinfo -e in later versions for instance). Udev is obviously not
mandatory, and may be replaced in two years or less (remember
/sbin/hotplug's fate?). And frankly, should programs that just want
to find devices have to know about the program-of-the-day for device
node creation? It also has the problem of requiring a
fork()+exec()+output parsing, which from a library context can be
annoying at best.
Answer 4 would be very nice if it was correct. sysfs is pretty much
mandatory at that point, and modulo some fixable incompleteness
provides all the capability information and model names and everything
needed to find the useful devices. What it does not provide is the
mapping between a device as found in sysfs, and a device node you can
open to talk to the device. You get the major/minor, which allows you
to create a temporary device node iff you're root. Or you can scan
all the nodes in /dev to find the one to open, which is kinda
ridiculous and inefficient. Or you have to go back to udev/hal to ask
for the sysfs node/device node path mapping, and then why use sysfs in
the first place.
At that point, sysfs would be the best choice for device enumeration
from a user program, from a point of view of resilience to userspace
fad changes and simplicity/weight of code. Except that you can't use
it for that. That's annoying.
OG.
next prev parent reply other threads:[~2006-02-13 19:53 UTC|newest]
Thread overview: 177+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-01-25 3:23 CD writing in future Linux (stirring up a hornets' nest) Albert Cahalan
2006-01-25 14:26 ` Jan Engelhardt
2006-01-25 14:45 ` Jens Axboe
2006-01-25 15:13 ` Jan Engelhardt
2006-01-25 15:30 ` Jens Axboe
2006-01-25 17:03 ` Joerg Schilling
2006-01-25 17:11 ` Matthias Andree
2006-01-25 17:18 ` grundig
2006-01-25 17:31 ` Jens Axboe
2006-01-25 18:22 ` Matthias Andree
2006-01-25 18:25 ` Jens Axboe
2006-01-25 23:14 ` Matthias Andree
2006-01-26 1:13 ` grundig
2006-01-26 8:23 ` Matthias Andree
2006-01-26 13:56 ` Joerg Schilling
2006-01-26 18:47 ` Jan Engelhardt
2006-01-30 21:58 ` Bill Davidsen
2006-01-26 13:41 ` Joerg Schilling
2006-01-26 0:36 ` Nix
2006-01-26 13:39 ` Joerg Schilling
2006-02-10 21:06 ` Bill Davidsen
[not found] ` <20060210184241.35332e78.seanlkml@sympatico.ca>
2006-02-10 23:42 ` sean
2006-02-10 23:51 ` Christian Neumair
2006-02-13 13:24 ` Joerg Schilling
2006-02-13 13:55 ` Martin Mares
2006-02-13 15:17 ` Joerg Schilling
2006-02-18 13:47 ` Bill Davidsen
2006-02-19 1:10 ` D. Hazelton
2006-02-19 9:20 ` Matthias Andree
2006-02-20 1:53 ` D. Hazelton
2006-02-20 16:41 ` Joerg Schilling
2006-02-20 18:40 ` D. Hazelton
2006-02-21 10:08 ` Joerg Schilling
2006-02-21 10:20 ` Matthias Andree
2006-02-21 4:11 ` D. Hazelton
2006-02-21 10:36 ` Joerg Schilling
2006-02-24 19:46 ` Christian Neumair
2006-02-27 11:32 ` Joerg Schilling
2006-02-20 16:05 ` Joerg Schilling
2006-02-20 18:53 ` D. Hazelton
2006-02-20 22:30 ` Martin Schlemmer
2006-02-21 8:32 ` Jens Axboe
2006-02-21 10:19 ` Joerg Schilling
2006-02-21 10:23 ` Jens Axboe
2006-02-13 14:07 ` jerome lacoste
2006-02-13 15:26 ` Joerg Schilling
2006-02-13 15:42 ` jerome lacoste
2006-02-13 16:43 ` Jan Engelhardt
2006-02-13 17:27 ` Luke-Jr
2006-02-14 8:11 ` Jan Engelhardt
2006-02-14 0:01 ` D. Hazelton
2006-02-14 13:59 ` Joerg Schilling
2006-02-10 23:56 ` Greg KH
2006-02-12 12:04 ` Olivier Galibert
2006-02-12 16:46 ` Greg KH
2006-02-12 21:14 ` Olivier Galibert
2006-02-12 21:49 ` Krzysztof Halasa
2006-02-13 6:24 ` Greg KH
2006-02-13 16:49 ` Olivier Galibert
2006-02-13 17:50 ` Greg KH
2006-02-13 19:53 ` Olivier Galibert [this message]
2006-02-14 5:23 ` Device enumeration (was Re: CD writing in future Linux (stirring up a hornets' nest)) Andrew James Wade
2006-02-14 10:40 ` Olivier Galibert
2006-02-14 22:24 ` Greg KH
2006-02-14 23:00 ` Olivier Galibert
2006-02-14 23:45 ` Greg KH
2006-02-15 15:01 ` Olivier Galibert
2006-02-14 22:32 ` Rob Landley
2006-02-14 23:17 ` Olivier Galibert
2006-02-15 0:24 ` Rob Landley
2006-02-15 0:54 ` Greg KH
2006-02-15 3:18 ` Rob Landley
2006-02-15 16:55 ` Olivier Galibert
2006-02-15 18:19 ` Rob Landley
2006-02-14 23:32 ` Olivier Galibert
2006-02-15 1:50 ` Rob Landley
2006-02-14 23:47 ` Greg KH
2006-02-15 2:07 ` Rob Landley
2006-02-15 13:42 ` Andrew James Wade
2006-02-15 14:54 ` Olivier Galibert
2006-02-14 11:53 ` Michael Tokarev
2006-02-13 5:01 ` CD writing in future Linux (stirring up a hornets' nest) Daniel Barkalow
2006-02-13 6:21 ` Greg KH
2006-02-13 8:05 ` Daniel Barkalow
2006-02-13 17:51 ` Greg KH
2006-02-13 18:03 ` Dmitry Torokhov
2006-02-13 19:09 ` Daniel Barkalow
2006-02-17 21:35 ` Bill Davidsen
2006-02-18 0:02 ` D. Hazelton
2006-02-18 16:56 ` Bill Davidsen
2006-02-19 0:29 ` D. Hazelton
2006-02-18 0:35 ` Greg KH
2006-02-18 12:06 ` Christoph Hellwig
2006-02-18 13:37 ` Martin Michlmayr
2006-02-18 13:52 ` Christoph Hellwig
2006-02-19 12:04 ` Jens Axboe
2006-02-18 17:15 ` Gene Heskett
2006-02-19 0:41 ` D. Hazelton
2006-02-19 5:44 ` Gene Heskett
2006-02-19 9:27 ` Matthias Andree
2006-02-27 20:23 ` Bill Davidsen
2006-02-19 18:50 ` Daniel Barkalow
2006-02-18 18:36 ` Chris Adams
2006-02-19 1:05 ` D. Hazelton
2006-02-27 20:24 ` Bill Davidsen
2006-02-27 21:21 ` Chris Adams
2006-02-27 21:47 ` D. Hazelton
2006-02-27 22:30 ` Peter Gordon
2006-02-27 22:24 ` D. Hazelton
2006-02-28 0:44 ` Sam Vilain
2006-02-13 13:26 ` Joerg Schilling
2006-02-13 15:49 ` Greg KH
2006-02-14 18:59 ` Joerg Schilling
2006-02-14 19:53 ` Matthias Andree
2006-02-14 19:58 ` Joerg Schilling
2006-02-14 20:25 ` Matthias Andree
2006-02-14 22:35 ` D. Hazelton
2006-02-14 22:32 ` D. Hazelton
2006-02-14 18:59 ` Olivier Galibert
2006-02-14 19:01 ` Bill Davidsen
2006-02-14 22:33 ` Nix
2006-02-15 15:44 ` Jan Engelhardt
2006-02-15 16:40 ` Olivier Galibert
2006-02-15 17:07 ` Greg KH
2006-02-13 22:14 ` Nix
2006-02-14 0:03 ` D. Hazelton
2006-02-14 0:32 ` Nix
2006-02-14 9:22 ` Matthias Andree
2006-02-14 18:09 ` Jan Engelhardt
2006-02-14 18:41 ` Olivier Galibert
2006-02-17 15:36 ` Jan Engelhardt
2006-02-14 11:27 ` Joerg Schilling
2006-02-14 22:30 ` Greg KH
2006-02-15 0:43 ` Matthias Andree
2006-02-15 5:20 ` Greg KH
2006-02-16 12:01 ` Matthias Andree
2006-02-16 16:51 ` Randy.Dunlap
2006-02-16 18:03 ` Greg KH
2006-02-14 22:40 ` Nix
2006-02-16 12:09 ` Joerg Schilling
2006-02-16 12:36 ` Martin Mares
2006-02-17 0:38 ` Nix
[not found] ` <43F746B8.6080607@tmr.com>
2006-02-18 21:04 ` Martin Mares
2006-02-18 22:00 ` Ondrej Zary
2006-02-16 12:55 ` Marc Koschewski
2006-02-13 12:11 ` Joerg Schilling
[not found] ` <515e525f0602130446s1091f09ande10910f65a0f5f0@mail.gmail.com>
2006-02-13 15:12 ` Joerg Schilling
2006-02-13 16:40 ` Jan Engelhardt
2006-02-13 23:24 ` D. Hazelton
2006-02-14 13:55 ` Joerg Schilling
2006-02-14 21:59 ` D. Hazelton
[not found] ` <43F74884.50904@tmr.com>
2006-02-18 20:00 ` Nix
2006-01-26 10:11 ` Joerg Schilling
2006-01-25 19:04 ` Olivier Galibert
2006-01-26 9:38 ` Joerg Schilling
2006-01-26 9:45 ` Lee Revell
2006-01-26 13:58 ` Joerg Schilling
2006-01-26 14:09 ` Nick Piggin
2006-01-26 14:32 ` Joerg Schilling
2006-01-26 15:16 ` Nick Piggin
2006-01-26 16:04 ` Matthias Andree
2006-01-26 15:38 ` grundig
2006-01-25 19:00 ` Tomasz Torcz
2006-01-26 10:25 ` Joerg Schilling
2006-01-26 10:56 ` Tomasz Torcz
2006-01-26 14:11 ` Joerg Schilling
2006-01-25 22:01 ` jerome lacoste
2006-01-26 12:13 ` Joerg Schilling
2006-01-26 12:39 ` Martin Mares
2006-01-26 14:14 ` Joerg Schilling
2006-01-26 20:42 ` Jan Engelhardt
2006-01-27 8:00 ` Jens Axboe
2006-01-30 22:52 ` Bill Davidsen
2006-01-31 2:04 ` Kyle Moffett
2006-02-16 16:20 ` Bill Davidsen
2006-02-16 17:45 ` Olivier Galibert
2006-01-25 17:10 ` are added/removed - which
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=20060213195322.GB89006@dspnet.fr.eu.org \
--to=galibert@pobox.com \
--cc=greg@kroah.com \
--cc=linux-kernel@vger.kernel.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
all inboxes | Powered by JetHome®