Re: devfs.conf / decfs.rules - Welches Gerät eintragen fuer gphoto2 Zugriff auf Kamera

From: Bernd Walter <ticso(at)cicely7.cicely.de>
Date: Tue, 21 Feb 2012 02:39:15 +0100

On Mon, Feb 20, 2012 at 09:22:11PM +0100, Heino Tiedemann wrote:
> Marc Santhoff <M.Santhoff(at)web.de> wrote:
>
> > Am Montag, den 20.02.2012, 18:14 +0100 schrieb Heino Tiedemann:
> >> Nun ich habe 4 Symlinks in /dev
> >> ugen0.1 -> usb/0.1.0
> >> ugen1.1 -> usb/1.1.0
> >> ugen2.1 -> usb/2.1.0
> >> ugen3.1 -> usb/3.1.0
>
>
> >
> > Kommt auf Dich an. Wenn Du immer den gleichen Port benutzt, also immer
> > die Kamera an der selben Buchse anschließt, benutzt Du genau das
> > ugen-Gerät, dessen Kennung beim Anschließen der Kamera auf der Konsole
> > oder im syslog gemeldet wird.
>
> Okay, die Frag ist dann aber:
>
> trage ich das so ein (1) oder so (2):
>
> (1) own 0.1.0 root:cdrecorder
> ^^^^^
>
> (2) own ugen0.1 root:cdrecorder
>
> > $ cat /etc/devfs.rules
> > [localrules=1]
> > ...
> > # ugen für jedermann in operator
> > # ms, 15.04.2009
> > add path 'ugen*' mode 660 group operator
> > # ttys an ucom* auch - ms, 14.10.2009
> > add path 'cuaU*' mode 660 group operator
> > ...
> >
> > Solange nichts dagegen spricht, also andere Geräte an ugen, die Du auf
> > keinen Fall benutzen darfst/möchtest, paßt das so. Die
> > Gruppenzugehörigkeit mußt Du natürlich anpassen.
>
> Danke!
>
> So ganz habe ich noch nich kapiert, warum ich nicht einfach die vier
> ugen geräte - siehe oben - in die devfs.conf eintrage. Die sind ja
> beim booten alle da (zumindest nach dem Booten).
>
> Diese vier /dev/ugen* habe ja erst mal nichts mit einer eingesteckten
> Kamera zu tun. Sie sind einfach da.

Genau - die genannten haben nichts mit der Kamera zu tun.
Das sind die Root-Hubs, aber nicht die angeschlossenen Geräte.
Da können durchaus auch ein paar mehr stehen:
[61]cicely13# ls -la /dev/ugen*
lrwxr-xr-x 1 root wheel 9 Dec 25 01:39 /dev/ugen0.1 -> usb/0.1.0
lrwxr-xr-x 1 root wheel 9 Dec 25 01:39 /dev/ugen1.1 -> usb/1.1.0
lrwxr-xr-x 1 root wheel 9 Dec 25 01:39 /dev/ugen2.1 -> usb/2.1.0
lrwxr-xr-x 1 root wheel 9 Dec 25 01:39 /dev/ugen3.1 -> usb/3.1.0
lrwxr-xr-x 1 root wheel 10 Feb 21 02:14 /dev/ugen3.10 -> usb/3.10.0
lrwxr-xr-x 1 root wheel 10 Dec 25 01:39 /dev/ugen3.11 -> usb/3.11.0
lrwxr-xr-x 1 root wheel 10 Dec 25 01:39 /dev/ugen3.12 -> usb/3.12.0
lrwxr-xr-x 1 root wheel 10 Dec 25 01:39 /dev/ugen3.13 -> usb/3.13.0
lrwxr-xr-x 1 root wheel 10 Dec 25 01:39 /dev/ugen3.14 -> usb/3.14.0
lrwxr-xr-x 1 root wheel 10 Dec 25 01:39 /dev/ugen3.15 -> usb/3.15.0
lrwxr-xr-x 1 root wheel 10 Dec 25 01:39 /dev/ugen3.16 -> usb/3.16.0
lrwxr-xr-x 1 root wheel 10 Dec 25 01:39 /dev/ugen3.17 -> usb/3.17.0
lrwxr-xr-x 1 root wheel 10 Dec 25 01:39 /dev/ugen3.18 -> usb/3.18.0
lrwxr-xr-x 1 root wheel 10 Feb 21 02:14 /dev/ugen3.19 -> usb/3.19.0
lrwxr-xr-x 1 root wheel 9 Dec 25 01:39 /dev/ugen3.2 -> usb/3.2.0
lrwxr-xr-x 1 root wheel 10 Feb 21 02:14 /dev/ugen3.20 -> usb/3.20.0
lrwxr-xr-x 1 root wheel 10 Feb 21 02:14 /dev/ugen3.21 -> usb/3.21.0
lrwxr-xr-x 1 root wheel 10 Feb 21 02:14 /dev/ugen3.22 -> usb/3.22.0
lrwxr-xr-x 1 root wheel 10 Feb 21 02:14 /dev/ugen3.23 -> usb/3.23.0
lrwxr-xr-x 1 root wheel 10 Feb 21 02:14 /dev/ugen3.24 -> usb/3.24.0
lrwxr-xr-x 1 root wheel 10 Feb 21 02:14 /dev/ugen3.25 -> usb/3.25.0
lrwxr-xr-x 1 root wheel 10 Feb 21 02:14 /dev/ugen3.26 -> usb/3.26.0
lrwxr-xr-x 1 root wheel 10 Feb 21 02:15 /dev/ugen3.27 -> usb/3.27.0
lrwxr-xr-x 1 root wheel 10 Feb 21 02:15 /dev/ugen3.28 -> usb/3.28.0
lrwxr-xr-x 1 root wheel 10 Feb 21 02:15 /dev/ugen3.29 -> usb/3.29.0
lrwxr-xr-x 1 root wheel 9 Dec 25 01:39 /dev/ugen3.3 -> usb/3.3.0
lrwxr-xr-x 1 root wheel 10 Feb 21 02:15 /dev/ugen3.30 -> usb/3.30.0
lrwxr-xr-x 1 root wheel 10 Feb 21 02:15 /dev/ugen3.31 -> usb/3.31.0
lrwxr-xr-x 1 root wheel 9 Dec 25 01:39 /dev/ugen3.4 -> usb/3.4.0
lrwxr-xr-x 1 root wheel 9 Dec 25 01:39 /dev/ugen3.5 -> usb/3.5.0
lrwxr-xr-x 1 root wheel 9 Dec 25 01:39 /dev/ugen3.6 -> usb/3.6.0
lrwxr-xr-x 1 root wheel 9 Dec 25 01:39 /dev/ugen3.7 -> usb/3.7.0
lrwxr-xr-x 1 root wheel 9 Dec 25 01:39 /dev/ugen3.8 -> usb/3.8.0
lrwxr-xr-x 1 root wheel 9 Dec 25 01:39 /dev/ugen3.9 -> usb/3.9.0

Die erste Zahl ist der Bus und die Zweite das Gerät.
ugen0.1 steht für Gerät 1 am Bus 0.
Das Gerät 1 ist immer der Root-Hub, also keineswegs deine Kamera:
[62]cicely13# usbconfig
ugen0.1: <UHCI root HUB Intel> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
ugen1.1: <OHCI root HUB NEC> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
ugen2.1: <OHCI root HUB NEC> at usbus2, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
ugen3.1: <EHCI root HUB NEC> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON
...

Die Geräteadressen werden der Reihe nach vergeben und sind daher nicht
immer gleich, außer dem Root-Hub, der ja prinzipbedingt immer als erster
gefunden wird - technisch ist der auch kein echtes USB-Gerät.
Z.B. habe ich am Bus 0 kein Gerät.
Wenn ich eines anklemme bekommt es die Adresse 2, das nächste die Adresse 3,
usw...
Wenn ich das Gerät mit Adresse 2 abziehe hat das andere Gerät immer noch die
Adresse 3.
Wenn ich das Gerät nun kurz raus und wieder reinstecke bekommt es aber
die inzwischen freie Adresse 2.
Ebenso kann ein reboot die Numerierung ändern.
Beispielsweise klemme ich zwei Geräte in einer anderen Reihenfolge an, als
die beim booten erfasst werden, dann ist die Reihenfolge anders.

Die in /dev sind aber nur ein Teil der Story.
[64]cicely13# ls -la /dev/usb/3.20.*
crw------- 1 root operator 0, 186 Feb 21 02:14 /dev/usb/3.20.0
crw------- 1 root operator 0, 188 Feb 21 02:14 /dev/usb/3.20.1
[64]cicely13# usbconfig -u 3 -a 20 dump_info
ugen3.20: <Modbus RS485 BWCT> at usbus3, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
Die 3. Zahl sthet für den Endpoint, wobei der gleichnummerierte
In/Out scheinbar zusammen fasst.
Das Gerät hat 3 Endpoints: Control, Bulk-Out, Bulk-In, letztere mit gleichem
Hauptindex, d.h. in und out liegen beide auf 3.20.1.
Der /dev/ugen* Link zeigt immer auf den Control-Endpoint, der für USB-Geräte
Pflicht ist.

-- 
B.Walter <bernd@bwct.de> http://www.bwct.de
Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm.
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Tue 21 Feb 2012 - 02:39:26 CET

search this site