Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: GentooForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

19.09.2009, 10:44

Udev rule

Ich versuche gerade eine UDEV rule zum laufen zu bewegen leider vergebens ..

es geht um den Arduino Microcontroller welcher ein skript beim anstecken ausführen , und beim abstecken beenden soll. gleichzeitig wird mit der rule auch ein symlink erstellt .

die rule sieht so aus:

Quellcode

1
2
3
# cat /etc/udev/rules.d/11-arduino.rules
SUBSYSTEMS=="usb", ATTRS{product}=="FT232R USB UART", ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403",  ACTION=="add", SYMLINK+="arduino arduino_$attr{serial}, RUN+="/bin/bash /FUT/arduino-listener.sh"
SUBSYSTEMS=="usb", ATTRS{product}=="FT232R USB UART", ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403", ACTION=="remove", RUN+="killall arduino-listener.sh"


Das symlink erstellen funktioniert, somit nehme ich an dass die ATTRS stimmen .. daher .. die Regel greift schon mal , jedoch wird das skript nicht ausgeführt.


Irgendwo habe ich gelesen dass man wegen den fehlenden umgebunsgvariablen im auszuführenden skript alles mit voll pfad definieren muss .. das habe ich nun auch getan:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# cat /FUT/arduino-listener.sh
#!/bin/bash                                      

# su - dj -c "/FUT/arduino-listener.sh &" 2> /dev/null
/bin/stty -F /dev/ttyUSB0 raw speed 115200
i=0

function arduread
{
        ardread=`/usr/bin/head -n 1 /dev/ttyUSB0`
        case $ardread in
                \01*) /bin/echo "waxit 02";;
                \02*) /usr/bin/waxit -repair 2;;
                \03*) /usr/bin/waxit -r 2
                      /usr/bin/perl -e 'select(undef,undef,undef,.1)'
                      /usr/bin/waxit -c 2;;
                \04*) /usr/bin/waxit -r 3
                      /usr/bin/perl -e 'select(undef,undef,undef,.1)'
                      /usr/bin/waxit -c 3;;
                \05*) /bin/echo "waxit 06";;
                \06*) /usr/bin/waxit -repair 3;;
                \07*) /usr/bin/waxit &;;
                \08*) /usr/bin/unwaxxit;;
                \09*) /bin/echo "waxit 10";;
                \10*) /usr/bin/waxit -repair 1;;
                \11*) /usr/bin/waxit &;;
                \12*) /usr/bin/waxit -r 1
                      /usr/bin/perl -e 'select(undef,undef,undef,.1)'
                      /usr/bin/waxit -c 1;;
        esac
}

while [ $i -eq 0 ];
do
        arduread
done



hat jemand eine Idee ? .. ich irgendwie nicht mehr ..
Intel core 2 duo E6600
XFX Geforce 7950 gt
4096 MB DDR2
Intel DP35DP

2

23.09.2009, 19:01

Zitat

RUN+="/bin/bash /FUT/arduino-listener.sh"


Hast Du das Script ausführbar gemacht?? Wenn ja, ändere das RUN mal ab.

Quellcode

1
RUN+="/FUT/arduino-listener.sh"



Du kannst ja auch mal in Dein script noch einen Befehl einfügen ganz am Anfang.

Zitat

touch /script-ausgeführt


dann kannst Du sehen ob das Script überhaubt angefasst wurde.

Gruß

3

24.09.2009, 10:10

ja das skript ist ausführbar .. im Moment wird es einfach beim boot gestartet . Sauberer wäre es natürlich mit der Rule.


das mit touch ist eine gute idee .. wenn ich das nächste mal pyhsisch vor dem kistl stehe, werde ich das mal testen
Intel core 2 duo E6600
XFX Geforce 7950 gt
4096 MB DDR2
Intel DP35DP

4

03.10.2009, 09:40

Hatte gestern wiedermal Zeit mich ein wenig damit zu spielen, und naja .. es funktioniert einfach nicht ...


habe das /bin/bash bei "RUN+=" rausgenommen .. und um zu sehen ein touch eingefügt ... das skript wird nicht angetastet .. der symlink jedoch erstellt.


Hat vielleicht noch jemand eine Idee? .. kann doch nicht so schwierig sein .. ;)
Intel core 2 duo E6600
XFX Geforce 7950 gt
4096 MB DDR2
Intel DP35DP