11.4: Script in udev-Regel: Seriennummer als Argument übergeben

Hallo, ich muss beim Anschluss eines bestimmten USB-Gerätes ein Script ausführen. Das braucht die Seriennummer des gerade angeschlossenen Gerätes. Bis jetzt tat das immer mit folgender Rule: SUBSYSTEMS== "usb", KERNEL=="ttyUSB[0-9]*", ATTRS{idVendor}=="1dfb", RUN+="/usr/uti/udevscript usbmodul %k %s{serial}" Unter 11.4 tut das irgendwie nicht mehr. Die Seriennummer wird einfach nicht mehr übergeben. Auch $attr{serial} statt %s{serial} wird nicht übergeben. Setze ich aber in die Rule ein SYMLINK+="usb%s{serial}" wird ein Symlink auf /dev/ richtig erzeugt. Es scheint also nur im "RUN" nicht zu funktionieren. Ist das eine Besonderheit von 11.4 oder istd as ein Bug? 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 07.12.2011 10:31, schrieb Daniel Spannbauer:
Setze ich aber in die Rule ein SYMLINK+="usb%s{serial}" wird ein Symlink auf /dev/ richtig erzeugt. Es scheint also nur im "RUN" nicht zu funktionieren.
Ist das eine Besonderheit von 11.4 oder istd as ein Bug?
Ist das System neu aufgesetzt oder ein Update vom System auf dem es funktioniert hat. Will sagen fehlt ggf. ein Paket für die Funktion das auf dem alten System vorhanden war. Gruß Ralf Prengel Manager Customer Care Comline AG Hauert 8 D-44227 Dortmund/Germany Fon +49 231 97575 904 Fax +49 231 97575 257 Mobil +49 151 10831 157 EMail Ralf.Prengel@comline.de www.comline.de Vorstand Stephan Schilling, Erwin Leonhardi Aufsichtsrat Dr. Franz Schoser (Vorsitzender) HR Dortmund B 14570 USt.-ID-Nr. DE 124727422 Für die Erstellung unserer Dokumente benutzen wir die Produkte aus dem Microsoft Office 2007 Paket. Sollte sich ein Anhang in der Mail befinden, der mit einer älteren Office Version nicht geöffnet werden kann, installieren Sie bitte das Compatibility Pack für Office 2007. http://www.microsoft.com/downloads/details.aspx?FamilyID=941b3470-3ae9-4aee-... -- 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 12/07/2011 10:36 AM, schrieb Ralf Prengel:
Am 07.12.2011 10:31, schrieb Daniel Spannbauer:
Setze ich aber in die Rule ein SYMLINK+="usb%s{serial}" wird ein Symlink auf /dev/ richtig erzeugt. Es scheint also nur im "RUN" nicht zu funktionieren.
Ist das eine Besonderheit von 11.4 oder istd as ein Bug?
Ist das System neu aufgesetzt oder ein Update vom System auf dem es funktioniert hat. Will sagen fehlt ggf. ein Paket für die Funktion das auf dem alten System vorhanden war.
Es ist frisch aufgesetzt. opensuse 11.4 mit einigen eigenen Paketen. Gruß Daniel
Gruß Ralf Prengel Manager Customer Care Comline AG Hauert 8 D-44227 Dortmund/Germany
Fon +49 231 97575 904 Fax +49 231 97575 257 Mobil +49 151 10831 157 EMail Ralf.Prengel@comline.de
www.comline.de Vorstand Stephan Schilling, Erwin Leonhardi Aufsichtsrat Dr. Franz Schoser (Vorsitzender) HR Dortmund B 14570 USt.-ID-Nr. DE 124727422
Für die Erstellung unserer Dokumente benutzen wir die Produkte aus dem Microsoft Office 2007 Paket. Sollte sich ein Anhang in der Mail befinden, der mit einer älteren Office Version nicht geöffnet werden kann, installieren Sie bitte das Compatibility Pack für Office 2007. http://www.microsoft.com/downloads/details.aspx?FamilyID=941b3470-3ae9-4aee-...
-- 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 07.12.2011 11:01, schrieb Daniel Spannbauer:
Am 12/07/2011 10:36 AM, schrieb Ralf Prengel:
Am 07.12.2011 10:31, schrieb Daniel Spannbauer:
Setze ich aber in die Rule ein SYMLINK+="usb%s{serial}" wird ein Symlink auf /dev/ richtig erzeugt. Es scheint also nur im "RUN" nicht zu funktionieren.
Ist das eine Besonderheit von 11.4 oder istd as ein Bug?
Ist das System neu aufgesetzt oder ein Update vom System auf dem es funktioniert hat. Will sagen fehlt ggf. ein Paket für die Funktion das auf dem alten System vorhanden war.
Es ist frisch aufgesetzt. opensuse 11.4 mit einigen eigenen Paketen.
Ok, ich kenne das Thema nicht aber wie und womit wird die Infomation geschrieben. Nicht das irgendein Script oder ein Tool fehlt. Ähnliche Probleme kenne ich wenn z.B. plötzlich irgendwelche Perl-Module fehlen, die in älteren Version noch aufgrund von Abhängikeiten automatisch mit installiert wurden. Gruß Ralf Prengel Manager Customer Care Comline AG Hauert 8 D-44227 Dortmund/Germany Fon +49 231 97575 904 Fax +49 231 97575 257 Mobil +49 151 10831 157 EMail Ralf.Prengel@comline.de www.comline.de Vorstand Stephan Schilling, Erwin Leonhardi Aufsichtsrat Dr. Franz Schoser (Vorsitzender) HR Dortmund B 14570 USt.-ID-Nr. DE 124727422 Für die Erstellung unserer Dokumente benutzen wir die Produkte aus dem Microsoft Office 2007 Paket. Sollte sich ein Anhang in der Mail befinden, der mit einer älteren Office Version nicht geöffnet werden kann, installieren Sie bitte das Compatibility Pack für Office 2007. http://www.microsoft.com/downloads/details.aspx?FamilyID=941b3470-3ae9-4aee-... -- 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 12/07/2011 11:23 AM, schrieb Ralf Prengel:
Am 07.12.2011 11:01, schrieb Daniel Spannbauer:
Am 12/07/2011 10:36 AM, schrieb Ralf Prengel:
Am 07.12.2011 10:31, schrieb Daniel Spannbauer:
Setze ich aber in die Rule ein SYMLINK+="usb%s{serial}" wird ein Symlink auf /dev/ richtig erzeugt. Es scheint also nur im "RUN" nicht zu funktionieren.
Ist das eine Besonderheit von 11.4 oder istd as ein Bug?
Ist das System neu aufgesetzt oder ein Update vom System auf dem es funktioniert hat. Will sagen fehlt ggf. ein Paket für die Funktion das auf dem alten System vorhanden war.
Es ist frisch aufgesetzt. opensuse 11.4 mit einigen eigenen Paketen.
Ok,
ich kenne das Thema nicht aber wie und womit wird die Infomation geschrieben. Nicht das irgendein Script oder ein Tool fehlt. Ähnliche Probleme kenne ich wenn z.B. plötzlich irgendwelche Perl-Module fehlen, die in älteren Version noch aufgrund von Abhängikeiten automatisch mit installiert wurden.
Das ganze ist ein simples ShellScript das eine Datei erzeugt und $3 in eine Datei schreibt. Mehr nicht. Die Datei gibts, ist aber leer. Ich hab mir dann mal $* nach /dev/pts/3 (meine Telnet-Session) schicken lassen......es kommt alles mit, bis auf die SN. Gruß Daniel
Gruß Ralf Prengel Manager Customer Care Comline AG Hauert 8 D-44227 Dortmund/Germany
Fon +49 231 97575 904 Fax +49 231 97575 257 Mobil +49 151 10831 157 EMail Ralf.Prengel@comline.de
www.comline.de Vorstand Stephan Schilling, Erwin Leonhardi Aufsichtsrat Dr. Franz Schoser (Vorsitzender) HR Dortmund B 14570 USt.-ID-Nr. DE 124727422
Für die Erstellung unserer Dokumente benutzen wir die Produkte aus dem Microsoft Office 2007 Paket. Sollte sich ein Anhang in der Mail befinden, der mit einer älteren Office Version nicht geöffnet werden kann, installieren Sie bitte das Compatibility Pack für Office 2007. http://www.microsoft.com/downloads/details.aspx?FamilyID=941b3470-3ae9-4aee-...
-- 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 Mittwoch, 7. Dezember 2011, 10:31:11 schrieb Daniel Spannbauer:
Hallo,
ich muss beim Anschluss eines bestimmten USB-Gerätes ein Script ausführen. Das braucht die Seriennummer des gerade angeschlossenen Gerätes.
Bis jetzt tat das immer mit folgender Rule:
SUBSYSTEMS== "usb", KERNEL=="ttyUSB[0-9]*", ATTRS{idVendor}=="1dfb", RUN+="/usr/uti/udevscript usbmodul %k %s{serial}"
(...) Hier läuft auch 11.4. Wenn du die Seriennummer abfragen willst, könntest du es so versuchen: ATTRS{serial}=="[Seriennummer laut dmesg]" So werden bei mir unterschiedliche Sticks von demselben Hersteller unterschieden, und für jeden Stick startet ein eigenes Skript. 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

Am 12/07/2011 10:55 AM, schrieb Juergen Langowski:
Am Mittwoch, 7. Dezember 2011, 10:31:11 schrieb Daniel Spannbauer:
Hallo,
ich muss beim Anschluss eines bestimmten USB-Gerätes ein Script ausführen. Das braucht die Seriennummer des gerade angeschlossenen Gerätes.
Bis jetzt tat das immer mit folgender Rule:
SUBSYSTEMS== "usb", KERNEL=="ttyUSB[0-9]*", ATTRS{idVendor}=="1dfb", RUN+="/usr/uti/udevscript usbmodul %k %s{serial}"
(...)
Hier läuft auch 11.4. Wenn du die Seriennummer abfragen willst, könntest du es so versuchen:
ATTRS{serial}=="[Seriennummer laut dmesg]"
So werden bei mir unterschiedliche Sticks von demselben Hersteller unterschieden, und für jeden Stick startet ein eigenes Skript.
Leider nicht das,was wir vorhaben. Wenn ein USB-Gerät angesteckt wird (der Hersteller sind wir) muss dieses Script laufen. Damit das Script dann die Aktion ausführen kann, braucht es die Seriennummer des Devices. Ich kann schlecht 500 oder mehr Seriennummern abfragen und für jede ein eigenes Script anlegen. 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 Daniel Spannbauer, Am Mittwoch, 7. Dezember 2011 11:02 schrieb Daniel Spannbauer:
Am 12/07/2011 10:55 AM, schrieb Juergen Langowski:
Am Mittwoch, 7. Dezember 2011, 10:31:11 schrieb Daniel Spannbauer:
Hallo,
ich muss beim Anschluss eines bestimmten USB-Gerätes ein Script ausführen. Das braucht die Seriennummer des gerade angeschlossenen Gerätes.
Bis jetzt tat das immer mit folgender Rule:
SUBSYSTEMS== "usb", KERNEL=="ttyUSB[0-9]*", ATTRS{idVendor}=="1dfb", RUN+="/usr/uti/udevscript usbmodul %k %s{serial}"
(...)
Hier läuft auch 11.4. Wenn du die Seriennummer abfragen willst, könntest du es so versuchen:
ATTRS{serial}=="[Seriennummer laut dmesg]"
So werden bei mir unterschiedliche Sticks von demselben Hersteller unterschieden, und für jeden Stick startet ein eigenes Skript.
Leider nicht das,was wir vorhaben. Wenn ein USB-Gerät angesteckt wird (der Hersteller sind wir) muss dieses Script laufen. Damit das Script dann die Aktion ausführen kann, braucht es die Seriennummer des Devices. Ich kann schlecht 500 oder mehr Seriennummern abfragen und für jede ein eigenes Script anlegen.
Brachst Du doch nicht, Du kannst mit der Seriennummer machen, was Du willst... Versuch: schreib statt %s{serial] in Dein Skript ATTRS{serial} (Ohne dass ich jetzt Ahnung hätte von udev etc.) -- Herzliche Grüße! Rolf Muth Meine Adressen duerfen nicht fuer Werbung verwendet werden! PGP Public Key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xF8DC41935544C89A

Hallo, Am Wed, 07 Dec 2011, Daniel Spannbauer schrieb:
Leider nicht das,was wir vorhaben. Wenn ein USB-Gerät angesteckt wird (der Hersteller sind wir) muss dieses Script laufen. Damit das Script dann die Aktion ausführen kann, braucht es die Seriennummer des Devices. Ich kann schlecht 500 oder mehr Seriennummern abfragen und für jede ein eigenes Script anlegen.
Probier's mal mit: $env{ID_SERIAL} Jedenfalls verwendet udev das in den storage-Regeln. HTH, -dnh -- Ich bin sowieso für die Entwicklung einer Maus mit 101 Tasten. -- R. Schwentker -- 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 Mittwoch, 7. Dezember 2011, 11:02:59 schrieb Daniel Spannbauer:
Am 12/07/2011 10:55 AM, schrieb Juergen Langowski:
Am Mittwoch, 7. Dezember 2011, 10:31:11 schrieb Daniel Spannbauer:
Hallo,
ich muss beim Anschluss eines bestimmten USB-Gerätes ein Script ausführen. Das braucht die Seriennummer des gerade angeschlossenen Gerätes.
Bis jetzt tat das immer mit folgender Rule:
SUBSYSTEMS== "usb", KERNEL=="ttyUSB[0-9]*", ATTRS{idVendor}=="1dfb", RUN+="/usr/uti/udevscript usbmodul %k %s{serial}"
(...)
Hier läuft auch 11.4. Wenn du die Seriennummer abfragen willst, könntest du es so versuchen:
ATTRS{serial}=="[Seriennummer laut dmesg]"
So werden bei mir unterschiedliche Sticks von demselben Hersteller unterschieden, und für jeden Stick startet ein eigenes Skript.
Leider nicht das,was wir vorhaben. Wenn ein USB-Gerät angesteckt wird (der Hersteller sind wir) muss dieses Script laufen. Damit das Script dann die Aktion ausführen kann, braucht es die Seriennummer des Devices. Ich kann schlecht 500 oder mehr Seriennummern abfragen und für jede ein eigenes Script anlegen.
Na gut, gerade getestet: SUBSYSTEMS=="usb", \ KERNEL=="sd?1", ATTRS{serial}=="1F530A002C6F", \ SYMLINK+="usbstick", \ RUN+="/skript/backup2stick %s{serial}" Bei mir funktioniert das. backup2stick macht hier im Moment nichts anderes als: echo "Parameter: $1" > info.txt In info.txt erscheint wie gewünscht die Seriennummer. Könnte es sein, dass bei dir in %k etwas steht, das den folgenden Parameter zerschießt? Lass doch testweise mal %k weg und frage $2 ab oder so. 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

Am 12/07/2011 01:03 PM, schrieb Juergen Langowski:
Am Mittwoch, 7. Dezember 2011, 11:02:59 schrieb Daniel Spannbauer:
Am 12/07/2011 10:55 AM, schrieb Juergen Langowski:
Am Mittwoch, 7. Dezember 2011, 10:31:11 schrieb Daniel Spannbauer:
Hallo,
ich muss beim Anschluss eines bestimmten USB-Gerätes ein Script ausführen. Das braucht die Seriennummer des gerade angeschlossenen Gerätes.
Bis jetzt tat das immer mit folgender Rule:
SUBSYSTEMS== "usb", KERNEL=="ttyUSB[0-9]*", ATTRS{idVendor}=="1dfb", RUN+="/usr/uti/udevscript usbmodul %k %s{serial}"
(...)
Hier läuft auch 11.4. Wenn du die Seriennummer abfragen willst, könntest du es so versuchen:
ATTRS{serial}=="[Seriennummer laut dmesg]"
So werden bei mir unterschiedliche Sticks von demselben Hersteller unterschieden, und für jeden Stick startet ein eigenes Skript.
Leider nicht das,was wir vorhaben. Wenn ein USB-Gerät angesteckt wird (der Hersteller sind wir) muss dieses Script laufen. Damit das Script dann die Aktion ausführen kann, braucht es die Seriennummer des Devices. Ich kann schlecht 500 oder mehr Seriennummern abfragen und für jede ein eigenes Script anlegen.
Na gut, gerade getestet:
SUBSYSTEMS=="usb", \ KERNEL=="sd?1", ATTRS{serial}=="1F530A002C6F", \ SYMLINK+="usbstick", \ RUN+="/skript/backup2stick %s{serial}"
Bei mir funktioniert das. backup2stick macht hier im Moment nichts anderes als:
echo "Parameter: $1" > info.txt
In info.txt erscheint wie gewünscht die Seriennummer.
Ich habs mal nahezu genau so gemacht: SUBSYSTEMS== "usb", KERNEL=="ttyUSB[0-9]*", ATTRS{idVendor}=="1dfb", RUN+="/usr/uti/udevtest %s{serial}" udevtest sieht so aus: #!/bin/bash echo "Parameter: $1" > /tmp/info.txt Gerät angesteckt, info.txt wird erstellt. Inhalt: ------------ Parameter: ------------ Mehr ist nicht. Auch egal ob ich das mit ATTRS{serial} mach oder mit $env{serial}, keine VErsion funktioniert. Gruß Daniel
Könnte es sein, dass bei dir in %k etwas steht, das den folgenden Parameter zerschießt? Lass doch testweise mal %k weg und frage $2 ab oder so.
Jürgen
-- 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 Fri, 09 Dec 2011, Daniel Spannbauer schrieb:
Mehr ist nicht. Auch egal ob ich das mit ATTRS{serial} mach oder mit $env{serial}, keine VErsion funktioniert.
Und mit $env{ID_SERIAL}? Groß- / Kleinschreibung ist relevant. -dnh -- Merke: die Nutzer von Facebook sind nicht "Kunden". Sie sind die Ware. -- Konni Scheller -- 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 12/09/2011 11:02 AM, schrieb David Haller:
Hallo,
Am Fri, 09 Dec 2011, Daniel Spannbauer schrieb:
Mehr ist nicht. Auch egal ob ich das mit ATTRS{serial} mach oder mit $env{serial}, keine VErsion funktioniert.
Und mit $env{ID_SERIAL}? Groß- / Kleinschreibung ist relevant.
-dnh
Hallo David, die kommt ein längerer String, an dessen Ende dann noch die SN hängt. Muss ich halt dann noch zerschnibbeln. Aber das krieg ich schon. So komme ich mal ein Stück weiter. Danke. Aber warum die restl. Serial-Angaben nicht funktinieren würd mich schon noch interessieren. Ich versuchs gerade nochmal mit einer wirklich blanken 11.4. Mal schauen.... Danke. 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 Freitag, 9. Dezember 2011, 09:02:01 schrieb Daniel Spannbauer: (...)
Ich habs mal nahezu genau so gemacht:
SUBSYSTEMS== "usb", KERNEL=="ttyUSB[0-9]*", ATTRS{idVendor}=="1dfb", RUN+="/usr/uti/udevtest %s{serial}"
udevtest sieht so aus:
#!/bin/bash
echo "Parameter: $1" > /tmp/info.txt
Gerät angesteckt, info.txt wird erstellt. Inhalt:
------------ Parameter:
------------
Mehr ist nicht. Auch egal ob ich das mit ATTRS{serial} mach oder mit $env{serial}, keine VErsion funktioniert.
Autsch. Da fällt mir so langsam nichts mehr ein. Das hier fand ich ganz hilfreich: http://wiki.ubuntuusers.de/UDEV Probier vielleicht mal udevadm info --query=all --attribute-walk --name=/dev/sdd1 (Bzw. der richtige Name deines Geräts bei --name). Bei mir kommt da unter anderem folgendes: looking at parent device '/devices/pci0000:00/0000:00:12.2/usb1/1-2': KERNELS=="1-2" SUBSYSTEMS=="usb" DRIVERS=="usb" ATTRS{configuration}=="" ATTRS{bNumInterfaces}==" 1" ATTRS{bConfigurationValue}=="1" ATTRS{bmAttributes}=="80" ATTRS{bMaxPower}=="200mA" ATTRS{urbnum}=="1189" ATTRS{idVendor}=="08ec" ATTRS{idProduct}=="0845" ATTRS{bcdDevice}=="0100" ATTRS{bDeviceClass}=="00" ATTRS{bDeviceSubClass}=="00" ATTRS{bDeviceProtocol}=="00" ATTRS{bNumConfigurations}=="1" ATTRS{bMaxPacketSize0}=="64" ATTRS{speed}=="480" ATTRS{busnum}=="1" ATTRS{devnum}=="6" ATTRS{devpath}=="2" ATTRS{version}==" 2.00" ATTRS{maxchild}=="0" ATTRS{quirks}=="0x0" ATTRS{avoid_reset_quirk}=="0" ATTRS{authorized}=="1" ATTRS{manufacturer}=="Generic " ATTRS{product}=="USB Flash Disk " ATTRS{serial}=="1F530A002C6F" Unter "serial" erscheint hier die Seriennummer, die ich erfolgreich abfragen konnte. Testweise habe ich mal %s{bMaxPower} übergeben, und auch das wird von meinem Skript als Parameter akzeptiert und in die Ausgabedatei geschrieben. Ich sehe gerade, dass bei mir die Seriennummer von mehreren Geräten in der Hierarchie gesetzt wird: ~# udevadm info --query=all --attribute-walk --name=/dev/sdd1 | \ grep serial ATTRS{serial}=="1F530A002C6F" ATTRS{serial}=="0000:00:12.2" Könnte es vielleicht sein, dass du die falsche Stelle abfragst, also z.B. ein anderes Objekt in der Hierarchie, das "serial" gar nicht setzt oder mit "" vorbesetzt? Versuch es doch mal explizit auf diesen einen Stick bezogen statt allgemein mit tty*. Davon abgesehen besteht vielleicht noch die Möglichkeit, dass mit dem Stick selbst etwas nicht stimmt. Hast du es mal mit einem anderen probiert? 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

Am 12/09/2011 11:12 AM, schrieb Juergen Langowski:
Autsch. Da fällt mir so langsam nichts mehr ein. Das hier fand ich ganz hilfreich:
http://wiki.ubuntuusers.de/UDEV
Probier vielleicht mal
udevadm info --query=all --attribute-walk --name=/dev/sdd1
(Bzw. der richtige Name deines Geräts bei --name). Bei mir kommt da unter anderem folgendes:
looking at parent device '/devices/pci0000:00/0000:00:12.2/usb1/1-2': KERNELS=="1-2" SUBSYSTEMS=="usb" DRIVERS=="usb"
..... Bei mir ist das ganze etwas länglicher..... http://pastebin.com/hHtdUaA3
Unter "serial" erscheint hier die Seriennummer, die ich erfolgreich abfragen konnte. Testweise habe ich mal %s{bMaxPower} übergeben, und auch das wird von meinem Skript als Parameter akzeptiert und in die Ausgabedatei geschrieben.
Ich habe mal versucht einige andere Werte abzufragen...die sind auch alle leer.
Ich sehe gerade, dass bei mir die Seriennummer von mehreren Geräten in der Hierarchie gesetzt wird:
~# udevadm info --query=all --attribute-walk --name=/dev/sdd1 | \ grep serial
ATTRS{serial}=="1F530A002C6F" ATTRS{serial}=="0000:00:12.2"
Könnte es vielleicht sein, dass du die falsche Stelle abfragst, also z.B. ein anderes Objekt in der Hierarchie, das "serial" gar nicht setzt oder mit "" vorbesetzt? Versuch es doch mal explizit auf diesen einen Stick bezogen statt allgemein mit tty*.
Auch hier wird Serial 2x gesetzt. Einmal vom Gerät und dann noch vom Host-Controller. Komischerweise kann ich da irgendeine Eigenschaft abfragen und an der Script übergeben....es kommt nichts. Ich glaube bald das da nie was kommt, wenn es in der Regel mit %s abgefragt werden soll....iich teste aber noch.
Davon abgesehen besteht vielleicht noch die Möglichkeit, dass mit dem Stick selbst etwas nicht stimmt. Hast du es mal mit einem anderen probiert?
Ja, leider selbes Ergebnis..... Gruß Daniel
Jürgen
-- 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 12/09/2011 11:12 AM, schrieb Juergen Langowski:
Am Freitag, 9. Dezember 2011, 09:02:01 schrieb Daniel Spannbauer:
(...)
Ich habs mal nahezu genau so gemacht:
SUBSYSTEMS== "usb", KERNEL=="ttyUSB[0-9]*", ATTRS{idVendor}=="1dfb", RUN+="/usr/uti/udevtest %s{serial}"
udevtest sieht so aus:
#!/bin/bash
echo "Parameter: $1" > /tmp/info.txt
Gerät angesteckt, info.txt wird erstellt. Inhalt:
------------ Parameter:
------------
Mehr ist nicht. Auch egal ob ich das mit ATTRS{serial} mach oder mit $env{serial}, keine VErsion funktioniert.
Autsch. Da fällt mir so langsam nichts mehr ein. Das hier fand ich ganz hilfreich:
http://wiki.ubuntuusers.de/UDEV
Probier vielleicht mal
udevadm info --query=all --attribute-walk --name=/dev/sdd1
@ Jürgen: Kannst du mal nachschauen, welche UDEV-RPMS bei dir installiert sind? Bei mir ists der Standard von der 11.4-DVD: libudev0-166-5.1.i586 libgudev-1_0-0-166-5.1.i586 udev-166-5.1.i586 2.6.37.6-0.9-default Das ganze ist jetzt ein nigel-nagel-neu installierstes 11.4, hier habe ich das gleiche Problem. 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 Freitag, 9. Dezember 2011, 12:29:21 schrieb Daniel Spannbauer:
Am 12/09/2011 11:12 AM, schrieb Juergen Langowski:
Am Freitag, 9. Dezember 2011, 09:02:01 schrieb Daniel Spannbauer:
(...)
Ich habs mal nahezu genau so gemacht:
SUBSYSTEMS== "usb", KERNEL=="ttyUSB[0-9]*", ATTRS{idVendor}=="1dfb", RUN+="/usr/uti/udevtest %s{serial}"
udevtest sieht so aus:
#!/bin/bash
echo "Parameter: $1" > /tmp/info.txt
Gerät angesteckt, info.txt wird erstellt. Inhalt:
------------ Parameter:
------------
Mehr ist nicht. Auch egal ob ich das mit ATTRS{serial} mach oder mit $env{serial}, keine VErsion funktioniert.
Autsch. Da fällt mir so langsam nichts mehr ein. Das hier fand ich ganz hilfreich:
http://wiki.ubuntuusers.de/UDEV
Probier vielleicht mal
udevadm info --query=all --attribute-walk --name=/dev/sdd1
@ Jürgen:
Kannst du mal nachschauen, welche UDEV-RPMS bei dir installiert sind?
Bei mir ists der Standard von der 11.4-DVD:
libudev0-166-5.1.i586 libgudev-1_0-0-166-5.1.i586 udev-166-5.1.i586
2.6.37.6-0.9-default
Bei mir: udev-166-6.7.1.x86_64 libgudev-1_0-0-166-6.7.1.x86_64 libudev0-166-6.7.1.x86_64 2.6.37.6-0.9-desktop Sollte ich da etwa neuere Versionen haben? 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

Am 12/09/2011 01:04 PM, schrieb Juergen Langowski:
Am Freitag, 9. Dezember 2011, 12:29:21 schrieb Daniel Spannbauer:
Am 12/09/2011 11:12 AM, schrieb Juergen Langowski:
Am Freitag, 9. Dezember 2011, 09:02:01 schrieb Daniel Spannbauer:
(...)
Ich habs mal nahezu genau so gemacht:
SUBSYSTEMS== "usb", KERNEL=="ttyUSB[0-9]*", ATTRS{idVendor}=="1dfb", RUN+="/usr/uti/udevtest %s{serial}"
udevtest sieht so aus:
#!/bin/bash
echo "Parameter: $1" > /tmp/info.txt
Gerät angesteckt, info.txt wird erstellt. Inhalt:
------------ Parameter:
------------
Mehr ist nicht. Auch egal ob ich das mit ATTRS{serial} mach oder mit $env{serial}, keine VErsion funktioniert.
Autsch. Da fällt mir so langsam nichts mehr ein. Das hier fand ich ganz hilfreich:
http://wiki.ubuntuusers.de/UDEV
Probier vielleicht mal
udevadm info --query=all --attribute-walk --name=/dev/sdd1
@ Jürgen:
Kannst du mal nachschauen, welche UDEV-RPMS bei dir installiert sind?
Bei mir ists der Standard von der 11.4-DVD:
libudev0-166-5.1.i586 libgudev-1_0-0-166-5.1.i586 udev-166-5.1.i586
2.6.37.6-0.9-default
Bei mir:
udev-166-6.7.1.x86_64 libgudev-1_0-0-166-6.7.1.x86_64 libudev0-166-6.7.1.x86_64
2.6.37.6-0.9-desktop
Sollte ich da etwa neuere Versionen haben?
Scheint so. Ich versuch das mal upzudaten und teste nochmal. 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 12/07/2011 10:31 AM, schrieb Daniel Spannbauer:
Hallo,
ich muss beim Anschluss eines bestimmten USB-Gerätes ein Script ausführen. Das braucht die Seriennummer des gerade angeschlossenen Gerätes.
Bis jetzt tat das immer mit folgender Rule:
SUBSYSTEMS== "usb", KERNEL=="ttyUSB[0-9]*", ATTRS{idVendor}=="1dfb", RUN+="/usr/uti/udevscript usbmodul %k %s{serial}"
Unter 11.4 tut das irgendwie nicht mehr. Die Seriennummer wird einfach nicht mehr übergeben. Auch $attr{serial} statt %s{serial} wird nicht übergeben. Setze ich aber in die Rule ein SYMLINK+="usb%s{serial}" wird ein Symlink auf /dev/ richtig erzeugt. Es scheint also nur im "RUN" nicht zu funktionieren.
Ist das eine Besonderheit von 11.4 oder istd as ein Bug?
Gruß
Daniel
So, ich glaub ich habs. Nicht die Lösung des Problems, aber ich kanns umgehen. Die Lösung war eine Mischung aus den Posts von Jürgen und David. David brachte ja den Hinweis mit $env{ID_SERIAL}. Da kam aber ein langer String raus. Den hätte ich noch zerpflücken müssen. Dann kam Jürgen mit "udevadm info --query=all --attribute-walk --name=/dev/sdd1" um die Ecke. Wenn man den "--attribute-walk" weglässt, kommen die Attribute ans Licht, die man mit $env abfragen kann. Und da taucht dann ein ID_SERIAL_SHORT auf. Das ist dann die Seriennummer des Geräts. und die kabnn ich abfragen und an das Script übergeben. Warum das mit {serial} nicht geht weiß ich immer noch nicht. Aber mit der jetzigen Lösung kann ich Leben. Danke an alle. 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
participants (5)
-
Daniel Spannbauer
-
David Haller
-
Juergen Langowski
-
Ralf Prengel
-
Rolf Muth