Am 6. Oktober wurde die ESXi-Arm Fling Version veröffentlicht. Infos und Downloads zur ESXi Arm Edition gibts auf VMware Flings.
Damit ist es jetzt möglich den VMware ESXi (vSphere 7) auf einem Raspberry Pi 4 zu installieren! :-]
benötigte Hardware
- Raspberry Pi 4 mit 8GB RAM und ausreichender Kühlung (4GB geht auch, wird dann aber mit mehreren VMs schnell eng werden.)
- microSD-Karte für das EEPROM Update und die UEFI Firmware (8GB völlig ausreichend)
- USB Stick für den ESXi Installer
- USB 3.0 Stick für das System und den DataStore. (ich nehme dafür aber eine SSD mit einem USB 3.0 auf SATA Adapter)
ESXi-Arm ISO downloaden
Für den download des ISO Images verlangt VMware allerdings eine kostenlose Registrierung.
Das Fling-on-Raspberry-Pi.pdf ist eine sehr ausführliche Anleitung zur Installation und Konfiguration. Sollte man sich mal durchlesen.
Die ESXi-Arm Installation ist für 180 Tage uneingeschränkt nutzbar. Danach muss neu installiert werden!
EEPROM updaten
Dafür wird ein Raspberry Pi OS Lite auf die microSD-Karte installiert. (Wird nur einmalig für das Update benötigt.)
Zuerst das installierte Pi OS updaten um ein aktuelles rpi-eeprom Paket zu erhalten.
pi@raspberrypi:~ $ sudo apt update pi@raspberrypi:~ $ sudo apt upgrade pi@raspberrypi:~ $ sudo reboot
Prüfen ob ein Update vorhanden ist.
pi@raspberrypi:~ $ sudo rpi-eeprom-update BCM2711 detected VL805 firmware in bootloader EEPROM *** UPDATE AVAILABLE *** BOOTLOADER: update available CURRENT: Thu 16 Apr 17:11:26 UTC 2020 (1587057086) LATEST: Thu 3 Sep 12:11:43 UTC 2020 (1599135103) FW DIR: /lib/firmware/raspberrypi/bootloader/critical VL805: up-to-date CURRENT: 000137ad LATEST: 000137ad
Wenn ja, updaten.
pi@raspberrypi:~ $ sudo rpi-eeprom-update -a BCM2711 detected VL805 firmware in bootloader EEPROM *** INSTALLING EEPROM UPDATES *** BOOTLOADER: update available CURRENT: Thu 16 Apr 17:11:26 UTC 2020 (1587057086) LATEST: Thu 3 Sep 12:11:43 UTC 2020 (1599135103) FW DIR: /lib/firmware/raspberrypi/bootloader/critical VL805: up-to-date CURRENT: 000137ad LATEST: 000137ad BOOTFS /boot EEPROM updates pending. Please reboot to apply the update. pi@raspberrypi:~ $ sudo reboot
Nach dem reboot.
pi@raspberrypi:~ $ sudo rpi-eeprom-update BCM2711 detected VL805 firmware in bootloader EEPROM BOOTLOADER: up-to-date CURRENT: Thu 3 Sep 12:11:43 UTC 2020 (1599135103) LATEST: Thu 3 Sep 12:11:43 UTC 2020 (1599135103) FW DIR: /lib/firmware/raspberrypi/bootloader/critical VL805: up-to-date CURRENT: 000138a1 LATEST: 000138a1
Die schnelle Variante für ein EEPROM Update:
- Das aktuelle rpi-boot-eeprom-recovery Release von GitHub downloaden.
- microSD-Karte mit FAT formatieren und den Inhalt der rpi-boot-eeprom-recovery-2020-09-03-vl805-000138a1.zip einfach auf die Karte kopieren.
- Die microSD-Karte in den Raspberry Pi und einschalten.
- Mindestens 10 Sekunden warten!
Wenn der Vorgang erfolgreich war, blinkt die grüne LED schnell (unendlich), ansonsten wird ein Fehlermuster dargestellt.
Mit einem HDMI Monitor am Pi wird der Bildschirm bei Erfolg grün und bei einem Fehler rot.
UEFI Firmware auf die microSD-Karte kopieren
Dafür wird wieder die microSD-Karte Karte vom EEPROM Update genommen. Sie wird jetzt immer und nur für die UEFI Firmware benötigt.
Die zwei Firmware-Archive herunterladen.
Die microSD-Karte formatieren. Dateisystem: Fat32 und Volumebezeichnung: UEFI
Aus der firmware-master.zip den Inhalt des Ordners boot aber ohne die 4 kernel* Dateien auf die microSD-Karte entpacken.
Aus der RPi4_UEFI_Firmware_v1.20.zip alle Dateien auf die microSD-Karte entpacken und vorhandene Dateien dabei überschreiben!
ESXi Installer erstellen
Mit Rufus und dem ISO wird der bootfähige USB-Stick für die Installation erstellt.
UEFI Firmware konfigurieren
Die microSD-Karte mit der Firmware in den Pi und einschalten. Wenn das Pi-Logo erscheint, mehrmals die ESC-Taste drücken um ins UEFI Setup zu kommen.
3GB RAM Limit deaktivieren
Der genutzte Arbeitsspeicher ist vorerst auf 3GB begrenzt. Um die 8GB zu nutzen muss das Limit deaktiviert werden.
Device Manager → Raspberry Pi Configuration → Advanced Configuration → Limit RAM to 3 GB, Disabled (mit F10 speichern)
Display Auflösung anpassen
Für eine bessere Lesbarkeit, kann die Auflösung noch angepasst werden. (abhängig vom eingesetzten Monitor)
Device Manager → Raspberry Pi Configuration → Display Configuration, 800×600 / 1024×768 (mit F10 speichern)
ESXi installieren
Den USB-Stick und die SSD jetzt zusätzlich anschließen, Pi einschalten und mit ESC wieder ins Setup um vom Stick zu booten.
Boot Manager → UEFI USB-Stick auswählen, Enter
Sobald der ESXi Installer anfängt zu laden mit SHIFT + O den Vorgang unterbrechen, um noch einen zusätzlichen Bootparameter mit anzugeben.
> runweasel cdromBoot autoPartitionOSDataSize=8192
Damit wird eine 8GB VMFS-L Partition für das ESXi System erstellt und der restliche Speicherplatz automatisch als DataStore genutzt.
Den Installer jetzt weiter ausführen und für die Installation die SSD auswählen.
Bootreihenfolge ändern
Nach der Installation nochmal ins Setup und die SSD als erstes Bootdevice setzen.
Boot Maintenance Manager → Boot Options → Change Boot Order → Change the order, die SSD nach oben
Startet jetzt direkt von der SSD den installierten ESXi.
Webinterface
Der Web Client für die Verwaltung ist über https://<ip-addresse> erreichbar.
Zuerst sollte man jetzt ein paar NTP Server eintragen, die Startrichtlinie ändern und den ntpd Dienst starten damit Datum und Uhzeit stimmen.
Virtuelle Maschinen
Der Pi schlägt sich auch mit ein paar kleinen ARM VMs recht gut. (x86/x64 Gastsysteme können nicht installiert werden!)
VMware Tools installieren
Die open-vm-tools sind leider für viele arm64 Gastbetriebssysteme nicht verfügbar. Können aus den VMware Repositories aber selbst kompiliert werden.
- VMware Tools for Debian 10 arm64 on ESXi-Arm
- VMware Tools for Ubuntu 20.04 LTS arm64 on ESXi-Arm
- VMware Tools for Fedora 32 aarch64 on ESXi-Arm
- VMware Tools for CentOS 8 aarch64 on ESXi-Arm
- VMware Tools for openSUSE aarch64 on ESXi-Arm
- VMware Tools for Alpine 3 aarch64 on ESXi-Arm
- VMware Tools for Photon OS 4 aarch64 on ESXi-Arm
Debian 10 / Ubuntu 20.04
Muss kompiliert werden.
### Abhängigkeiten installieren. $ apt install -y git automake make gobjc++ libtool pkg-config libmspack-dev libglib2.0-dev libpam0g-dev libssl-dev libxml2-dev libxmlsec1-dev libx11-dev libxext-dev libxinerama-dev libxi-dev libxrender-dev libxrandr-dev libxtst-dev libgdk-pixbuf2.0-dev libgtk-3-dev libgtkmm-3.0-dev ### Das open-vm-tools Repository von GitHub klonen. $ git clone https://github.com/vmware/open-vm-tools.git $ cd open-vm-tools/open-vm-tools/ ### open-vm-tools kompilieren. $ autoreconf -i $ ./configure --disable-dependency-tracking $ make $ make install $ ldconfig ### Um vmtoolsd als Service mit systemd zu starten muss eine Unit Datei angelegt werden. $ cat > /etc/systemd/system/vmtoolsd.service << EOF [Unit] Description=Service for virtual machines hosted on VMware Documentation=http://github.com/vmware/open-vm-tools After=network-online.target [Service] ExecStart=/usr/local/bin/vmtoolsd Restart=always TimeoutStopSec=5 [Install] WantedBy=multi-user.target EOF ### Den Service beim Systemstart aktivieren und jetzt starten. $ systemctl enable vmtoolsd.service $ systemctl start vmtoolsd.service ### Prüfen ob der Service läuft. $ systemctl status vmtoolsd.service ● vmtoolsd.service - Service for virtual machines hosted on VMware Loaded: loaded (/etc/systemd/system/vmtoolsd.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2020-11-08 14:57:13 CET; 21min ago ---SNIP---
CPU Temperatur auf dem ESXi-Arm auslesen
Eine gute Kühlung ist sehr wichtig, wenn man den ESXi auf dem Pi laufen lässt. Mit dem Fling selbst ist es nicht möglich die CPU Temperatur auszulesen.
Auf GitHub gibt es einen Treiber mit Script für das GPIO Interface. (thebel1/thpimon)
Für die dauerhafte Speicherung von Tools und Skripten nutze ich den DataStore.
thpimon installieren
$ cd /vmfs/volumes/[datastore-name] $ mkdir opt $ cd opt $ esxcli software acceptance set --level=CommunitySupported $ esxcli network firewall ruleset set -e true -r httpClient $ wget https://github.com/thebel1/thpimon/archive/main.zip $ esxcli network firewall ruleset set -e false -r httpClient $ unzip main.zip $ cp thpimon-main/build/vib/thpimon-0.1.0-1OEM.701.1.0.40650718.aarch64.vib /tmp/ $ esxcli software vib install -v /tmp/thpimon-0.1.0-1OEM.701.1.0.40650718.aarch64.vib $ reboot
Nach dem reboot hat man ein neues Gerät unter /dev/vmgfxXX
$ ls -la /dev/vmg* lrwxrwxrwx 1 root root 22 Sep 1 14:12 /dev/vmgfx32 -> char/vmkdriver/vmgfx32
Script ausführen.
$ cd /vmfs/volumes/[datastore-name]/opt $ ./thpimon-main/pyUtil/pimon_util.py Traceback (most recent call last): File "./thpimon-main/pyUtil/pimon_util.py", line 4, in <module> from pimonLib import * File "/opt/thpimon-main/pyUtil/pimonLib/__init__.py", line 73, in <module> class PiMon: File "/opt/thpimon-main/pyUtil/pimonLib/__init__.py", line 74, in PiMon pimonDev = open(PIMON_DEVICE_PATH, 'r+b') FileNotFoundError: [Errno 2] No such file or directory: '/dev/vmgfx33'
Erhält man die obige Fehlermeldung, muss der PIMON_DEVICE_PATH auf den neuen Devicenamen geändert werden.
$ vi thpimon-main/pyUtil/pimonLib/__init__.py PIMON_DEVICE_PATH = '/dev/vmgfx32'
Script ausführen.
& ./thpimon-main/pyUtil/pimon_util.py Firmware Revision: 0x5f440c10 Board Model: 0 Board Revision: 0xd03114 Board MAC Address: 12:34:56:78:90:ab Board Serial: 0x0000001111v222 Temp: 47.0 (deg. C)
Moin,
sehr interessanter Artikel. Bleibst du denn deinem Proxmox VE treu oder beschäftigst du dich jetzt mehr mit VMware?
Ich selbst habe ein Homelab Vsphere7 Nuc-Cluster und spiele mit dem Gedanken zu Proxmox zu gehen. Für mich wird Vsphere von Version zu Version dicker und unübersichtlicher.
Viele Grüße und Danke für deine vielen nützlichen Beiträge!
Thomas
Moin Thomas,
ich werde Proxmox treu bleiben! Nutze ich schon seit mehreren Jahren im Homelab.
Vor Proxmox hatte ich auch VMware im Einsatz. Der Raspi mit ESXi ist ideal zum spielen und ausprobieren.
Gruß, Michael
Kann man den Raspberry Pi auch vorher übertakten davor man ESXi installiert? Ich bin mir leider nicht ganz sicher und kann das momentan mangels Gerät auch nicht testen.
MFG
Nina
Im BIOS (UEFI Firmware) kannst du zu jeder Zeit die CPU Clock anpassen.
Vielen Dank für die ausführliche Anleitung, der ich grade folgen will.
Hat jemand einen Tipp was ich falsch mache, wenn die Änderungen in der UEFI Firmware einfach nicht angenommen werden? Ich möchte die Limitierung auf 3 GB aufheben, speichere das natürlich auch (erfolgreich) mit F10, kehre ins Hauptmenü zurück, drücke Continue, bestätige den Reboot – aber die Beschränkung auf 3 GB ist immer noch drin. Auch alle anderen testweise ausgeführten Änderungen werden einfach nicht gespeichert.
Das EEPROM Update habe ich vorher sowohl über den beschriebenen langen als auch den kurzen Weg erfolgreich durchgeführt.
Bin für jeden Lösungsansatz dankbar!
Hallo, ich stand vor dem gleichen Problem.
Lade Dir die UEFI Firmware V1.31 herunter, entpacke das Zip und überschreibe mit dem Inhalt des ZIP die Dateien auf der VMmware SD Karte.
https://github.com/pftf/RPi4/releases
Danke Ivan. Der Tipp hat mir sehr geholfen!
Leider scheint die Anleitung nicht mit einem PI4 Compute Modul zu funktionieren.
Nachdem der VMWare Installer geladen ist, funktioniert das USB Keyboard nicht.
Ich muss jetzt noch mal gucken, ob ich ggf. eine serial connection hin bekomme.
Allerdings ist VMWare ohne USB auch irgendwie schwierig.
Bei meiner installation ist die angeschlossene USB SSD extrem langsam 7mb/s hat jemand eine Lösung dafür?
Hatte ich bei einer “normalen” Install auch mit einem von 2 USB/SATA Adaptern.
usb-storage.quirks=152d:0578:u in die cmdline.txt mit einfügen, wobei die 152d:0578 die lsusb id deines Adapters ist. Damit war dann wieder volle Lotte möglich.
Ja bei einem normalen Linux auf dem RPI aber mit esxi drunter wird es schon schwieriger, da es diese befehle dort so leider nicht gibt. Falls du eine Lösung hast, lass es mich gerne wissen.
Hallo ich habe eine frage zu thpimon
wie bekomme ich die werte von dem pi weg.
zb in eine txt oder mysql oder mqtt.
Geht es dir nur im die Temperatur? Dann wäre das hier vielleicht eine Möglichkeit:
https://www.virten.net/2020/11/raspberry-pi-running-esxi-arm-send-cpu-temperature-to-graphite/