Rodos VM Installation
Die Universität Würzburg bietet zum einfachen Einstieg eine virtuelle Maschine (Rodos IDE) an, in der alle notwendigen Programme und Sourcedateien bereits fertig installiert sind um direkt mit der Programmierung für RODOS zu beginnen.
Alternativ können Sie Rodos auch unter Windows mit WSL nutzen, Anleitungsvideos dazu finden Sie im folgenden Youtube-Kanal.
Die unten stehende Anleitung zum VM Setup können Sie auch als PDF hier herunterladen.
Vorbereitung
Bitte laden Sie die VM und die Dokumentation aus dem RodosVM gitlab Projekt herunter.
Anschliessend müssen Sie das VM Image noch entpacken (z.B. mit 7zip).
Installation VirtualBox
- Download VirtualBox in der Version 4.3.16 oder höher von https://www.virtualbox.org/wiki/Downloads.
- Installation von VirtualBox.
- Download des VirtualBox Extension Packs von https://www.virtualbox.org/wiki/Downloads. Dabei muss darauf geachtet werden, dass die Versionsnummer der VirtualBox Extensions mit der der VirtualBox übereinstimmt.
- Installation des VirtualBox Extension Packs durch Doppelklicken auf die Datei des Extension Packs mit der Endung "*.vbox-extpack".
Linux-Hosts: die Open-Source virtualbox-host-module Expansion packs, die über diverse Package Manager installiert werden können, können leider nur USB 1.0 weiterleiten. Für USB 2.0 | 3.0 Weiterleitung braucht man den Oracle Extension Pack (Downloaden & per bash mit sudo VBoxManage extpack install --accept-license=sha256 </Pfad/zum/ExtensionPack/ExtensionPackName> installieren)
Erstellen und Einrichten der RodosVM
VM Erstellen
- VirtualBox öffnen.
- In VirtualBox auf [New] klicken, um eine neue VM zu erstellen.
- Im sich daraufhin öffnenden Fenster für "Name and Operating System", Folgendes eingeben/auswählen:
- Name: RodosVM
- Type: Linux
- Version: Ubuntu (64-Bit)
- [Next>] klicken.
4. Im Fenster "Memory size"
- mindestens 2GiB (2048MiB) Arbeitsspeicher wählen.
- Auf [Next>] klicken.
5. Im Fenster "Hard disk":
6. Im Fenster "Hard Disk Selector":
-
- links oben auf [Add] klicken
- im Dateimenü zum entpackten VirtualBox-Image navigieren
- [Open] klicken
- Zurück im "Hard Disc Selector" Fenster sollte jetzt das Image angezeigt werden & markiert sein
- [Choose] klicken
7. Zurück im Fenster "Hard disk" auf auf [Create] klicken.
VM Einrichten
Jetzt bitte auf [Settings] klicken, und in den Untermenüs die folgenden Einstellungen vornehmen:
1. General / Advanced: Shared Clipboard "Host to Guest" aktivieren
2. System / Processor: bei Processors 1 CPU auswählen / lassen.
3. Display / Screen: VideoMemory auf 128MB setzen
4. Shared Folders
- rechts oben auf das kleine Ordnersymbol mit dem Plus klicken, dann im Add share Fenster:
- Folder Path-Dropdown: Other...
- jetzt öffnet sich ein Dateimenü, hier einen Ordner auswählen oder neu anlegen und [Ok] klicken
- Box bei Auto Mount anklicken
- [Ok] klicken
5. USB: Bei Entwicklung für Hardware-Targets, wie Discovery Board, Gecko, etc müssen die entsprechenden USB Ports an die VM weitergereicht werden. Dazu können vorab Device-Filter eingerichtet werden (siehe nächster Abschnitt).
Bei einer laufenden VM können Sie einfach über das VirtualBox Devices-Menü erledigen. Aktivieren Sie unter Devices > USB das gewünschte Device.
USB Filter für STM32F4 einrichten (optional)
Überprüfen Sie ob der USB-Filter für das Discovery Board STM32F4 vorhanden ist.
- Im Menüpunkt USB (2) sollte ein Filter "STMicroelectronics STM32 STLink [0100]" vorhanden sein. Ist er Filter nicht vorhanden, muss er angelegt werden.
- Über den Button (3) auf der rechten Seite kann ein neuer Filter hinzugefügt werden.
- Über den Button (4) können die Einstellungen angepasst werden.
- Wichtig sind dabei die folgenden Einstellungen:
- Hersteller-ID: 0483
- Produkt-ID: 3748
VirtualBox Guest Additions neu Installieren (optional)
Die VM kommt zwar mit vorinstallierten Guest Additions, diese funktionieren aber evtl. nicht gut mit Ihrer Version von VirtualBox. Das merken Sie daran, wenn z.B. die Shared Folders oder das Copy & Paste zwischen Host und Gastsystem nicht funktionieren.
In diesem Fall sollten Sie die Guest Additions nochmal neu Installieren. Wir haben ganz unten auf dieser Seite eine Anleitung dazu hinterlegt.
Wichtige Einstellungen innerhalb der RODOS IDE
Benutzer: | Rodos IDE User |
Passwort: | rodos2020 |
Sudo-Passwort: | rodos2020 |
Verzeichnis des RODOS Quellcodes: | /home/user/rodosTemplate/rodos |
Beispielprojekt für Linux: | /home/user/eclipse-projects/rodosTemplate |
Bauen und Ausführen des Rodos-Beispiels
in Eclipse
Um den Einstieg in die Rodos-Programmierung so einfach wie möglich zu gestalten, haben wir ein Eclipse Projekt für eine minimale Rodos-Anwendung erstellt.
Das Beispiel liegt unter /home/rodos/eclipse-projects/rodosTemplate.
Auf dem Desktop der VM auf den Link zu Eclipse klicken, daraufhin öffnet sich die IDE mit dem Rodos Beispielprojekt "MyRodosApp".
Ein Klick auf das Hammer-Symbol links oben startet die Kompilierung, zuerst werden die Rodos Libraries gebaut und anschliessend der Beispielcode.
In der Standardeinstellung wird das Projekt für Linux gebaut, so dass es direkt in der VM ausgeführt werden kann.
In der Console (unten mitte) wird die Ausgabe des Build Programms (cmake und make) ausgegeben und im Project Explorer (links) ist nach dem erfolgreichen build die Executable "MyRodosApp" unter rodosTemplate/build-linux/ sichtbar.
Klicken Sie auf die "Run" Button mit dem grünen Play-Zeichen rechts neben dem "Build" Button, um die gebaute Executable auszuführen.
Die Ausgaben des Laufenden Programms sehen Sie in der Console unten.
Rodos auf der Kommandozeile Bauen
Sie haben zwei Möglichkeiten Rodos auf der Kommandozeile zu bauen:
Bauen mit den Rodos Build Scripts
- Öffnen Sie ein Terminal
- Clonen Sie Rodos aus dem Gitlab aus: git clone gitlab.com/rodos/rodos.git
- Wechseln Sie ins rodos verzeichnis: cd rodos
- Mit dem Befehl ls können sie sich den Inhalt des Verzeichnisses anzeigen lassen.
- Sourcen Sie das im Rodos Verzeichnis liegende setenvs-Script: source ./setenvs.sh
- Jetzt sollten Sie die Rodos Libraries für Linux bauen können: rodos-lib.sh linux-x86
Wenn die Libraries bauen, ist alles richtig eingerichtet.
Rodos Executable bauen:
Als Nächstes können Sie beispielsweise das HelloWorld.cpp aus den Tuturials mit folgendem Befehl bauen: rodos-executable.sh linux-x86 ../tutorials/10-first-steps/helloworld.cpp
Die Syntax ist: rodos-executable.sh <Zielarchitektur> <Pfad zur cpp>
Bauen mit CMake
Ist sehr gut hier erklärt https://gitlab.com/rodos/rodos/-/blob/master/README-cmake.md
Videoanleitungen
VM Troubleshooting
VirtualBox zeigt in der Auswahl keine 64bit-Versionen der Gastbetriebssysteme an:
-
Virtualisierung im BIOS / UEFI nicht eingeschaltet → ins bios/uefi booten, dort die Option VT-x suchen und aktivieren. → Anleitung
-
Hyper-V stört → es Ausschalten, Anleitung
- Probleme mit VirtualBox >= 6.1 auf älteren PCs, die neueren Versionen unterstützen keine Software Virtualization → eine ältere Version nutzen ältere Version
"Cannot register the hard disk 'C:\vm\[...] because a hard disk 'C:\vm\rodos\Xubuntu 18.04.3 (64bit).vdi' with UUID {a1457371-c6c4-4690-8383-ee4d757847de} already exists."
Sie haben bereits eine VM die ein Harddisk-Image mit demselben Namen verwendet → entweder die ältere VM löschen oder eines der beiden Images umbenennen
VirtualBox meldet beim Versuch die VM zu starten "kann keine weitere Sitzung öffnen"
- Virtualization im BIOS / UEFI nicht eingeschaltet? → ins bios/uefi booten, dort die Option VT-x suchen und aktivieren, Anleitung
-
( Warum auch immer ) → VM rauswerfen & neu erstellen hilft manchmal
Nach dem Start der VM erscheint nur ein blinkender Cursor / der Bootmanager und danach ein blinkender Cursor:
- Probleme mit WSL und/oder Hyper-V → wsl und Hyper-V deaktivieren oder deinstallieren : how to turn of Hyper-V , how to turn of WSL
- Virtualisierung im BIOS / UEFI nicht eingeschaltet → ins bios/uefi booten, dort die Option VT-x suchen und aktivieren , Anleitung
- Beides → Anleitung für beide Probleme auf HowtoGeek
Ich habe einen Linux PC und sehe meine USB Devices nicht in der VM / habe keine USB 2.0 | 3.0 Weiterleitung in der VM
Einige Open Source virtualbox-host-module ExpansionPacks, die in den meisten Packetmanagern bereitgestellt werden, können nur USB 1.0. weiterleiten. Sie brauchen den original Oracle Expansion Pack (siehe Vorarbeiten).
Einfach manuell herunterladen & dann Installieren. Das Installieren geht z.B. mit folgendem Bash Befehl: sudo VBoxManage extpack install --accept-license=sha256 </Path/to/ExtensionPack/ExtensionPackName>
Die Shared Folders / Copy & Paste zwischen Host and Gast funktionieren nicht!
Die VM kommt zwar mit vorinstallierten Guest Additions, diese funktionieren aber evtl. nicht gut mit Ihrer Version von VirtualBox. In diesem Fall sollten Sie die Guest Additions nochmal neu Installieren (siehe nächster Abschnitt).
Clang wird nicht gefunden!
In manchen Versionen der Rodos-VM muss clang erst installiert werden. (Sorry!)
Geben Sie dazu den folgenden Befehl im Terminal ein: sudo apt-get install clang
VirtualBox Guest Additions neu installieren
1. Wenn die VM läuft, klicken Sie auf [Devices] > [Insert Guest Additions CD image]
2. Virtualbox wird dann fragen, ob es das guest additions image herunterladen soll.
Klicken Sie auf [Download]
3. Manchmal müssen Sie den Download ein zweites Mal bestätigen.
Klicken Sie auf [Download]
Nachdem VirtualBox das Guest Additions CD Image heruntergeladen hat, wird es automatisch gemountet und ist dann auf dem Desktop der VM sichtbar.
Doppelklicken Sie darauf, um den Ordner mit den Installationsskripten zu öffnen.
5. Jetzt sollte der Inhalt dem Images im File Manager angezeigt werden.
Rechtsklicken Sie in das File Manager Fenster und wählen Sie [Open Terminal Here] im Dropdown Menü.
6. Starten des Installationsskripts:
- Klicken Sie ins Terminal und geben Sie das folgende Kommando ein: sudo ./autorun.sh
drücken Sie dann [RETURN].
- Wenn Ubuntu Sie nach Ihrem sudo-Passort fragt, tippen Sie: rodos 2020
drücken Sie dann [RETURN].
- Jetzt sollte ein Konsolenfenster aufgehen, dass den Output des Installationsskripts anzeigt.
Warten Sie, bis das Installationsskript komplett durchgelaufen ist.
7. Fahren Sie die VM komplett herunter.
Wenn Sie die VM das nächste Mal starten, sollten die shared folders and copy & paste funktionieren.