ubuntuusers.de

Arduino IDE mit Root rechten starten

Status: Gelöst | Ubuntu-Version: Ubuntu 12.04 (Precise Pangolin)
Antworten |

Heiny

Anmeldungsdatum:
26. Mai 2013

Beiträge: 89

Hallo erstmal.

Ich habe mir im Software-Center die Arduino IDE installiert und möchte die mit Roor rechten starten damit das Serial Port Menü-Item nicht mehr grau unterlegt ist. Ich kann die IDE mit

sudo arduino
oder
gksudo arduino

starten, aber ich möchte das sie sofort mit Root rechten startet nachdem ich auf das Startericon geklickt habe. Ich habe schon gegoogelt und habe die Info gefunden das ich einen Eintrag in der arduino.desktop Datei ändern muss. Diese datei sollte sich eigendlich in

/usr/share/applications/

befinden. Diese existiert bei mir aber nicht.

Jetzt die eigendliche Frage: Liegt diese Datei doch woanders oder kann ich sie selbst erstellen, wenn ja welche Einträge braucht die Datei.

Ich habe mir auch die neuste Version der IDE von der Arduino-Website heruntergeladen und entpackt. Mit der Datei "arduino" kann ich kann ich diese starten, aber ich möchte auch diese gern mit Root-Rechten starten. Bisher muss ich das so machen:

sudo nautilus

und dann die Datei starten.

Wie geht das besser? Vielen Dank für eure Hilfe.

spitzbuaamy

Anmeldungsdatum:
25. Februar 2013

Beiträge: 276

Hi

Ja die Datei müsste dort sein, bzw. muss dort hin.

Du kannst die Datei mit dem Editor deiner Wahl einfach erstellen. Bzgl. Inhalt: Schau dir eine andere .desktop datei an und trage die Felder ein. Ein gutes Beispiel ist die Datei vom Ubuntu-Software-Center.

lg spitzbuaamy

Dakuan

Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6503

Wohnort: Hamburg

... damit das Serial Port Menü-Item nicht mehr grau unterlegt ist.

Möglicherweise reicht es aus, wenn du deinen User der Gruppe 'dialout' hinzufügst damit er serielle Schnittstellen benutzen darf.

Ich hatte damit keine Probleme. Allerdings benutze ich die IDE auf einem reinen Debian Rechner. Die IDE habe ich dort auch über die Paketverwaltung installiert. Bei mir gibt es die Datei zwar, aber ich habe keine Ahnung welcher Eintrag dort geändert werden sollte. Leider kann ich den Inhalt jetzt nicht kopieren, da mein einfacher KVM-Switch (da hängen 4 PCs drann) das nicht kann. Der Einzige Eintrag der dafür möglicherweise in Betracht kommt lautet bei mir:

Terminal=false

aber ich denke das bezieht sich auf die Verwendung ohne GUI. Jedenfalls geht bei mir alles wie gedacht (wenn man von einigen Merkwürdigkeiten der IDE selbst mal absieht). Root Rechte brauchte ich bisher jedenfalls nicht.

Heiny

(Themenstarter)

Anmeldungsdatum:
26. Mai 2013

Beiträge: 89

So, also jetzt hab ich mir die Datei erstellt und es funktioniert wie gewünscht.

Jetzt hab ich noch die Frage wie ich diese Scriptdatei mit Root-rechten starte.

Und auch noch: Warum gibt die IDE den Arduino immer den Reset-befehl wenn ich mal kurz über den Menüpunkt "Tools" gehe?

Ich meine bei Serial-Monitor macht das ja sinn, aber gleich beim Menüpunkt.

Das ist ziemlich nervig kann man das ändern?

Danke im voraus. Heiny

Dakuan

Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6503

Wohnort: Hamburg

Jetzt hab ich noch die Frage wie ich diese Scriptdatei mit Root-rechten starte.

Welche Scriptdatei meinst du denn jetzt? Ein Script kann man eigentlich nur durch vorsetzen von sudo mit Root Rechten laufen lassen. Möglicherweise kann man da noch etwas mit /etc/sudoers tricksen. Aber da ich dein Problem in der beschriebenen Form nicht nachvollziehen kann, sehe ich da keinen Sinn drinn. Ich denke auch, wenn das ein allgemeines Problem wäre, würden sich genug Benutzer beschweren, sadass den Entwicklern ständig die Ohren klingeln müssten. Anders gesagt, ich denke das Problem liegt woanders.

Also ich rufe die IDE als normaler Benutzer auf und kann das erzeugte Programm einfach per Upload-Button übertragen.

Und auch noch: Warum gibt die IDE den Arduino immer den Reset-befehl wenn ich mal kurz über den Menüpunkt "Tools" gehe?

Ups, das ist mir noch gar nicht aufgefallen, aber ich kann das bestätigen. Möglicherweise hängt das damit zusammen, das in diesem Moment der Menübaum aufgebaut wird und die Erreichbarkeit und der Typ der CPU bzw. Board getestet wird. Immerhinn ist die Liste der möglichen Boards so lang, das sie kaum auf 1024x768 Bildschirme passt. Ich denke um dass zu ändern must wohl du den Entwicklern auf die Füße treten und hoffen dass sie einsehen da unnötig radikal vorzugehen.

Mich ärgert übrigens auch die Tatsache, das ich die IDE beenden muss, um per Serieller Schnittstelle Daten zur Auswertung an ein spezielles Programm zu übergeben, etwa so:

cat /dev/ttyACM0 | <Programmname>

Heiny

(Themenstarter)

Anmeldungsdatum:
26. Mai 2013

Beiträge: 89

Ich meine:

1. Ich habe mir die IDE 1.0.5 von der Website geladen.

2. Ich habe das Archiv entpackt.

3. Die Datei "arduino" gestartet, aber ohne Root-rechte.

Wenn ich diese mit

cd "Verzeichnispfad"
arduino

staten möchte wird die IDE 1.0.1 aus dem Software-Center geladen.

Mit

cd "Verzeichnispfad"
sudo arduino

ist dass das Gleiche nur mit Root-rechten.

Ein Umbenennen der Datei in "arduino_start" hat mich auch nicht weiter gebracht, denn dann bekomme ich diese Antwort:

sudo: arduino_start: Befehl nicht gefunden

Bezüglich des Resets kann ich dir noch sagen, dass:

1. Bei einem Rechnerneustart,

2. bei dem Start der IDE,

3. bei dem Tools-Menüpunkt,

4. und beim start des Serial-Monitors,

5. ...

Ich habe ein wenig Angst das bei so vielen Reset-befehlen igenwann mal ein Speicher(Register, RAM, EEPROM, Flash ROM) kaputt geht. Meiner Meinung nach sind das zu viel Resets. Ich will meine Arduinos noch ein paar Jahre benutzen.

Bei deinem Problem kann ich dir leider nicht weiter helfen weil ich so etwas noch nie getan habe. Ich glaube sobald die IDE gestartet ist reserviert sie die serielle Schnittstele für sich und mann hat von "Außen" keinen Zugriff mehr darauf.

Die Arduino IDE ist doch Open-Source, vieleicht kann mann die Quelltexte etwas abwandeln um unsere Probleme zu lösen. Ich kann es leider nicht weil ich nicht so gut im lesen von fremden Quelltexten bin, da ich ja eigendlich noch ein Programmieranfänger bin.

Dakuan

Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6503

Wohnort: Hamburg

Ich habe die Version 1.0.1 unter Debian aus der Paketverwaltung installiert und es funktioniert alles soweit. Warum du Root Rechte benötigst, kann ich mir nicht erklären. Für den Zugriff auf die Serielle Schnittstelle muss dein User nur der Gruppe "dialout" angehören. Es wäre allerdings noch zu prüfen, ob dein user lesenden Zugriff auf "/usr/share/arduino/..." hat.

Die Anwendungen selbst sollten aber unter "home/<username>/scetchbook/" zu finden sein.

Ich kann die IDE ganz normal über das Anwendungen Menü Starten "Elektronik/Arduino IDE" oder "Entwicklung/Arduino IDE" oder auch direkt aus der Konsole mit "arduino". Wo diese Datei dann liegt zeigt:

which arduino
/usr/bin/arduino

Ich habe ein wenig Angst das bei so vielen Reset-befehlen igenwann mal ein Speicher(Register, RAM, EEPROM, Flash ROM) kaputt geht. Meiner Meinung nach sind das zu viel Resets. Ich will meine Arduinos noch ein paar Jahre benutzen.

Da kann ich dich beruhigen. Ein Reset hat damit nichts zu tun. Ein Reset bedeutet ja nur, das einige Register, vornehmlich der Programmzähler auf 0, oder einen anderen definierten und sinnvollen Anfangswert gesetzt werden, damit das Programm wieder neu gestartet wird.

Der von dir befürchtete Alterungsprozess betrifft u.a. die Programmierung des Flash ROMs, welches ca. 10.000 Mal programmiert werden kann. Das bedeutet, du kriegst das Ding in einem Jahr kaputt, wenn du es täglich 10.000/365=27.39 Mal neu programmierst. Das ist aber wtwas anderes als ein Reset!

Im Übrigen bin ich zu der Erkenntniss gekommen, das der Reset ein "Hardware Feature" der Arduino Platinen (oder des Bootloaders) ist. Der Reset wird auch jedesmal ausgeführt, wenn ich eine Verbindung aus der Konsole mit dem Programm "picocom" herstelle. Das scheint jedesmal zu passieren, wenn auf der Seriellen Schnittstelle ein entsprechender Statuswechsel erkannt wird, der den Aufbau einer neuen Verbindung erkennen lässt.

Heiny

(Themenstarter)

Anmeldungsdatum:
26. Mai 2013

Beiträge: 89

Na gut dann bin ja erst mal beruhigt, denn über 27mal programmier ich das Board ja nicht.

Wie kann ich meinen User in diese Gruppe eintagen?

Auf "/usr/share/arduino/..." habe ich lesenden Zugriff, aber keinen schreibenden.

Im normalfall ☺

Jetzt möchte ich aber noch wissen wie ich die "arduino"-Datei der 1.0.5 Version über die Konsole starte. Ich finde diese Version besser, da sie mir bei einen Kompilierfehler gleich die Zeile mit den ersten Fehler hervorhebt.

Schön wäre es auch wenn eine zukünftige Version irgendwann IntelliSense unterstützung bekommt.

Dakuan

Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6503

Wohnort: Hamburg

Wie kann ich meinen User in diese Gruppe eintagen?

Da müsste ich auch erstmal nachsehen. Aber vorher sollten wir klären ob das nötig ist. Gib mal in einem Terminal-Fenster folgendes ein:

id

da sollten dann alle möglichen Zugehörigkeiten ausgegeben werden. Wenn da sowas wie "20(dialout)" auftaucht, suchen wir an der falschen Stelle. Eigentlich sollte der erste Benutzer immer Mitglied dieser Gruppe sein, aber möglicherweise gilt das nur, wenn bei der Installation bereits eine Serielle Schnittstelle vorhanden ist (was bei allen meinen Desktop PCs der Fall ist). Bei neueren PCs wird diese ja oft eingespart und bei einem nachträgichen hinzufügen durch die IDE könnten dann zusätzliche Schritte erforderlich werden.

Heiny

(Themenstarter)

Anmeldungsdatum:
26. Mai 2013

Beiträge: 89

Die Antwort vom Terminal auf diesen Befehl ist:

uid=1000(heiny) gid=1000(heiny) Gruppen=1000(heiny),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),109(lpadmin),124(sambashare)

Ich kann damit nur leider nicht viel anfangen, aber ich hoffe es hilft dir weiter mein Problem zu lösen.

Dakuan

Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6503

Wohnort: Hamburg

Alles kenne ich jetzt auch nicht, da müsste ich erst nachsehen. Aber wenn das alles ist, dann fehlt da dialout.

Wie man das jetzt bei deinem System korrigieren kann, kann ich nicht genau sagen (habe sowas einmal per Konsole auf einem Server gemacht). Versuche mal folgendes im Menü ystem:

System/Systemverwaltung/Benutzer und Gruppen/

dann "Entsperren", Kennwort eingeben, Benutzer auswählen, Eigenschaften und dann Haken bei "Modem verwenden" setzen.

Es kann aber sein, das die Menüstruktur bei dir schon wieder anders ist als bei mir oder diese Punkte im Zuge der Vereinfachung weggefallen sind.

In der Konsole sollte es mit:

sudo usermod -aG dialout <Benutzername>

gehen. Bitte vorher aber nochmal in Benutzer und Gruppen nachlesen.

Heiny

(Themenstarter)

Anmeldungsdatum:
26. Mai 2013

Beiträge: 89

Ok, alles klar.

Ich habe mich eben dieser Gruppe hinzugefügt und jetzt habe ich endlich meinen seriellen Zugriff. Habe die Sache vorher mit der 1.0.5 IDE ausprobiert und alles hat ohne Root-rechte funktioniert. Danach habe ich auch noch die arduino.desktop Datei in den "normalen" Zustand geändert. Und was soll ich sagen auch die 1.0.1 IDE hat Zugriff.

Danke erst mal für deine Hilfe. War sehr hilfreich.

Kannst du mir jetzt noch helfen die 1.0.5 IDE sinnvoll zu starten? Ich will nicht extra in den Ordner gehen um die zu starten und auf den Desktop hat die auch nichts zu suchen. Am liebsten wäre es mir wenn ich die in die Starter-leiste verschieben könnte. Ich habe Sie ja schon gestartet und dann versucht sie hinzuzufügen, geht auch, aber wenn ich darauf klicke startet sie nicht. Kann ich darin irgendwie eine sinnvolle Verküpfung erstellen?

Dakuan

Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6503

Wohnort: Hamburg

Freud mich, das es endlich geklappt hat.

Aber wie du die zweite IDE ins Menü kriegst, kann ich jetzt nicht sagen. Das liegt daran, das ich keine aktuelle Gnome bzw. andere aktuelle Ubuntu Oberfläche verwende. Früher gab es ja einen Menü-Editor. Welche Möglichkeiten es aktuell gibt, kann ich nicht sagen, da müsste mal jemand anderes einspringen.

Heiny

(Themenstarter)

Anmeldungsdatum:
26. Mai 2013

Beiträge: 89

Ich habe jetzt erst mal eine Verknüpfung zu der "arduino"-Datei auf dem Dektop abgelegt.

Fals jemanden etwas besseres einfällt bitte melden.

Heiny

(Themenstarter)

Anmeldungsdatum:
26. Mai 2013

Beiträge: 89

Alles klar ich habe mir jetzt ne passende .desktop-Datei das Shell-Skript dafür geschrieben auch diese startet wie gewünscht.

Antworten |