Fling On Raspberry Pi
Fling On Raspberry Pi
1. Info
2. Required and supported hardware
2.1. Power Supply
2.2. Cooling
2.3. HDMI
2.4. HATs
2.4.1. PoE
2.4.2. Other HATs
2.5. Optional Serial Console
2.6. USB devices
3. Preparation
3.1. Ensure Raspberry Pi EEPROM is updated
3.2. Setup UEFI on SD Card
3.2.1. Download the necessary bits
3.2.2. Prepare SD card.
3.2.2.1. On Windows
3.2.2.2. On macOS
3.3. Decide on your console choice
3.3.1. Wiring
3.3.2. Terminal emulator
3.3.2.1. 'screen' terminal emulator
3.3.2.2. 'minicom' terminal emulator
3.4. UEFI firmware configuration
3.4.1. Disable 3GiB memory limit
3.4.2. Console Preference Selection
3.4.3. Raspberry Pi Display Configuration
3.4.4. Raspberry Pi CPU Configuration
4. Install ESXi-Arm
4.1. Power
4.2. Automated installation
4.3. Booting the installer
4.3.1. Installation target
4.4. Post install
4.5. NTP
5. Known issues
5.1. Hardware
5.1.1. Flaky USB in UEFI or ESXi
5.1.1.1. This is largely due to power issues.
5.1.1.2. Plugging devices while system is on.
5.2. UEFI Firmware
5.2.1. Synchronous Exception at 0x00000000371013D8
5.2.2. Official Pi PoE hat fan doesn't work
5.3. ESXi-Arm
5.3.1. USB performance
1. Info
The Raspberry Pi 4B is a credit-card size single board computer (SBC). It is based on the Broadcom BCM2711 SoC with 4 x Cortex-A72 and supports up
to 8GiB RAM. The SBC also has USB3 and GbE connectivity.
See https://www.raspberrypi.org/products/raspberry-pi-4-model-b/specifications/
The anticipated use case is "Far Edge": e.g. a virtualized IoT gateway.
As you will note, SD card is not supported. It is only used to keep the UEFI firmware.
2.2. Cooling
It is highly recommended to perform active cooling. The Pi runs hot. Passive cooling (heatsinks) help here, but so will a nice quiet 5V Noctua fan. Cooling
and cases are highly individual and may involve some handywork.
2.3. HDMI
Use a micro-HDMI adapter or cable like https://www.amazon.com/CanaKit-Raspberry-Micro-HDMI-Cable/dp/B07TTKD38N.
2.4. HATs
2.4.1. PoE
These can be used for building clusters of Pies. Note that it is highly recommended to provide additional active cooling. PoE HATs make an already hot Pi
run even hotter, without any space for passive cooling elements and (at best) puny fans.
GeeekPi Raspberry Pi 4 https://www.amazon.com/gp/product/B0833PP65P Fan works. Largest fan so far seen on a PoE hat and there is
PoE HAT space for heatsinks.
UCTRONICS PoE HAT https://www.amazon.com/UCTRONICS-Raspberry- Fan works. No space for heatsinks.
for Raspberry Pi 4 Ethernet-Expansion-Cooling/dp/B082ZJYCS3
Official Raspberry Pi https://www.amazon.com/poe-hat/dp/B07GR9XQJH Fan doesn't spin due to missing UEFI support. No space for
Power Over Ethernet heatsinks. Must use external cooling!
Note: Get a USB-to-TTL serial cable. The cable must be for 3.3V, not 5V.
0403 6001 DTECH FTDI USB to TTL Serial 3.3V Adapter Cable https://www.amazon.com/dp/product/B07RBKCW3S
Note: Some of these USB devices have Type-C plugs. The expectation is that they will be plugged (directly or via hub) into the front (USB3) ports. Use a
mechanical adapter such as https://www.amazon.com/gp/product/B07LF72431. Do not plug these into the Type-C port on the Pi for performance reasons.
See the lists and notes in the main ESXi-Arm Fling Doc.
3. 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.
You need:
SD Card
HDMI Screen (optional)
Raspberry Pi Imager Tool for your OS: https://www.raspberrypi.org/downloads/
"If successful, the green LED light will blink rapidly (forever), otherwise an error pattern will be displayed.
If a HDMI display is attached then screen will display green for success or red if failure a failure occurs."
3.2.2.1. On Windows
Open up Windows Explorer and identify the SD Card and select "Format" and create FAT32 partition. In the example below, the partition label is called
UEFI:
Extract firmware-master.zip and then delete all files starting with kernel*.img within firmware-master/boot directory and then copy the entire content of
the "boot" directory onto the newly formatted SD card:
Extract RPi4_UEFI_Firmware_v1.20.zip and copy all files within the RPi4_UEFI_Firmware_v1.20 directory into the same boot directory (confirm override
of files when prompted) on SD card:
4GB Pi 4 only: Edit the config.txt file on the SD Card and append gpu_mem=16:
Eject the SD Card and then put the SD card into the Pi.
3.2.2.2. On macOS
Identify the disk using the following command and make note of the disk path (e.g. /dev/diskX):
$ diskutil list
Create FAT32 partition on the SD Card by running the following command and providing disk path. The partition label will be called UEFI, you can choose
another name if you wish:
Delete all files starting with kernel*.img within firmware-master/boot directory and then copy the entire content of the "boot" directory onto the newly
formatted SD card:
$ rm ~/Desktop/firmware-master/boot/kernel*.img
$ cp -rf ~/Desktop/firmware-master/boot/* /Volumes/UEFI
Copy all files within the RPi4_UEFI_Firmware_v1.20 directory into the same boot directory on SD card:
4GB Pi 4 only: Edit the config.txt file on the SD Card and append gpu_mem=16:
echo "gpu_mem=16" >> /Volumes/UEFI/config.txt
HDMI + USB keyboard (if you choose this option, skip to 3.4)
Required to update Raspberry Pi's microcode EEPROM via Pi OS
Access to UEFI setup
Preferred for installing ESXi-Arm
Serial console
Access to UEFI setup
Supported for installing ESXi-Arm
If you choose HDMI and a USB keyboard, make sure to use the leftmost HDMI port.
If you chose to wire up the serial port, connect the cable to the UART pins on the board. The three pins you would need to connect are GND, TX and RX.
3.3.1. Wiring
Note the connections are as follows, with the TX pin on the cable going to the RXD and vice-verse. If you get this wrong, you will see no output.
Data Bits 8
Parity None
Stop Bits 1
On Linux:
$ screen /dev/tty.usbserial-A900UE2E
With minicom, you will have to configure settings the first time you use it. To access menus, you will have to use the CTRL key in Linux, and ESC key on
macOS. These directions will refer to this key as META.
On Linux:
$ minicom -c on -D /dev/ttyUSB0
On macOS:
$ minicom -c on -D /dev/tty.usbserial-A900UE2E
Now press O:
Use arrow key to navigate to Serial port setup and press the ENTER:
Now press E:
Make sure settings F and G both say No to any kind of flow control. Press ENTER when done, then navigate to Save setup as dfl and press ENTER.
Use ESC to exit out of the menus.
With an HDMI screen, this is when you see the Raspberry Pi logo.
Press Y, then ESC three times to get back to the home page. Then navigate to Continue and press ENTER.
Note: do not overclock. Not only are you compromising stability, but memory and I/O performance may suffer up to 2x.
4. Install ESXi-Arm
Follow the generic installation steps, with a few caveats.
On the Raspberry Pi, ESXi only supports installation to USB storage or iSCSI LUNs.
It is recommended to use HDMI video + USB for installation itself. If you need to pass any advanced options to installer (e.g. via Shift-O in the ESXi
bootloader), this cannot be done using serial console today.
E.g. Append autoPartitionOSDataSize=8192 for an 8GB VMFS-L partition, and the rest available for a datastore.
For more details on changing the default OSData volume, please see this blog post.
4.1. Power
Make sure to use a solid power supply. If plugging in USB NICs or any storage beyond a very basic USB thumb drive, consider using a powered USB hub.
Press ENTER, then navigate to the USB drive with the installer.
Note: If you're using the official Raspberry Pi USB keyboard, F11 is the combination of Fn and F1.
You also can install on a remote iSCSI target, which requires some additional setup in the Raspberry Pi UEFI. See the main Fling document.
After ESXi install completes, remove the install USB drive. After the system reboots, re-enter UEFI setup and navigate to Boot Maintenance Manager:
Press ENTER twice, and use arrow keys to navigate to the only USB drive you see:
Keep pressing the + key until the drive is at the top of the list. You definitely want to skip any network options as they take a long time to time out.
4.5. NTP
The Pi does not have a battery backed RTC. Consequently, its notion of time will reset back to the UEFI firmware build date on every boot. Thus, you must
configure NTP if you wish to add the Pi to a vCenter (ideally, matching the NTP servers used by vCenter to avoid time skew issues).
5. Known issues
5.1. Hardware
Workaround: Avoid hot plugging devices directly into the Pi if you can.
Workaround: You will have to copy a fresh RPI_EFI.FD over to the SD card. Make sure to change UEFI settings again (disable 3G limit and update boot
order).
5.2.2. Official Pi PoE hat fan doesn't work
See https://github.com/pftf/RPi4/issues/101.
Workaround: Either use a different PoE hat or provide active cooling (recommended regardless).
5.3. ESXi-Arm