View previous topic :: View next topic |
Author |
Message |
Dimitri Guru
Joined: 24 Jul 2002 Posts: 373 Location: Niederbayern/Germany
|
Posted: Mon Sep 09, 2002 6:42 am Post subject: Autom. Script ausführen wenn USB Gerät angeschlossen wird |
|
|
Hi,
ist es möglich ein Script auszuführen wenn ich ein USB Gerät einstecke. (Möchte meine Kamera automatisch mounten)
Dim |
|
Back to top |
|
|
zbled Apprentice
Joined: 18 Jun 2002 Posts: 216 Location: Bukowski's Piano Bar
|
Posted: Mon Sep 09, 2002 6:58 am Post subject: |
|
|
da gibt es doch im kernel die option "hot plugable devices". hat nicht das damit zu tun? wenn du kernel automount oder so ähnlich aktiviert hast, müßte linux, sobald es erkennt, daß das und das modul für das gerät benötigt werden, automatisch laden. |
|
Back to top |
|
|
Dimitri Guru
Joined: 24 Jul 2002 Posts: 373 Location: Niederbayern/Germany
|
Posted: Mon Sep 09, 2002 7:12 am Post subject: |
|
|
Hi,
es geht nicht darum das Gerät zu erkennen. Das geht schon alles. Ich möchte es nur sobald es eingesteckt wird einen Mount Befehl ausführen. Automount ist bei mir mit einkompiliert. Muss ich mal sehen wie der funktioniert.
Dim |
|
Back to top |
|
|
cyc Tux's lil' helper
Joined: 28 Jun 2002 Posts: 89
|
Posted: Mon Sep 09, 2002 12:40 pm Post subject: |
|
|
schreib mal ob du was erreichen konntest, ich hab das gleiche vor (mit ner digicam) _________________ http://www.gentoo-de.org
Gentoo userpage |
|
Back to top |
|
|
Konfuzius n00b
Joined: 24 Jul 2002 Posts: 58 Location: Schwarzenbek
|
Posted: Mon Sep 09, 2002 12:56 pm Post subject: |
|
|
zbled wrote: | da gibt es doch im kernel die option "hot plugable devices". hat nicht das damit zu tun? wenn du kernel automount oder so ähnlich aktiviert hast, müßte linux, sobald es erkennt, daß das und das modul für das gerät benötigt werden, automatisch laden. |
hot plug bedeutet ja nur, dass du das Gerät im laufenden Betrieb anschliessen oder auch wieder abziehen kannst, ohne dass der Kernel ne Grätsche macht, bzw. er das Gerät auch findet..
Ohne hot plug muss das Gerät sonst bereits beim booten des Systems angeschlossen gewesen sein, damit das Ding gefunden und betrieben werden kann.. _________________ pedo mellon a minno
Seti@Home:
[img:e92bd75090]http://www.fullmoonlinux.de/seti/userstats.php?bcolor=128,128,128&tcolor=129,128,128&l=1&email=1[/img:e92bd75090] |
|
Back to top |
|
|
Beforegod Bodhisattva
Joined: 10 Apr 2002 Posts: 1494 Location: Frankfurt/Main
|
Posted: Mon Sep 09, 2002 2:37 pm Post subject: Kernel Messages und Cron |
|
|
Du könntest (auch wenns nur ein workaround ist) das ganze mittels den Kernel Messages und Cron machen.
Lass alle 30 Sekunden ein Skript laufen das nach dem Anschluss der Kamera sucht!
dmesg | grep usb (oder Kamerabezeichnung)
und dann auswerten..
(wenn usb geladen => mount /dev/sda1 /mnt/digi)
kann dir aber leider auch nicht das skript schreiben, da ich keine Ahnung von Bash Programmierung habe |
|
Back to top |
|
|
KiLLaCaT Guru
Joined: 24 Jul 2002 Posts: 306 Location: Linz, Austria
|
Posted: Mon Sep 09, 2002 3:30 pm Post subject: |
|
|
also ich bin zwar kein profi, aber einen ansatz kann ich liefern:
Code: |
#!/bin/bash
#Programm autostart.sh
if [ -e "/dev/usb/<camera_oder_so>"]; then
mount /dev/usb/<camera_oder_so> /mnt/camera
else
wait 30
autostart.sh
fi
|
das problem is, dass er wissen muss, ob die camera angestöpselt is. man könnte ja die standard-ausgabe in eine datei umleiten, wenn er dann meldet, dass was eingesteckt wurde schreibt er das in die datei. wenn man dann ein if commando laufen lasst, das schaut ob die meldung über eine usb device steht, und dann mit dem obigen scrpt weitermacht, währe das prob gelöst |
|
Back to top |
|
|
KiLLaCaT Guru
Joined: 24 Jul 2002 Posts: 306 Location: Linz, Austria
|
|
Back to top |
|
|
sesc n00b
Joined: 01 Sep 2002 Posts: 24 Location: Hilden, Germany
|
Posted: Mon Sep 09, 2002 8:08 pm Post subject: post-install |
|
|
Hi,
man könnte auch folgendes machen, was wesentlich eleganter wäre (wenn es funktioniert ):
es handelt sich ja um ein usb-storage-device, also wird vom kernel automatisch das entsprechende modul geladen. der kernel guckt hierfür in die modules.conf und diese bietet die option "post-install" an.
der eintrag "post-install usb-storage mount verzeichnis" müsste also das tun, was du willst!
Ciao
Sebastian _________________ Und Gott sprach: tar -xf universe.tar |
|
Back to top |
|
|
Dimitri Guru
Joined: 24 Jul 2002 Posts: 373 Location: Niederbayern/Germany
|
Posted: Mon Sep 09, 2002 8:12 pm Post subject: |
|
|
Hi,
das ganze geht ganz einfach wenn man weiss wie *gg*.
Unter /proc/sys/kernel gibt es eine Datei hotplug. darin steht der Name des Scripts das aufgerufen wird, wenn ein USB Gerät eingesteckt wird.
Standardmässig ist das /sbin/hotplug. Diese Datei gibts unter Gentoo anscheinend nicht. Deshalb einfach eine erstellen:
#!/bin/sh
mount /mnt/camera
Und fertig. Nicht vergessen die Datei ausführbar zu machen.
Der nächste Schritt ist dann, automatisch auf dem Desktop ein Icon erscheinen zu lassen, mit dem man den entsprechenden Ordner öffnen kann. (So wie's in der neuen Mandrake 9 Beta gemacht ist) Wenn ich das hingebracht hab, schreib ich's wieder rein.
Dim |
|
Back to top |
|
|
sesc n00b
Joined: 01 Sep 2002 Posts: 24 Location: Hilden, Germany
|
Posted: Mon Sep 09, 2002 8:18 pm Post subject: |
|
|
Dimitri wrote: | Hi,
das ganze geht ganz einfach wenn man weiss wie *gg*.
Unter /proc/sys/kernel gibt es eine Datei hotplug. darin steht der Name des Scripts das aufgerufen wird, wenn ein USB Gerät eingesteckt wird.
Standardmässig ist das /sbin/hotplug. Diese Datei gibts unter Gentoo anscheinend nicht. Deshalb einfach eine erstellen:
|
hi,
doch doch, die Datei gibts, zumindest wenn das System "anständig" installiert ist
Nach emerge sys-apps/hotplug hast du sie auch!
Ciao
Sebastian
Anmerkung: Ich habe aber folgendes in der readme des hotplug-pakets gefunden:
Quote: |
- Drivers may provide a per-device setup script that's invoked after
they modprobe: /etc/hotplug/usb/MODULENAME is called.
EXAMPLE: When you connect your USB PDA, you might want to
automatically start its hotsync daemon. (visor)
|
_________________ Und Gott sprach: tar -xf universe.tar |
|
Back to top |
|
|
rs n00b
Joined: 20 Jun 2002 Posts: 4
|
Posted: Mon Sep 09, 2002 10:40 pm Post subject: |
|
|
KiLLaCaT wrote: | also ich bin zwar kein profi, aber einen ansatz kann ich liefern:
Code: |
#!/bin/bash
#Programm autostart.sh
if [ -e "/dev/usb/<camera_oder_so>"]; then
mount /dev/usb/<camera_oder_so> /mnt/camera
else
wait 30
autostart.sh
fi
|
das problem is, dass er wissen muss, ob die camera angestöpselt is. man könnte ja die standard-ausgabe in eine datei umleiten, wenn er dann meldet, dass was eingesteckt wurde schreibt er das in die datei. wenn man dann ein if commando laufen lasst, das schaut ob die meldung über eine usb device steht, und dann mit dem obigen scrpt weitermacht, währe das prob gelöst |
Naja, das Skript startet sich alle 30 Sekunden selbst neu, was früher oder später den Speicher vollfüllt und das ist gar nicht gut. Eine herkömmliche Endlosschleife hätte es auch getan. |
|
Back to top |
|
|
SNo0py Apprentice
Joined: 12 Jul 2002 Posts: 270 Location: Vienna, Austria
|
Posted: Sun Oct 20, 2002 1:37 pm Post subject: |
|
|
Und, hat schon jemand eine elegante Lösung gefunden? Die mit dem Cron-Script halte ich nicht für sinnvoll, da Polling nur CPU-Zeit in Anspruch nimmt. Wozu gibts die hotplug-Scripts?
lg
Mike _________________ Sex is like hacking. You get in, you get out, and you hope you didnt leave something behind that can be traced back to you. |
|
Back to top |
|
|
Henning Apprentice
Joined: 08 Sep 2002 Posts: 196 Location: Braunschweig
|
Posted: Sun Oct 20, 2002 3:17 pm Post subject: |
|
|
Ähm, ?
welche elegante Lösung meinst du denn? Ich bin mir einfach gemäß den Angaben in diesem Thread vorgegangen.
Also zuerst 'emerge hotplug', dann unter /etc/hotplug/usb das Script mit dem mount Befehl bereitstellen. Bei mir war das z.B. usb-storage um einen USB-Stick bzw. Card-Reader einzubinden.
Das war's.
Wenn man verschiedene Devices nutzen will, muß man den mount natürlich etwas intelligenter gestalten.
Einziges Problem ist das unplug. Hier muß natürlich zuerst ein umount gemacht werden, und dann das Gerät entfernt werden. Ist halt wie bei ner floppy.
Wo ist also daß Problem?
Henning |
|
Back to top |
|
|
SNo0py Apprentice
Joined: 12 Jul 2002 Posts: 270 Location: Vienna, Austria
|
Posted: Mon Oct 21, 2002 5:35 am Post subject: |
|
|
Na ja, ich möchte meine Digicam "deppensicher" an den Server hängen, d.h. wenn sie an den USB-Port gehängt und aktiviert wird, dann soll sie automatisch mounten und die Bilder sollen via Samba freigegeben werden. Um das ganze möglichst einfach benutzbar zu machen muss natürlich auch ein automatisches unmount funktionieren, damit der nächste wieder anstecken kann.
Im Sinne der Einfachheit sollte natürlich nicht "per Hand/SSH" ungemounten werden...
lg _________________ Sex is like hacking. You get in, you get out, and you hope you didnt leave something behind that can be traced back to you. |
|
Back to top |
|
|
Henning Apprentice
Joined: 08 Sep 2002 Posts: 196 Location: Braunschweig
|
Posted: Mon Oct 21, 2002 3:04 pm Post subject: |
|
|
Hallo,
also das mit mount geht ja problemlos. Beim umount muß sicher Forschungsarbeit geleistet werden.
Es kann ja schließlich nicht verhindert werden, jemand das USB Device zieht, bevor der umount gelaufen ist.
In der Praxis hat das trennen bei mir funktioniert. Ich möchte meine Hand allerdings nicht dafür ins Feuer legen, daß das Dateisystem nicht beschädigt wird, wenn beim unplug gerade auf das device geschrieben wird.
Da das mounten ja über ein script geschieht, könnte man vorher vielleich sicherheitshalber ein umount absetzen.
Hat schon mal jemand getestet, ob das script auch beim unplug aufgerufen wird?
Ach ja, zum Thema automatisch ein Icon auf dem Desktop erscheinen lassen.
Das geht relativ einfach (KDE). Man erstellt das gewünschte Icon zunächst von Hand und verschiebt es aus /home/userid/Desktop an einen 'sicheren' Ort.
Das Hotplug-Script kopiert es dann einfach wieder zurück. |
|
Back to top |
|
|
|