[Project-13: ESXi Arm on RPi 400]
Overview
Thoughts ...
... RPI 400 with keyboard, mouse... eeprom must be up-to-date
Links:
- https://flings.vmware.com/esxi-arm-edition
- https://download3.vmware.com/software/vmw-tools/esxi-on-arm/Fling-on-Raspberry-Pi.pdf
- ESXi on Raspberry CM4 with eMMC
https://communities.vmware.com/t5/ESXi-Arm-Fling-Discussions/ESXi-on-Raspberry-CM4-with-eMMC/td-p/2900311 - Tutorial
https://nicovibert.com/2020/10/07/esxi-on-raspberry-pi-tutorial/ - How to run Raspberry Pi OS as a VM on ESXi-Arm
https://williamlam.com/2020/10/how-to-run-raspberry-pi-os-as-a-vm-on-esxi-arm.html
Preparation
Setup involves ensuring Raspberry Pi microcode (e.g. for USB) is up-to-date, deploying the UEFI firmware and preparing the installer USB drive.
Step 1: Ensure Raspberry Pi EEPROM is updated
On a working Raspberry OS run ...
Step 2: Prepare SD card
Format SD card with a single FAT32 (MSDOS) partition
Download the latest official Raspberry Pi Firmware ...
https://github.com/raspberrypi/firmware/archive/master.zip
... and extract the contents (should be a folder called firmware-master)Delete all files starting with kernel*.img within firmware-master/boot directory
Copy the entire content of the "boot" directory onto the newly formatted SD card:
This corresponds to the microcode necessary to initialize the Raspberry Pi.
Download the latest community Raspberry Pi 4 UEFI firmware ...
https://github.com/pftf/RPi4/releases
... and extract the contents (should be a folder called RPi4_UEFI_Firmware_v1.xx)Copy all files within the RPi4_UEFI_Firmware_v1.xx directory into the same boot directory on SD card
(confirm override of files when prompted)
This is the firmware necessary to boot ESXi-Arm.
4GB Pi 4 only
Edit the config.txt file on the SD Card and append gpu_mem=16Eject the SD Card and then put the SD card into the Pi.
Step 3: Download ESXi on Arm Fling
You need a My VMware (https://my.vmware.com) account, which you can register for free.
Download PDF files the ESXi-Arm team has created with easy to follow, step-by-step instructions.
- ESXi-Arm-Fling-Doc.pdf
- Fling-on-Raspberry-Pi.pdf
- ESXi-Arm-ISO file
https://flings.vmware.com/esxi-arm-edition
Raspberry Pi OS as a VM on ESXi-Arm
What you need:
7Zip (or other app that can handle .xy compressed files)
Qemu-img (or other app that can handle and convert virtual disk files)
ssh client to connect to ESXI-Arm
Create new VM
Compatibility: ESXi 7.0 and laterGuest OS Family: LinuxGuest OS Version: Debian GNU/Linux 11 (64-Bit)Datastore: datastore1 (or desired value)CPU: 2 (or desired value)MEM: 2GB (or desired value)Hard Disk 1: Remove default since we are going to attach later, the one we will convert.CD/DVD dive 1: disconnectedDownload desired OS
https://www.raspberrypi.com/software/operating-systems/
Unpack .img file from .XY file with 7Zip
Convert .img file to VMDK file with qemu-img
qemu-img convert -f raw [...].img -O vmdk [...].vmdkTransfer VMDK file to new VM storage location with ESXi-Manager Webgui
Convert the VMDK one more time so ESXi understands it.
The qemu-img utility only converts it to a hosted format which is normally used by Workstation/Fusion.
We use vmkfstools.
You need to SSH (SSH is disabled by default) to the ESXi-Arm host after SCP'ing the VMDK and then run this command from ESXi-Arm host:
After the conversion completes, you can delete the source VMDK.
VMware Tools for Debian 10 arm64 on ESXi-Arm
https://www.virten.net/2020/10/vmware-tools-for-debian-10-arm64-on-esxi-arm/
ESXi ARM on CM4
Hardware:
Board: CM4-IO-Base-B
https://www.waveshare.com/wiki/CM4-IO-BASE-B
RPi: CM4 8GB
Hardware : BCM2835Revision : d03140Serial : 100000002a5b16a7Model : Raspberry Pi Compute Module 4 Rev 1.0
dietpi@DietPiCM4:~$ sudo pinout,--csi1---dsi0---dsi1-----------,-------------.-----------.| ---- ---- ---- J2ooooooo|O O| |c| O Pi CM4 Rev 1.0 1oooooo| Wi | O |s| IO Board | Fi | |i| J6oo | +--+| |P| || J8 1o | ,----. |eM|| }-{ ||Ooooooooooooooooooooo O | |SoC | |MC|| |C| || 1ooooooooooooooooooo PoE | | | +--+| |I| || ,---. 1o | `----' | |e| ||( =O | oo | +----+ | || ) + | |O |RAM | O| ||( =O | `--+----+-----' || `---' || || || O |Net | |USB| |uSD| O|p|||O |HDMI| |HDMI| O | | | 2 | usb | | |w||`----| 0 |---| 1 |-------| |-| |-| |------------|r|'
Revision : d03140SoC : BCM2711RAM : 8GBStorage : eMMC / off-boardUSB ports : 2 (of which 0 USB3)Ethernet ports : 1 (1000Mbps max. speed)Wi-fi : TrueBluetooth : TrueCamera ports (CSI) : 2Display ports (DSI): 2
J2:1-2 DISABLE eMMC BOOT3-4 WRITE-PROT EEPROM
J6:1-2 CAM0+DISP0 (1) (2) 1-2 CAM0+DISP03-4 CAM0+DISP0 (3) (4) 3-4 CAM0+DISP0J8:POE:TR01 (1) (2) TR00TR03 (3) (4) TR02
For further information, please refer to https://pinout.xyz/