Hallo, ich versuche gerade mal wieder eine UDEV-Rule für ein bestimmtes Gerät zu schreiben. Von diesem Hersteller sind mehrere Geräte an diesem System, ich will die Rule aber nur für ein einziges...... lsusb sagt: Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 003: ID 0ac8:c44e Z-Star Microelectronics Corp. Bus 004 Device 002: ID 1dfb:0001 Bus 003 Device 002: ID 0451:2036 Texas Instruments, Inc. TUSB2036 Hub Bus 003 Device 003: ID 1dfb:0007 Bus 003 Device 004: ID 04cc:1521 ST-Ericsson USB 2.0 Hub Bus 003 Device 005: ID 1dfb:0003 Wie man sieht, gibts "1dfb" mehrmals, mich interessiert aber nur die ProductID "0007". Also hab ich eine Rule angelegt: SUBSYSTEM=="usb", ATTRS{idVendor}=="1dfb", ATTRS{idProduct}=="0007", RUN+="/bin/ln -s /dev/ttyUSB%n /dev/2a%n" Wenn ich jetzt neu starte und den Link /dev/2a0 kontrolliere: lrwxrwxrwx 1 root root 12 Feb 13 06:32 /dev/2a0 -> /dev/ttyUSB0 "udevadm info --query=all --name=/dev/ttyUSB0" zeigt aber: ID_MODEL_ID=0001 Er linkt also das erste Gerät, das er findet. Das ganze unter 11.4. Kann mir jemand sagen, was an meiner Rule falsch ist? Gruß Daniel -- Daniel Spannbauer Software Entwicklung marco Systemanalyse und Entwicklung GmbH Tel +49 8333 9233-27 Fax -11 Rechbergstr. 4 - 6, D 87727 Babenhausen Mobil +49 171 4033220 http://www.marco.de/ Email ds@marco.de Geschäftsführer Martin Reuter HRB 171775 Amtsgericht München -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
On Monday, 13 February 2012 12:40:58 Daniel Spannbauer wrote:
SUBSYSTEM=="usb", ATTRS{idVendor}=="1dfb", ATTRS{idProduct}=="0007", RUN+="/bin/ln -s /dev/ttyUSB%n /dev/2a%n" ... Kann mir jemand sagen, was an meiner Rule falsch ist?
nur so ein Gedanke, kann es sein, dass der Link vor der Ausführung der Regel schon existierte? In diesem Fall würde ln nämlich einen Fehler liefern. Möglicherweise hilft also RUN+="rm -f /dev/2a%n; /bin/ln -s /dev/ttyUSB%n /dev/2a%n" oder RUN+="/bin/ln -sf /dev/ttyUSB%n /dev/2a%n" Torsten Förtsch -- Need professional modperl support? Hire me! (http://foertsch.name) Like fantasy? http://kabatinte.net -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am Montag, 13. Februar 2012, 12:40:58 schrieb Daniel Spannbauer:
Hallo,
ich versuche gerade mal wieder eine UDEV-Rule für ein bestimmtes Gerät zu schreiben. Von diesem Hersteller sind mehrere Geräte an diesem System, ich will die Rule aber nur für ein einziges......
lsusb sagt:
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 003: ID 0ac8:c44e Z-Star Microelectronics Corp. Bus 004 Device 002: ID 1dfb:0001 Bus 003 Device 002: ID 0451:2036 Texas Instruments, Inc. TUSB2036 Hub Bus 003 Device 003: ID 1dfb:0007 Bus 003 Device 004: ID 04cc:1521 ST-Ericsson USB 2.0 Hub Bus 003 Device 005: ID 1dfb:0003
Wie man sieht, gibts "1dfb" mehrmals, mich interessiert aber nur die ProductID "0007".
Also hab ich eine Rule angelegt:
SUBSYSTEM=="usb", ATTRS{idVendor}=="1dfb", ATTRS{idProduct}=="0007", RUN+="/bin/ln -s /dev/ttyUSB%n /dev/2a%n"
Versuch mal nach der individuellen Seriennummer des Geräts abzufragen. Bei mir funktioniert so was hier sehr gut: SUBSYSTEMS=="usb", KERNEL=="s??1",\ ATTRS{serial}=="[Seriennummer]",\ SYMLINK+="[wie auch immer es erscheinen soll]",\ RUN+="/skript/[mein_skript]" Dank der Seriennummer kann ich USB-Sticks trotz identischer Baureihe einzeln ansprechen, und genau das willst du ja, wenn ich dich richtig verstehe. Die Seriennummer findest du mit lsusb -v oder mit udevadm info --query=all --name=/dev/[Gerätename] in der Variablen E: ID_SERIAL_SHORT=(...) Jürgen -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Versuch mal nach der individuellen Seriennummer des Geräts abzufragen. Bei mir funktioniert so was hier sehr gut:
SUBSYSTEMS=="usb", KERNEL=="s??1",\ ATTRS{serial}=="[Seriennummer]",\ SYMLINK+="[wie auch immer es erscheinen soll]",\ RUN+="/skript/[mein_skript]"
Dank der Seriennummer kann ich USB-Sticks trotz identischer Baureihe einzeln ansprechen, und genau das willst du ja, wenn ich dich richtig verstehe.
Die Seriennummer findest du mit lsusb -v oder mit
udevadm info --query=all --name=/dev/[Gerätename]
in der Variablen
E: ID_SERIAL_SHORT=(...)
Hallo, sorry, die SN hilft mir nicht weiter. Das Teil wird irgendwann in Serie ausgeliefert, es sind also verschiedene SNs unterwegs.... Gruß Daniel -- Daniel Spannbauer Software Entwicklung marco Systemanalyse und Entwicklung GmbH Tel +49 8333 9233-27 Fax -11 Rechbergstr. 4 - 6, D 87727 Babenhausen Mobil +49 171 4033220 http://www.marco.de/ Email ds@marco.de Geschäftsführer Martin Reuter HRB 171775 Amtsgericht München -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am 02/13/2012 12:55 PM, schrieb Torsten Förtsch:
On Monday, 13 February 2012 12:40:58 Daniel Spannbauer wrote:
SUBSYSTEM=="usb", ATTRS{idVendor}=="1dfb", ATTRS{idProduct}=="0007", RUN+="/bin/ln -s /dev/ttyUSB%n /dev/2a%n" ... Kann mir jemand sagen, was an meiner Rule falsch ist?
nur so ein Gedanke, kann es sein, dass der Link vor der Ausführung der Regel schon existierte? In diesem Fall würde ln nämlich einen Fehler liefern.
Möglicherweise hilft also
RUN+="rm -f /dev/2a%n; /bin/ln -s /dev/ttyUSB%n /dev/2a%n"
oder
RUN+="/bin/ln -sf /dev/ttyUSB%n /dev/2a%n"
Torsten Förtsch
Nach nem Reboot sollte der Link eigentlich weg sein (wie alles, was auf /dev liegt....). Aber ich versuchs mal... Gruß Daniel -- Daniel Spannbauer Software Entwicklung marco Systemanalyse und Entwicklung GmbH Tel +49 8333 9233-27 Fax -11 Rechbergstr. 4 - 6, D 87727 Babenhausen Mobil +49 171 4033220 http://www.marco.de/ Email ds@marco.de Geschäftsführer Martin Reuter HRB 171775 Amtsgericht München -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am 02/13/2012 01:30 PM, schrieb Daniel Spannbauer:
Am 02/13/2012 12:55 PM, schrieb Torsten Förtsch:
On Monday, 13 February 2012 12:40:58 Daniel Spannbauer wrote:
SUBSYSTEM=="usb", ATTRS{idVendor}=="1dfb", ATTRS{idProduct}=="0007", RUN+="/bin/ln -s /dev/ttyUSB%n /dev/2a%n" ... Kann mir jemand sagen, was an meiner Rule falsch ist?
nur so ein Gedanke, kann es sein, dass der Link vor der Ausführung der Regel schon existierte? In diesem Fall würde ln nämlich einen Fehler liefern.
Möglicherweise hilft also
RUN+="rm -f /dev/2a%n; /bin/ln -s /dev/ttyUSB%n /dev/2a%n"
oder
RUN+="/bin/ln -sf /dev/ttyUSB%n /dev/2a%n"
Torsten Förtsch
Nach nem Reboot sollte der Link eigentlich weg sein (wie alles, was auf /dev liegt....). Aber ich versuchs mal...
Hat nichts gebracht, zeigt immer noch auf das Gerät mit der ID 0001 Gruß Daniel -- Daniel Spannbauer Software Entwicklung marco Systemanalyse und Entwicklung GmbH Tel +49 8333 9233-27 Fax -11 Rechbergstr. 4 - 6, D 87727 Babenhausen Mobil +49 171 4033220 http://www.marco.de/ Email ds@marco.de Geschäftsführer Martin Reuter HRB 171775 Amtsgericht München -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo, Am Mon, 13 Feb 2012, Daniel Spannbauer schrieb:
Bus 004 Device 002: ID 1dfb:0001 Bus 003 Device 003: ID 1dfb:0007 Bus 003 Device 005: ID 1dfb:0003
Wie man sieht, gibts "1dfb" mehrmals, mich interessiert aber nur die ProductID "0007".
Also hab ich eine Rule angelegt:
SUBSYSTEM=="usb", ATTRS{idVendor}=="1dfb", ATTRS{idProduct}=="0007", RUN+="/bin/ln -s /dev/ttyUSB%n /dev/2a%n"
Also zumindest bei der oS 11.4 / udev-166 müßte das SUBSYSTEM=="usb", ATTR{idVendor}=="1dfb", ATTR{idProduct}=="0007", RUN+="/bin/ln -s /dev/ttyUSB%n /dev/2a%n" oder SUBSYSTEM=="usb", ATTR{idVendor}=="1dfb", ATTR{idProduct}=="0007", SYMLINK+="2a%n" sein, bei der 12.1 / udev-173 finde ich in /lib/udev/ allerdings, daß SUBSYSTEM=="usb", ATTRS{idVendor}=="1dfb", ATTRS{idProduct}=="0007", verwendet werden müßte. Welche udev-Version ist's denn bei dir? HTH, -dnh -- Mancherorts stehen auch junge Frauen am Strassenrand im Walde, bei denen man aber keine Pilze kaufen, sondern sich nur welche holen kann, denn die Damen stehen da, damit auch der alleinreisende Herr auf der Durchfahrt keine Entbehrung leiden muss. -- Helmut Wicht in drm -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am 02/14/2012 12:19 AM, schrieb David Haller:
Hallo,
Am Mon, 13 Feb 2012, Daniel Spannbauer schrieb:
Bus 004 Device 002: ID 1dfb:0001 Bus 003 Device 003: ID 1dfb:0007 Bus 003 Device 005: ID 1dfb:0003
Wie man sieht, gibts "1dfb" mehrmals, mich interessiert aber nur die ProductID "0007".
Also hab ich eine Rule angelegt:
SUBSYSTEM=="usb", ATTRS{idVendor}=="1dfb", ATTRS{idProduct}=="0007", RUN+="/bin/ln -s /dev/ttyUSB%n /dev/2a%n"
Also zumindest bei der oS 11.4 / udev-166 müßte das
SUBSYSTEM=="usb", ATTR{idVendor}=="1dfb", ATTR{idProduct}=="0007", RUN+="/bin/ln -s /dev/ttyUSB%n /dev/2a%n"
Funktioniert soweit, nur die Nummerierung stimmt nicht...Das Device wird als /dev/ttyUSB0 angelegt (macht wohl der Kernel), aber der Link wird von /dev/ttyUSB1 auf /dev/2a1 gesetzt. Ist %n nicht die Nummer des gerade verwendeten Geräts? Müsste das nicht /dev/ttyUSB0 und /dev/2a0 sein?
oder
SUBSYSTEM=="usb", ATTR{idVendor}=="1dfb", ATTR{idProduct}=="0007", SYMLINK+="2a%n"
Legt nen Link an von bus/usb/003/040 nach /dev/2a1, ich brauche aber das tty....
sein, bei der 12.1 / udev-173 finde ich in /lib/udev/ allerdings, daß SUBSYSTEM=="usb", ATTRS{idVendor}=="1dfb", ATTRS{idProduct}=="0007", verwendet werden müßte. Welche udev-Version ist's denn bei dir?
Eudevd --version spuckt 166 aus.... Gruß Daniel -- Daniel Spannbauer Software Entwicklung marco Systemanalyse und Entwicklung GmbH Tel +49 8333 9233-27 Fax -11 Rechbergstr. 4 - 6, D 87727 Babenhausen Mobil +49 171 4033220 http://www.marco.de/ Email ds@marco.de Geschäftsführer Martin Reuter HRB 171775 Amtsgericht München -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo, Am Tue, 14 Feb 2012, Daniel Spannbauer schrieb:
Am 02/14/2012 12:19 AM, schrieb David Haller:
Am Mon, 13 Feb 2012, Daniel Spannbauer schrieb:
Bus 004 Device 002: ID 1dfb:0001 Bus 003 Device 003: ID 1dfb:0007 Bus 003 Device 005: ID 1dfb:0003
Wie man sieht, gibts "1dfb" mehrmals, mich interessiert aber nur die ProductID "0007".
Also hab ich eine Rule angelegt:
SUBSYSTEM=="usb", ATTRS{idVendor}=="1dfb", ATTRS{idProduct}=="0007", RUN+="/bin/ln -s /dev/ttyUSB%n /dev/2a%n"
Also zumindest bei der oS 11.4 / udev-166 müßte das
SUBSYSTEM=="usb", ATTR{idVendor}=="1dfb", ATTR{idProduct}=="0007", RUN+="/bin/ln -s /dev/ttyUSB%n /dev/2a%n"
Funktioniert soweit, nur die Nummerierung stimmt nicht...Das Device wird als /dev/ttyUSB0 angelegt (macht wohl der Kernel), aber der Link wird von /dev/ttyUSB1 auf /dev/2a1 gesetzt. Ist %n nicht die Nummer des gerade verwendeten Geräts? Müsste das nicht /dev/ttyUSB0 und /dev/2a0 sein?
Keine Ahnung. man udev: $number, %n The kernel number for this device. For example, sda3 has kernel number of 3 Evtl. hilft dir: $minor, %m The kernel minor number for the device. denn /usr/src/linux/Documentation/devices.txt: 188 char USB serial converters 0 = /dev/ttyUSB0 First USB serial converter also: RUN+="/bin/ln -s /dev/ttyUSB%m /dev/2a%m"
oder
SUBSYSTEM=="usb", ATTR{idVendor}=="1dfb", ATTR{idProduct}=="0007", SYMLINK+="2a%n"
Legt nen Link an von bus/usb/003/040 nach /dev/2a1, ich brauche aber das tty....
Mach mal ein ls -l /dev/ttyUSB* /dev/bus/usb/003/040 /dev/2a1 Sollte ein und das selbe Device sein, eben char-major-188, minor-0.
sein, bei der 12.1 / udev-173 finde ich in /lib/udev/ allerdings, daß SUBSYSTEM=="usb", ATTRS{idVendor}=="1dfb", ATTRS{idProduct}=="0007", verwendet werden müßte. Welche udev-Version ist's denn bei dir?
Eudevd --version spuckt 166 aus....
Also 11.4 und deswegen wohl das "ATTR{}" statt "ATTRS{}". -dnh --
mangelnde Durchblutung des Gehirns solltet ihr Jungs doch gewohnt sein, oder nicht? -- Steffi Abel und Pah, ihr seid doch nur stolz, daß bei Euch alles unter Putz ist, während bei uns die Kabel lose baumeln ... -- Michael Fesser in darw -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
participants (4)
-
Daniel Spannbauer
-
David Haller
-
Juergen Langowski
-
Torsten Förtsch