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. Diese Seite beschreibt die Installation und Konfiguration. **Aktuelle Probleme sind in den [FAQs](faq) dokumentiert.**
Das Linux in der virtuellen Maschine ist ein Arch Linux. Versionsnummern werden von mir vergeben und funktionieren nach folgendem Schema: Die verfügbaren Benutzer auf dem System lauten:
- Major Releases X. bedeuten größere Änderungen
- Minor Relases .Y bedeuten lediglich Updates des Systems und Bugfixes
# Einleitung
Die verfügbaren Benutzer auf dem System lauten: Wir stellen Ihnen ein dem "richtigen" Prüfungsimage so weit wie möglich identisches Image zur Verfügung.
- `stud` mit Passwort `stud`, der User besitzt volle sudo Rechte Dieses Dokument geht auf die Gemeinsamkeiten und Unterschiede ein zwischen den beiden Versionen.
- `root` mit Passwort `padvm`
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
2. Laden Sie ebenfalls von der gleichen Seite das "VirtualBox Extension Pack" herunter Das Image ist eine VirtualBox Appliance im `.ova` Format.
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 Installieren Sie zunächst [VirtualBox](https://www.virtualbox.org/wiki/Downloads) für ihr jeweiliges Host Betriebssystem.
4. Installieren und Starten Sie VirtualBox
5. Importieren Sie die herunter geladene Appliance (Datei -> Appliance importieren) **Hinweis:** Das Image unterstützt **ausschließlich** X86_64 Architekuren!
- Sie können beim Importieren alle Einstellungen so belassen wie sie sind.
Nach Installation und Neustart müssten Sie die `.ova` Datei einfach durch Doppelklick importieren können.
## Versionshinweise
### Aktivieren der Virtualisierungserweiterungen im BIOS/UEFI
Die VM wurde mit folgenden Versionen erstellt:
Unter Umständen müssen Sie vor dem Start der Appliance in Ihrem BIOS bzw. UEFI eine Einstellung aktivieren, welche die Virtualisierung unterstützt.
- VirtualBox 7.0.2 Meine Beobachtung hierzu ist, dass diese bei den meisten Notebooks im Auslieferungszustand deaktiviert ist.
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) Die Einstellung heißt in der Regel sowas wie:
## Konfiguration - AMD-V
- VT-x
### Systeme mit 8GByte RAM oder mehr - Virtualization Support
Standardmäßig bekommt die VM 2GByte RAM als Arbeitsspeicher zugewiesen. Dies sollten Sie auf mindestens 4GByte erhöhen. - Hardware Virtualization
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.
Leider gibt es hierzu keinen Standard.
### Systeme mit 4GByte RAM
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). ## Generelles zum Image
## Austausch von Dateien zwischen Host und Gast Das Prüfungsimage basiert auf Ubuntu 22.04 mit den dort jeweils aktuellsten Versionen von:
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:
- QtCreator (in einem flatpak)
1. Fahren Sie die VM herunter (oder starten erst gar nicht) - gcc/g++
1. Öffnen Sie die Einstellungen der VM - gdb/lldb
2. Wählen Sie "Gemeinsame Ordner" - clang++
3. Klicken Sie dort in der rechten Leiste auf "Hinzufügen" (grünes Plus) - clangd
4. Es erscheint folgendes Fenster: - valgrind
- cachegrind (+ kcachegrind)
![Screenshot_20190326_153215](uploads/8f9285db75fd25d376c3f491dc49bfea/Screenshot_20190326_153215.png) - git (falls Sie lokal ein repo erzeugen möchten)
Dort tragen Sie folgendes ein: Auf dem Desktop liegen Verknüpfungen zu QtCreator, QtAssistant und zwei Terminals.
- _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.
- _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. 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.
- _Nur lesbar_: Wenn angehakt, können Sie aus der VM heraus **nicht** in das Verzeichnis schreiben.
- _Automatisch einbinden_: **Muss unbedingt aktiviert werden!** ### Lokale Einstellungen
- Klicken Sie anschließend OK
Sie können in den Einstellungen sowohl die Tastaturbelegung ändern als auch die Maus auf Links- oder Rechtshänder Modell einstellen.
6. Starten Sie die VM. Der geteilte Ordner findet sich nun unter "Geräte" im Dateimanager.
Standardmäßig aktiv ist ein deutsches Tastaturlayout und eine Rechtshänder Maus.
### Systeme mit mehr als FullHD Auflösung (HiDPI-Displays) Der QtCreator ist ebenfalls auf deutsch, lässt sich allerdings in den Einstellungen auch auf Englisch stellen. Weitere Sprachen sind nicht (absichtlich) installiert.
Wenn Ihr Notebook/PC über eine höhere DPI Zahl verfügt normal, können Sie zur besseren ## Unterschiede der Images
Lesbarkeit einige Anpassungen vornehmen: [HiDPI-Konfiguration](Konfiguration/HiDPI)
### Login
## VPN aus der VM heraus
Dies ist nach aktuellem Stand nicht möglich. Benutzen Sie VPN auf Ihrem Host System. 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.
## Installierte Software ### Laufwerke
### Compiler Auf dem Prüfungsimage werden automatisch Laufwerke mit Materialien sowie zur Klausurabgabe eingebunden. Diese **fehlen** natürlich auf dem Testimage.
- gcc In der Regel steht Ihnen folgendes zur Verfügung:
- clang
- Eine [C++ Referenz](https://cppreference.com) als lokales Abbild
### Debugger - Materialien des Prüfers, je nach Prüfer bspw.
- gdb - Vorlesungsfolien
- lldb - Benötigte `.h` und `.cpp` Dateien
- Zusätzliche Bibliotheken
### IDEs
- [Qt Creator](QtCreator/Einführung) 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.
- Mousepad (reiner Texteditor)
![Laufwerke und Ordner auf dem Prüfungsimage](dateimanager.png)
### Weitere Entwicklungswerkzeuge
- valgrind 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.
- kcachegrind
### 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.