Re: Programm bei USB (dis)connect starten?

2005-01-12 Diskussionsfäden Heiko Schlittermann
  udev bringt Ordnung in die Devicenamen. Ohne udev ist das so, daß z.B.
  ein angesteckter USB-Stick nicht immer die gleichen Devicenamen bekommt. So
  ist er vielleicht immer auf /dev/sda und dann kommt irgendwann mal ein
  Kumpel vorbei, der auch nen USB-Stick hat ... und schwups hängt dein
  eigener Stick auf /dev/sdb. Das dumme daran ist, daß man nicht
  herausbekommt, auf welchem Device der USB-Stick ansprechbar ist. Hat mich
  schon einige Nerven gekostet, als ich mal ein Auto-Mount-Script gebaut
  habe.

Ich will nicht behaupten, alles über hotplug/udev verstanden zu haben,
und an einigen Stellen bin ich mir nicht sicher, ob es einfach noch
Baustelle ist, oder ob an meinem mangelnden Verständnis liegt.  

Soweit ich verstehe, lädt hotplug den richtigen Treiber, *könnte* dann
auch noch Scripte ausführen...

Im Falle eines USB-Sticks sah es aber so aus, daß hotplug den
usb-storage-Treiber lud und dann später den SCSI-Treiber - und erst
das wäre der Augenblick gewesen, wo ich etwas damit hätte anfangen
können. 

Also habe ich mir udev angesehen und dort in /etc/udev/local.rules

KERNEL=sd*, SYSFS{model}=MEMORYBIRD *, SYMLINK=stick%e
KERNEL=sd*, SYSFS{model}=USB, SYMLINK=box%e

eingetragen.  Jetzt erscheint mein Memorystick als /dev/stick,
/dev/stick1 und meine externe USB-Plattenbox als /dev/box, /dev/box1.

Damit kann ich (und der Automounter) gut leben.
Ob dem OP das hilft, weiß ich nicht, denn er wollte ja richtige Scripte
ausführen.  udev mag zwar auch Script ausführen, aber soweit ich das
sehe, *vor* dem Erzeugen des Device-Nodes.  Für Scripte nach dem
Erzeugen des Device-Nodes scheint in Grenzen hotplug verantwortlich zu
sein (für USB habe ich dort was gefunden im Zusammenhang mit
libgphoto2).


 Ehm. Klingt gut, Ist denn _jeder_ USB-Stick _eindeutig_ zu identifizieren?

Wenn ihr die gleichen habt, dann eher schwer.  M.W. haben die keine
unique ID oder etwas ähnliches.  Dann hilft vielleicht nur mounten und
nach bestimmten Files suchen.


Heiko


signature.asc
Description: Digital signature


Re: Programm bei USB (dis)connect starten?

2005-01-11 Diskussionsfäden Michael Tuschik
Moin,

Am Dienstag, 11. Januar 2005 08:06 schrieb Joerg Desch:
 On Mon, 10 Jan 2005 17:14:12 +0100

 Michael Tuschik [EMAIL PROTECTED] wrote:
  Das dumme daran ist, daß
  man nicht herausbekommt, auf welchem Device der USB-Stick ansprechbar
  ist. Hat mich schon einige Nerven gekostet, als ich mal ein
  Auto-Mount-Script gebaut habe.

 Du meinst, man dann nirgendwo sehen, ob der Stick als z.B. /dev/sda oder
 /dev/sdb erkannt wird? Hast Du dein Automount-Script aufgegeben?

Genau. Ich hab das ganze mit scsidev aus dem Paket scsitools gelöst. Damit 
wird mein USB-Stick automatisch unter /mnt/usbstick gemountet, wenn ich ihn 
anstecke. Ich hatte allerdings auch schon Probleme mit scsidev (hängende 
Prozesse). Das Tool scheint nicht ganz stabil zu sein.

Es scheint, daß udev hier Abhilfe schafft. Ich habe allerdings noch keinen 
2.6er Kernel laufen.

Gruß
Micha



Re: Programm bei USB (dis)connect starten?

2005-01-10 Diskussionsfäden Jan Lühr
ja hallo erstmal,..

Am Montag, 10. Januar 2005 00:07 schrieb Thomas Jahns:
 Gerhard Brauer [EMAIL PROTECTED] writes:
  Gruesse!
 
  * Jan Lühr [EMAIL PROTECTED] schrieb am [09.01.05 18:39]:
   ja hallo erstmal,..
  
   ist es eigentlich möglich, ein Programm automatisch zu starten, wenn
   ich ein USB-Gerät Verbinde, bzw. es entferne?
 
  Ja, über hotplug. man und Doku zu hotplug hat Beispiele dazu.
 
  Kurz:
  Du brauchst die VendorID und die ProdID des devices, z.b. über lsusb
  -v[vv].

 [...]

 Wenn man auch remove-Ereignisse sehen möchte und außerdem den Namen des
 device sicher wissen will, bietet es sich an, das gleich durch udev zu
 realisieren. Siehe auch


Heißt das, dass hotplug hier nicht wirklich brauchbar ist?

Keep smiling
yanosz



Re: Programm bei USB (dis)connect starten?

2005-01-10 Diskussionsfäden Michael Tuschik
Hi,

Am Montag, 10. Januar 2005 16:59 schrieb Jan Lühr:
 ja hallo erstmal,..


 Heißt das, dass hotplug hier nicht wirklich brauchbar ist?


Du brauchst in jedem Fall hotplug. hotplug übernimmt das ganze Gerät 
erkennen Treiber laden usw. im System.

udev bringt Ordnung in die Devicenamen. Ohne udev ist das so, daß z.B. ein 
angesteckter USB-Stick nicht immer die gleichen Devicenamen bekommt. So ist 
er vielleicht immer auf /dev/sda und dann kommt irgendwann mal ein Kumpel 
vorbei, der auch nen USB-Stick hat ... und schwups hängt dein eigener Stick 
auf /dev/sdb. Das dumme daran ist, daß man nicht herausbekommt, auf welchem 
Device der USB-Stick ansprechbar ist. Hat mich schon einige Nerven gekostet, 
als ich mal ein Auto-Mount-Script gebaut habe.

Gruß
Michael



Re: Programm bei USB (dis)connect starten?

2005-01-10 Diskussionsfäden Jan Lühr
ja hallo erstmal,...

Am Montag, 10. Januar 2005 17:14 schrieb Michael Tuschik:
 Hi,

 Am Montag, 10. Januar 2005 16:59 schrieb Jan Lühr:
  ja hallo erstmal,..
 
 
  Heißt das, dass hotplug hier nicht wirklich brauchbar ist?

 Du brauchst in jedem Fall hotplug. hotplug übernimmt das ganze Gerät
 erkennen Treiber laden usw. im System.

 udev bringt Ordnung in die Devicenamen. Ohne udev ist das so, daß z.B.
 ein angesteckter USB-Stick nicht immer die gleichen Devicenamen bekommt. So
 ist er vielleicht immer auf /dev/sda und dann kommt irgendwann mal ein
 Kumpel vorbei, der auch nen USB-Stick hat ... und schwups hängt dein
 eigener Stick auf /dev/sdb. Das dumme daran ist, daß man nicht
 herausbekommt, auf welchem Device der USB-Stick ansprechbar ist. Hat mich
 schon einige Nerven gekostet, als ich mal ein Auto-Mount-Script gebaut
 habe.

Ehm. Klingt gut, Ist denn _jeder_ USB-Stick _eindeutig_ zu identifizieren?

Keep smiling
yanosz
-- 
Achtung: Die E-Mail-Adresse [EMAIL PROTECTED] wird in Kürze 
deaktiviert werden. Bitte nutzen Sie die Adresse
[EMAIL PROTECTED]



Re: Programm bei USB (dis)connect starten?

2005-01-10 Diskussionsfäden Andreas Pakulat
On 10.Jan 2005 - 22:00:47, Jan Lühr wrote:
 Ehm. Klingt gut, Ist denn _jeder_ USB-Stick _eindeutig_ zu identifizieren?

Tj... Eigentlich schon denke ich, dafür gibts schliesslich genug
Informationen wenn du mal udevinfo auf das Device los lässt...

Andreas

-- 
You can rent this space for only $5 a week.


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Programm bei USB (dis)connect starten?

2005-01-10 Diskussionsfäden Joerg Desch
On Mon, 10 Jan 2005 17:14:12 +0100
Michael Tuschik [EMAIL PROTECTED] wrote:

 Das dumme daran ist, daß
 man nicht herausbekommt, auf welchem Device der USB-Stick ansprechbar
 ist. Hat mich schon einige Nerven gekostet, als ich mal ein
 Auto-Mount-Script gebaut habe.

Du meinst, man dann nirgendwo sehen, ob der Stick als z.B. /dev/sda oder
/dev/sdb erkannt wird? Hast Du dein Automount-Script aufgegeben?

-- 
Email: Joerg Desch jd DOT vvd AT web DOT de



Programm bei USB (dis)connect starten?

2005-01-09 Diskussionsfäden Jan Lühr
ja hallo erstmal,..

ist es eigentlich möglich, ein Programm automatisch zu starten, wenn ich ein 
USB-Gerät Verbinde, bzw. es entferne?

mfG Jan Lühr
-- 
Achtung: Die E-Mail-Adresse [EMAIL PROTECTED] wird in Kürze 
deaktiviert werden. Bitte nutzen Sie die Adresse
[EMAIL PROTECTED]



Re: Programm bei USB (dis)connect starten?

2005-01-09 Diskussionsfäden Claus Malter
Jan Lühr wrote:
ja hallo erstmal,..
ist es eigentlich möglich, ein Programm automatisch zu starten, wenn ich ein 
USB-Gerät Verbinde, bzw. es entferne?

mfG Jan Lühr
Hi,
hotplug ist was du suchst. Frag mal deinen apt.
MfG
--
Claus Malter [EMAIL PROTECTED]
ICQ: 105226435
Web: http://claus.freakempire.de
GnuPG-ID: 0x5E8F5B07 http://wwwkeys.de.pgp.net


signature.asc
Description: OpenPGP digital signature


Re: Programm bei USB (dis)connect starten?

2005-01-09 Diskussionsfäden Gerhard Brauer
Gruesse!
* Jan Lühr [EMAIL PROTECTED] schrieb am [09.01.05 18:39]:

 ja hallo erstmal,..
 
 ist es eigentlich möglich, ein Programm automatisch zu starten, wenn ich ein 
 USB-Gerät Verbinde, bzw. es entferne?

Ja, über hotplug. man und Doku zu hotplug hat Beispiele dazu.

Kurz:
Du brauchst die VendorID und die ProdID des devices, z.b. über lsusb 
-v[vv].
In /etc/hotplug/usb erstellst du ein File usbgeraet.usermap (die 
usermap files Einträge werden in der Doku beschrieben oder du 
orientierst dich z.B. an der libsane.usermap). Als ersten Parameter 
gibst du den Namen des Skriptes an (dieses liegt ebenfalls in 
/etc/hotplug/usb), als 3. und 4. Parameter VendorID und ProdID

Dem Skript werden vom hotplugd u.a. Parameter zu ACTION=[add|remove] 
mitgegeben, aufgrund deren du entsprechende Vorgänge auslösen kannst.

Ich habe gerade eine Backuplösung mit einer externen USB-Hd gebastelt. 
Einziger Punkt bei mir, dem ich allerdings noch nicht weiter nachgehen 
konnte, ist: Als ACTION wird lediglich add vom hotplugd übergeben, 
kein remove. Momentan könnte ich auf ein Abstöpseln des Gerätes nicht 
reagieren. Ist aber laut Doku so vorgesehen, wird also auch irgendwie 
gehen.

 mfG Jan Lühr

Gruß
Gerhard



Re: Programm bei USB (dis)connect starten?

2005-01-09 Diskussionsfäden Jan Lühr
ja hallo erstmal,...

Am Sonntag, 9. Januar 2005 18:57 schrieb Gerhard Brauer:
 Gruesse!

 * Jan Lühr [EMAIL PROTECTED] schrieb am [09.01.05 18:39]:
  ja hallo erstmal,..
 
  ist es eigentlich möglich, ein Programm automatisch zu starten, wenn ich
  ein USB-Gerät Verbinde, bzw. es entferne?

 Ja, über hotplug. man und Doku zu hotplug hat Beispiele dazu.

Danke für das Stichwort. Das habe ich irgendwie noch nicht beachtet.

 Kurz:
 Du brauchst die VendorID und die ProdID des devices, z.b. über lsusb
 -v[vv].

In welchem Paket ist dies?

 In /etc/hotplug/usb erstellst du ein File usbgeraet.usermap (die
 usermap files Einträge werden in der Doku beschrieben oder du
 orientierst dich z.B. an der libsane.usermap). 

Danke. Die habe ich zwar nicht zur Hand, jedoch werde ich morgen mal die Doku 
fressen.

 Als ersten Parameter 
 gibst du den Namen des Skriptes an (dieses liegt ebenfalls in
 /etc/hotplug/usb), als 3. und 4. Parameter VendorID und ProdID

 Dem Skript werden vom hotplugd u.a. Parameter zu ACTION=[add|remove]
 mitgegeben, aufgrund deren du entsprechende Vorgänge auslösen kannst.

Klingt nachdem was ich suche.

 Ich habe gerade eine Backuplösung mit einer externen USB-Hd gebastelt.
 Einziger Punkt bei mir, dem ich allerdings noch nicht weiter nachgehen
 konnte, ist: Als ACTION wird lediglich add vom hotplugd übergeben,
 kein remove. Momentan könnte ich auf ein Abstöpseln des Gerätes nicht
 reagieren. Ist aber laut Doku so vorgesehen, wird also auch irgendwie
 gehen.

Klingt vielversprechend. Danke,

Keep smiling
yanosz



Re: Programm bei USB (dis)connect starten?

2005-01-09 Diskussionsfäden Gerhard Brauer
Gruesse!
* Jan Lühr [EMAIL PROTECTED] schrieb am [09.01.05 21:42]:

  Kurz:
  Du brauchst die VendorID und die ProdID des devices, z.b. über lsusb
  -v[vv].
 
 In welchem Paket ist dies?

usbutils

 
  In /etc/hotplug/usb erstellst du ein File usbgeraet.usermap (die
  usermap files Einträge werden in der Doku beschrieben oder du
  orientierst dich z.B. an der libsane.usermap). 
 
 Danke. Die habe ich zwar nicht zur Hand, jedoch werde ich morgen mal die Doku 
 fressen.

Klar, die kam ja erst mit dem Sane-Dingsbums.
Hier der relevate Teil (Sorry für überlange Zeilen bzw. verhunzten 
Zeilenumbruch)

# The entries below are used to detect a USB scanner when it's plugged in
# and then run the libusbscanner script to change the ownership and
# permissions on the device node used by libusb.
#
# The 0x0003 match flag means the device is matched by its vendor and
# product IDs.
#
# Sample entry (replace 0x and 0x with vendor ID and product ID 
respectively) :
# libusbscanner  0x0003  0x   0x0x   0x   
0x00 0x000x000x000x00   
0x00   0x
#
# usb module match_flags idVendor idProduct bcdDevice_lo bcdDevice_hi 
bDeviceClass bDeviceSubClass bDeviceProtocol bInterfaceClass bInterfaceSubClass 
bInterfaceProtocol driver_info
#
 
 Keep smiling
 yanosz

Gruß
Gerhard



Re: Programm bei USB (dis)connect starten?

2005-01-09 Diskussionsfäden Thomas Jahns
Gerhard Brauer [EMAIL PROTECTED] writes:
 Gruesse!
 * Jan Lühr [EMAIL PROTECTED] schrieb am [09.01.05 18:39]:
 
  ja hallo erstmal,..
  
  ist es eigentlich möglich, ein Programm automatisch zu starten, wenn ich 
  ein 
  USB-Gerät Verbinde, bzw. es entferne?
 
 Ja, über hotplug. man und Doku zu hotplug hat Beispiele dazu.
 
 Kurz:
 Du brauchst die VendorID und die ProdID des devices, z.b. über lsusb 
 -v[vv].

[...]

Wenn man auch remove-Ereignisse sehen möchte und außerdem den Namen des
device sicher wissen will, bietet es sich an, das gleich durch udev zu
realisieren. Siehe auch
http://ccomb.free.fr/wiki/wakka.php?wiki=UsbMassStorageEnglish

Thomas Jahns
-- 
Computers are good at following instructions,
 but not at reading your mind.
D. E. Knuth, The TeXbook, Addison-Wesley 1984, 1986, 1996, p. 9