ubuntuusers.de

RS232 auf /dev/ttyUSB0 für User Schreibbar machen

Status: Gelöst | Ubuntu-Version: Kubuntu 11.04 (Natty Narwhal)
Antworten |

corpsman

Anmeldungsdatum:
25. Juli 2009

Beiträge: 142

Wohnort: Stuttgart

Guten morgen allerseits,

Ich habe mich für die Programmierung von µ-Kontrollern entschieden und bin mittlerweile auch schon recht weit. Doch nun habe ich ein Ubuntu Problemchen, dass ich nicht alleine lösen kann.

Ich habe meinen µ-Kontroller via Uart an eine RS232 ( serielle Schnittstelle ) angeschlossen. PC seitig ist das ein USB auf RS232 Adapter mit 2 Ausgängen.

corpsman@corpsman2:~$ lsusb
Bus 005 Device 014: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 005 Device 013: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

Nun habe ich das Problem, dass ich jedes mal wenn ich mit dem µ-Kontroller via Uart kommunizieren will folgendes eingeben muss :

kdesudo chmod a+rw /dev/ttyUSB0 

Diesen Schritt würde ich zukünftig gerne auslassen. Die Frage ist nun wie kriege ich das hin ?

ein Eintrag der Form :

ATTR{idVendor}=="0403", ATTR{idProduct}=="6001", GROUP="admin", MODE="0660" # Uart für den User Nutzbar machen 

in der Datei : /etc/udev/rules.d/80-usbprog.rules

welcher in ähnlicher Form dazu geführt hatte, dass ich mein USB-Programmiergerät ohne Root ansprechen kann, hilft dieses mal leider nicht.

Könnt ihr mir weite helfen ?

Gruß Corpsman

UrbanFlash Team-Icon

Avatar von UrbanFlash

Anmeldungsdatum:
21. Februar 2006

Beiträge: 5549

Wohnort: Wien

Mach es einfach über die Datei /etc/rc.local. Die wird beim Boot mit Rootrechten ausgeführt, deshalb reicht dort der Eintrag "chmod a+rw /dev/ttyUSB0" vor dem 'exit 0'.

corpsman

(Themenstarter)

Anmeldungsdatum:
25. Juli 2009

Beiträge: 142

Wohnort: Stuttgart

das würde doch nur gehen, wenn ich den Adapter immer im System habe. Nu ist der Rechner auf dem das läuft ein Laptop, und ich stecke den Adapter nur bei Bedarf ein. Beim Boot ist er eher selten bis gar nicht angesteckt.

Nicht das meine Frage falsch rüber kam, ich würde gerne komplett auf den Befehl verzichten und es so haben wie bei meinem Programmieradapter. Also das mein User einfach immer das Recht bekommt auf das Gerät zu zu greifen, wenn es gemountet wird. Die Vendor ID habe ich ja, nur scheint das nicht zu genügen...

UrbanFlash Team-Icon

Avatar von UrbanFlash

Anmeldungsdatum:
21. Februar 2006

Beiträge: 5549

Wohnort: Wien

Tja, das kommt von halben Infos...

Deine erste Idee wäre dann schon richtig, sicherstellen, dass du in der nötigen Gruppe bist und die Rechte eventuell anpassen, aber ich trau mich jetzt nichts mehr fix sagen, weil ich nicht weiß was du schon probiert hast und was nicht.

corpsman

(Themenstarter)

Anmeldungsdatum:
25. Juli 2009

Beiträge: 142

Wohnort: Stuttgart

Tja, das kommt von halben Infos...

Sry, welche Info's brauchst du noch ?

aber ich trau mich jetzt nichts mehr fix sagen, weil ich nicht weiß was du schon probiert hast und was nicht.

Alles was ich bis jetzt Probiert habe war genau das was in Post 1 steht.

Ich habe in die Datei /etc/udev/rules.d/80-usbprog.rules

ATTR{idVendor}=="0403", ATTR{idProduct}=="6001", GROUP="admin", MODE="0660" # Uart für den User Nutzbar machen

eingetragen. dann ein Restart mittels :

sudo /etc/init.d/udev restart

und den USB Adapter aus und wieder eingesteckt. Danach kam immer noch die Meldung, das der Rechner Root Rechte Braucht. Mein "Workaround" mittels

kdesudo chmod a+rw /dev/ttyUSB0

ist die einzige andere Variante die ich bisher getestet habe.

In Kurzform :

Ich starte den Rechner. Ich Programmiere / Spiele, was auch immer, dann stecke ich den USB Adapter ein und will die Uart in Betrieb nehmen ⇒ und das soll ohne Root rechte gehen. Das Problem ist, dass die Datei "ttyUSB0" nur dann erstellt wird, wenn ich den USB Adapter einstecke und wieder gelöscht wenn ich ihn abziehe. Deine "Lösung" müsste dann an einer Stelle stehen, welche beim erstellen der "ttyUSB0" aufgerufen wird und Root Rechte hat.

Ich freue mich über alle deine Vorschläge egal in welcher Qualität/ Geschwindigkeit. Solange sie mir mein System nicht abschießen und evtl. ein Vorschlag das gewünschte erreicht bin ich happy *g*.

da1l6

Avatar von da1l6

Anmeldungsdatum:
29. August 2005

Beiträge: 3825

Hallo

Normalerweise reicht es aus den Benuter in die richtige Gruppe einzufügen. Welche das ist listet

ls -al /dev/ttyUSB*

Unter Debian sieht das so aus:

crw-rw---- 1 root dialout 188, 0 Jul 11 01:16 /dev/ttyUSB0

Unter Archlinux so:

crw-rw---- 1 root uucp 188, 0 11. Jul 01:19 /dev/ttyUSB0

(Die Ubuntu Installationen sind mir gerade ausgegangen)

Benuzer in die Gruppe "dailout" bzw. "uucp" einfügen und gut ist.

corpsman

(Themenstarter)

Anmeldungsdatum:
25. Juli 2009

Beiträge: 142

Wohnort: Stuttgart

Ich liebe es wenn ein Plan funktioniert.

corpsman@corpsman2:~$ ls -al /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0 2011-07-11 17:27 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1 2011-07-11 17:27 /dev/ttyUSB1
corpsman@corpsman2:~$ id
uid=1000(corpsman) gid=1000(corpsman) groups=1000(corpsman),20(dialout),114(admin),118(vboxusers),1001(truecrypt)
corpsman@corpsman2:~$ 

nu geht alles wunderbar. Vielen Dank.

Antworten |