Update home authored by Michael Roth's avatar Michael Roth
# Projekt "Virtuelle Maschine für PAD/MPS" # Projekt "Virtuelle Maschine / Prüfungsumgebung Programmieren I/II"
Die Virtuelle Maschine wird von Michael Roth gewartet. Fragen und Feedback sind willkommen.
Diese Seite beschreibt die Installation und Konfiguration. **Aktuelle Probleme sind in den [FAQs](faq) dokumentiert.**
Wenn Sie auf eine _Problem_ stoßen oder einen _Änderungswunsch_ haben, melden Sie dies als Issue.
Das Linux in der virtuellen Maschine ist ein Arch Linux. Versionsnummern werden von mir vergeben und funktionieren nach folgendem Schema:
- Major Releases X. bedeuten größere Änderungen
- Minor Relases .Y bedeuten lediglich Updates des Systems und Bugfixes
Diese Seite beschreibt die Installation und Konfiguration. **Aktuelle Probleme sind in den [FAQs](faq) dokumentiert.**
Die verfügbaren Benutzer auf dem System lauten: Die verfügbaren Benutzer auf dem System lauten:
- `stud` mit Passwort `stud`, der User besitzt volle sudo Rechte
- `root` mit Passwort `padvm`
# Einleitung
Wir stellen Ihnen ein dem "richtigen" Prüfungsimage so weit wie möglich identisches Image zur Verfügung.
Dieses Dokument geht auf die Gemeinsamkeiten und Unterschiede ein zwischen den beiden Versionen.
Das Ziel ist, dass Sie sich im Vorfeld mit dem Image vertraut machen können und somit eventuelle Einarbeitungszeit in der Klausur vermieden werden kann.
## Installation ## Installation
1. Laden Sie [VirtualBox](https://www.virtualbox.org/wiki/Downloads) für Ihr System herunter Das Image ist eine VirtualBox Appliance im `.ova` Format.
2. Laden Sie ebenfalls von der gleichen Seite das "VirtualBox Extension Pack" herunter
3. Laden Sie die [aktuelle VM 6.8](https://userv.fbi.h-da.de/LabDisk/GL/m.roth/) als Appliance herunter
- Sie müssen sich hier mit Ihrem _st*_ Benutzer anmelden
4. Installieren und Starten Sie VirtualBox
5. Importieren Sie die herunter geladene Appliance (Datei -> Appliance importieren)
- Sie können beim Importieren alle Einstellungen so belassen wie sie sind.
## Versionshinweise Installieren Sie zunächst [VirtualBox](https://www.virtualbox.org/wiki/Downloads) für ihr jeweiliges Host Betriebssystem.
Die VM wurde mit folgenden Versionen erstellt: **Hinweis:** Das Image unterstützt **ausschließlich** X86_64 Architekuren!
- VirtualBox 7.0.2 Nach Installation und Neustart müssten Sie die `.ova` Datei einfach durch Doppelklick importieren können.
Am Besten installieren Sie die gleichen Versionen. Mit älteren Versionen wird die VM nicht funktionieren. Ob neuere Versionen funktionieren ist zur Zeit nicht bekannt. Zum Update siehe auch die [FAQs](faq) ### Aktivieren der Virtualisierungserweiterungen im BIOS/UEFI
## Konfiguration Unter Umständen müssen Sie vor dem Start der Appliance in Ihrem BIOS bzw. UEFI eine Einstellung aktivieren, welche die Virtualisierung unterstützt.
Meine Beobachtung hierzu ist, dass diese bei den meisten Notebooks im Auslieferungszustand deaktiviert ist.
### Systeme mit 8GByte RAM oder mehr Die Einstellung heißt in der Regel sowas wie:
Standardmäßig bekommt die VM 2GByte RAM als Arbeitsspeicher zugewiesen. Dies sollten Sie auf mindestens 4GByte erhöhen.
Klicken Sie hierzu auf die VM, anschließend auf "Ändern". In der [Konfigurationsübersicht](Konfiguration/Ram einstellen) gehen Sie auf "System" und stellen im Reiter "Hauptplatine" den gewünschten Wert ein.
### Systeme mit 4GByte RAM - AMD-V
Sie sollten den RAM auf den angegebenen 2GByte belassen, damit noch genügend RAM für das Host System übrig bleibt. Sollten Sie beim Arbeiten in der VM Probleme bekommen, die auf die wenig RAM deuten, folgen Sie [dieser Anleitung](Konfiguration/Swap aktivieren). - VT-x
- Virtualization Support
- Hardware Virtualization
## Austausch von Dateien zwischen Host und Gast Leider gibt es hierzu keinen Standard.
Sie haben die Möglichkeit, einen Ordner des Host Systems (Ihr Betriebssystem) mit dem Gastsystem (der VM) zu teilen. Hierzu müssen Sie folgende Schritte durchführen:
1. Fahren Sie die VM herunter (oder starten erst gar nicht) ## Generelles zum Image
1. Öffnen Sie die Einstellungen der VM
2. Wählen Sie "Gemeinsame Ordner"
3. Klicken Sie dort in der rechten Leiste auf "Hinzufügen" (grünes Plus)
4. Es erscheint folgendes Fenster:
![Screenshot_20190326_153215](uploads/8f9285db75fd25d376c3f491dc49bfea/Screenshot_20190326_153215.png) Das Prüfungsimage basiert auf Ubuntu 22.04 mit den dort jeweils aktuellsten Versionen von:
Dort tragen Sie folgendes ein: - QtCreator (in einem flatpak)
- _Ordner-Pfad_: Der Ordner Ihres Host-Systems den Sie teilen wollen. Klicken Sie auf den Pfeil ganz rechts in der Textbox, um ein Fenster zu öffnen wo Sie einen Ordner auswählen können. - gcc/g++
- _Ordner-Name_: Hier können Sie einen beliebigen Namen eingeben. Dieser sollte weder Umlaute noch Leerzeichen enthalten. Unter diesem Namen wird der Ordner in der VM angezeigt. - gdb/lldb
- _Nur lesbar_: Wenn angehakt, können Sie aus der VM heraus **nicht** in das Verzeichnis schreiben. - clang++
- _Automatisch einbinden_: **Muss unbedingt aktiviert werden!** - clangd
- Klicken Sie anschließend OK - valgrind
- cachegrind (+ kcachegrind)
- git (falls Sie lokal ein repo erzeugen möchten)
6. Starten Sie die VM. Der geteilte Ordner findet sich nun unter "Geräte" im Dateimanager. Auf dem Desktop liegen Verknüpfungen zu QtCreator, QtAssistant und zwei Terminals.
QtCreator läuft in einer Sandbox (flatpak), damit eine neuere Version verwendet werden kann als die durch Ubuntu bereit gestellte Version. Dadurch sind allerdings die erzeugten Executables **nicht** mit dem normalen Terminal ausführbar. Starten Sie allerdings das Terminal über die Verknüpfung mit flatpak, dann funktioniert das Starten der compilierten Programme.
### Systeme mit mehr als FullHD Auflösung (HiDPI-Displays) ### Lokale Einstellungen
Wenn Ihr Notebook/PC über eine höhere DPI Zahl verfügt normal, können Sie zur besseren Sie können in den Einstellungen sowohl die Tastaturbelegung ändern als auch die Maus auf Links- oder Rechtshänder Modell einstellen.
Lesbarkeit einige Anpassungen vornehmen: [HiDPI-Konfiguration](Konfiguration/HiDPI)
## VPN aus der VM heraus Standardmäßig aktiv ist ein deutsches Tastaturlayout und eine Rechtshänder Maus.
Dies ist nach aktuellem Stand nicht möglich. Benutzen Sie VPN auf Ihrem Host System.
## Installierte Software Der QtCreator ist ebenfalls auf deutsch, lässt sich allerdings in den Einstellungen auch auf Englisch stellen. Weitere Sprachen sind nicht (absichtlich) installiert.
### Compiler ## Unterschiede der Images
- gcc
- clang
### Debugger ### Login
- gdb
- lldb
### IDEs Im Testimage werden Sie automatisch mit dem Benutzer `stud` eingeloggt. Das Passwort für den User lautet `stud`, der User besitzt volle sudo Rechte Auf dem Prüfungsimage heißt Ihr Benutzer anders und hat **keine** sudo Rechte.
- [Qt Creator](QtCreator/Einführung)
- Mousepad (reiner Texteditor)
### Weitere Entwicklungswerkzeuge ### Laufwerke
- valgrind
- kcachegrind Auf dem Prüfungsimage werden automatisch Laufwerke mit Materialien sowie zur Klausurabgabe eingebunden. Diese **fehlen** natürlich auf dem Testimage.
In der Regel steht Ihnen folgendes zur Verfügung:
- Eine [C++ Referenz](https://cppreference.com) als lokales Abbild
- Materialien des Prüfers, je nach Prüfer bspw.
- Vorlesungsfolien
- Benötigte `.h` und `.cpp` Dateien
- Zusätzliche Bibliotheken
Auf dem Prüfungsimage sind die beiden Laufwerke über die Verknüpfungen auf der linken Seite des Dateimanagers oder über die Ordner in _Persönlicher Ordner_ erreichbar. Die beiden Ordner existieren auch auf dem Testimage, sind dort allerdings leer.
![Laufwerke und Ordner auf dem Prüfungsimage](dateimanager.png)
Im Laufwerk _material_ finden Sie das von den Prüfern bereit gestellte Material. Ihre Abgabe müssen Sie am Ende der Prüfung in das Laufwerk _klausur_ kopieren.
### Internetzugriff
Im Testimage ist der Netzwerkzugriff nicht beschränkt.
Auf dem Prüfungsimage haben Sie keinen Zugriff auf das Internet oder das lokale Netz des Fachbereichs bzw. der Hochschule.
## VPN aus der VM heraus
Dies ist nach aktuellem Stand nicht möglich. Benutzen Sie VPN auf Ihrem Host System.