ArduBlock von letsgoing für Arduino auf Ubuntu-Client installieren

Ein herzliches Hallo an alle.

Ich hoffe, Ihr hattet schöne und erholsame Ferien.

Für Informatik in Klasse 7 benötigen meine Informatiklehrer ArduBlock als Java-Ergänzung für die Arduino-Software auf allen Clients. Wir arbeiten noch mit der linuxmuster 6.2.

Ich habe die Installation recherchiert und stoße mit http://blog.ardublock.com/2011/10/25/install-ardublock-arduino-ide/ an meine Grenzen. Auf dieser Seite wird meiner Auffassung die nutzerbezogene Installation bei einem Einzelclient beschrieben und das macht nach meinen Erfahrungen Probleme in der linuxmuster.net.

Hat jemand von euch schon Erfahrung mit der Installation von ArduBlock für alle Schul-Nutzer oder kann mir jemand eine Installationsidee beschreiben? Wichtig wäre für mich, dass ich den richtigen Pfad bekomme, wo ich die Java-Datei hinkopieren muss, um die Erweiterung auf allen Clients installiert zu bekommen und nicht nur auf den linuxadmin-Client.

LG und danke für eure schnelle Hilfe,
Marcus

Hallo Marcus,

vor ein paar Tagen habe ich bei unserem Linux-Client auch Ardublock installiert, aber jetzt ist mir aufgefallen, dass das Problem das Vorlagenverzeichnis ist. Nach einigem Rumprobieren habe ich nun folgende Situation:

  • ardublock kann für alle Benutzer einfach dadurch installiert werden, dass man die Datei als linuxadmin ardublock-all.jar in das Verzeichnis /opt/arduino-1.8.9/tools/ArduBlockTool/tool (die Verzeichnisse müssen in genau dieser Schreibweise angelegt werden bzw. die Arduino Version angespasst werden)
  • den Pfad für das Sketchbook des Benutzers kann auch systemweit in der Datei /opt/arduino-1.8.9/lib/preferences.txt in der Variablen sketchbook.path=Home_auf_Server/Arduino vorgegeben werden, das Problem ist allerdings, dass vor dem Aufruf von Arduino einmalig das Verzeichnis Arduino im Home-Verzeichnis vom Benutzer selbst angelegt werden muss

Jetzt wäre also noch schön, wenn man für alle Benutzer per Script das Verzeichnis Arduino auf dem Server erstellen könnte.
VG Christian

Hallo Christian,

Jetzt wäre also noch schön, wenn man für alle Benutzer per Script das
Verzeichnis Arduino auf dem Server erstellen könnte.

lass das linuxmuster-client-profile machen?

LG

Holger

Hallo Holger,

an sich eine gute Idee, aber wie geht das? Ich finde keine Dokumentation dazu.
VG Christian

… wenn man den Programmcode durchliest, ergeben sich neue Möglichkeiten:

[edit: Verzeichnis korrigiert, es heißt post-mount.d statt profile]

Ich habe auf dem Client eine Datei /etc/linuxmuster-client/post-mount.d/015-arduino erzeugt und ausführbar gemacht:

!/bin/bash
# Dieses Script erzeugt im Serverhome das Verzeichnis Arduino, falls es noch nicht existiert
if [ -d $HOMEDIR/Home_auf_Server/Arduino ]
then
   cd ~
else
   mkdir -p $HOMEDIR/Home_auf_Server/Arduino
fi

Tatsächlich funktioniert das jetzt für einen Benutzer genau so, wie ich es wollte.:+1:

VG Christian

Hallo,

… wenn man den Programmcode durchliest, ergeben sich neue Möglichkeiten:

Ich habe auf dem Client eine Datei
/etc/linuxmuster-client/profile/015-arduino erzeugt und ausführbar gemacht:

!/bin/bash # Dieses Script erzeugt im Serverhome das Verzeichnis
Arduino, falls es noch nicht existiert if [ -d
$HOMEDIR/Home_auf_Server/Arduino ] then cd ~ else mkdir -p
$HOMEDIR/Home_auf_Server/Arduino fi |

Tatsächlich funktioniert das jetzt für einen Benutzer genau so, wie ich
es wollte.:+1:

ich meinte zwar anders, aber deine Lösung ist wahrscheinlich besser.
Ich dachte, du verlinkst ein lokales Verzeichnis mit usersettings.conf
von linuxmuster-client ins Home: dann wird das auch im Home angelegt und
gleich der INhalt vom Client kopiert.

LG

Holger

Ja, das hätte ich auch gut gefunden, aber dann wäre der Ordner Arduino ein Unterverzeichnis von Einstellungen geworden. Die Schüler kommen finden ihre Dateien aber leichter wieder, wenn der Ordner Arduino gleich sichtbar ist.
VG Christian

Hallo Christian,

Deine Lösung finde ich auch für unsere Zwecke ideal. Daher habe ich hierzu noch ein paar Fragen:

Das dürfte das Profil vom linuxadmin sein, oder? Danach startest du das Skript mit sudo-Rechten und es schreibt in alle Profile den Arduino-Ordner?

Da dies eine globale Lösung für alle noch kommenden Arduino-Datenbankerweiterungen sein kann, interessiert mich nun natürlich, wie du die Erweiterungsdateien in den per Skript erzeugten Arduino-Ordner für alle Profile reinbekommst.

Deine Antwort

zeigt mir zwei Varianten auf:

Die erste wäre die von mir gewollten Arduino-Erweiterungen in das Client-Verzeichnis
/opt/arduino-1.8.9/tools/ArduBlockTool/tool abzulegen und den Sketch-Pfad im Arduino so zu ändern. Danach holt sich Arduino aus diesem lokal angelegten Ordner alle Erweiterungen.

Die zweite Variante zeigt mir, dass ich alle Arduino-Datenbank-Erweiterungen in /Home_auf_Server/Arduino ablegen kann. Dieser Ordner ist ein individueller Ordner, der für jeden Nutzer individuell füllbar ist. Hier ist mir jedoch nicht klar, wie die von mir gewollten Arduino-Erweiterungen in alle Nutzer-Verzeichnisse reinkommen sollen. Muss hier wieder ein Skript die Kopiererei der ganzen Erweiterungen übernehmen?
Ansonsten lese ich in deinem letzten Beitrag dieses Threads, dass diese Lösung eine wichtige wäre, wenn die Nutzer selbst Erweiterungen für Arduino installieren sollen.

Habe ich das so richtig auf dem Schirm?

LG und einen guten Start am Mittwoch,
Marcus

Hallo Marcus,

Ich habe auf dem Client eine Datei /etc/linuxmuster-client/profile/015-arduino erzeugt und ausführbar gemacht:

Das dürfte das Profil vom linuxadmin sein, oder? Danach startest du das Skript mit sudo-Rechten und es schreibt in alle Profile den Arduino-Ordner?

Das Script wird automatisch am Ende des Anmeldeprozesses eines Benutzers ausgeführt. Ich habe zu diesem Zweck das Paket linuxmuster-client (Beschreibung hier: https://wiki.linuxmuster.net/archiv/dokumentation:handbuch:clients:linuxmuster-client-profile) verwendet. Das Verzeichnis „Home_auf_Server/Arduino“ wollte ich als Voreinstellung für die sketchbooks für alle Schüler, damit die ihre geschriebenen Arduino Programme auch wieder finden.
An dieser Stelle hatte ich übrigens einen Fehler: der richtige Pfad lautet /etc/linuxmuster-client/post-mount.d/015-arduino (also post-mount.d statt profile).

Die erste wäre die von mir gewollten Arduino-Erweiterungen in das Client-Verzeichnis
/opt/arduino-1.8.9/tools/ArduBlockTool/tool abzulegen und den Sketch-Pfad im Arduino so zu ändern. Danach holt sich Arduino aus diesem lokal angelegten Ordner alle Erweiterungen.

Das ist nun mein Weg, Erweiterungen zu installieren. Ich könnte mir vorstellen, dass das auch mit postsync-Scripten funktioniert.

Was Schüler selbst machen können, ist Bibliotheken zu installieren. Diese werden nun auch in „Home_auf_Server/Arduino/libraries“ abgespeichert und müssten dann auch auf einem anderen Rechner verwendbar sein.

Die zweite Variante zeigt mir, dass ich alle Arduino-Datenbank-Erweiterungen in /Home_auf_Server/Arduino ablegen kann. Dieser Ordner ist ein individueller Ordner, der für jeden Nutzer individuell füllbar ist.

Das habe ich gerade mit der Erweiterung ESP8266 ausprobiert, es funktioniert.

Hier ist mir jedoch nicht klar, wie die von mir gewollten Arduino-Erweiterungen in alle Nutzer-Verzeichnisse reinkommen sollen. Muss hier wieder ein Skript die Kopiererei der ganzen Erweiterungen übernehmen?

Wenn alle Nutzer die Erweiterung brauchen, dann würde ich sie in /opt/arduino-1.8.9/tools reinkopieren. Diese Erweiterungen werden nach meiner Beobachtung grundsätzlich für jeden Benutzer in die Oberfläche eingepflegt.

VG Christian

1 „Gefällt mir“