Stick mit udev einbinden

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
nixdorf
Beiträge: 450
Registriert: 12.11.2004 09:38:34

Stick mit udev einbinden

Beitrag von nixdorf » 21.02.2008 17:31:14

Ich möchte einen UMTS-Stick mit einer udev-Regel automatisch beim einstecken anbinden. Daher habe ich fogenede datei /etc/udev/rules.d/z88_vodafone.sh erstellt. MIt folgendem Inhalt:

SUBSYSTEM=="usb", SYSFS{idProduct}=="5010", SYSFS{idVendor}=="1410", ACTION=="add", RUN+="/usr/bin/vodafone.sh".

Dann habe ich noch ein Scrip /usr/bin/vodafone.sh. Dort steht erst mal nur drin:

#!/bash
eject $device.
Das soll mir jetzt erst mal nur Laufwerk rauswerfen, wenn es funktioniert.
Dieses Script funktioniert auch schon, wenn ich ./usr/bin/vodafone.sh eingebe. Wenn ich den Stick reinstecke passiert aber noch nichts. Woran kann das liegen?

Das zeigt lsusb -v wenn ich den Stick einstecke:

Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x1410
idProduct 0x5010
bcdDevice 0.00
iManufacturer 1 Novatel Wireless
iProduct 2 Novatel Wireless HSUPA Modem
iSerial 4 356846010723590
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk (Zip)
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x88 EP 8 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x09 EP 9 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Device Status: 0x0000
(Bus Powered)


Hat da wer eine Idee? Beide Scripte habe ich momentan auf chmod 777 gesetzt.

Gruß NIxdorf

Benutzeravatar
daFreak
Beiträge: 875
Registriert: 14.09.2005 12:09:59
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von daFreak » 21.02.2008 20:36:37

hi!

muss

Code: Alles auswählen

#!/bash 
nicht normalerweise

Code: Alles auswählen

#!/bin/sh 
heißen?

was is denn eigentlich hinter $device hinterlegt?
vielleicht ist das in dem skript (ist ja quasi ne sub-shell) nicht erreichbar?
was möchtest du mit dem eject erreichen?

Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von cirrussc » 22.02.2008 22:45:04

Hi,
daFreak hat geschrieben:was is denn eigentlich hinter $device hinterlegt?
Das ist hoffentlich nur ein Platzhalter fürs richtige device.
daFreak hat geschrieben:was möchtest du mit dem eject erreichen?
Das soll mir jetzt erst mal nur Laufwerk rauswerfen, wenn es funktioniert. hat geschrieben:Das soll mir jetzt erst mal nur Laufwerk
rauswerfen, wenn es funktioniert.
Zu Testzwecken wohl :wink:

Kann es eventuell daran liegen:

Code: Alles auswählen

/etc/udev/rules.d/z88_vodafone.sh 
Denn normalerweise enden die Regeln auf .rules.

Code: Alles auswählen

/etc/udev/rules.d/z88_vodafone.rules
Nur ein unbestätigter Verdacht.
Gruß cirrussc
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl

nixdorf
Beiträge: 450
Registriert: 12.11.2004 09:38:34

Beitrag von nixdorf » 23.02.2008 12:36:40

Hallo,

es muste natürlich /etc/udev/rules.d/z88_vodafone.rules heißen


Danke ...


Gruß NIxdorf

Antworten