VMware Cloud Community
TECH198
Hot Shot
Hot Shot
Jump to solution

ESXi on M1

I know this is "unknown" category, and there is clearly no support for ESXi, and i', not asking to make it work either. All I'm wondering if its related.

I have successfully installed ESXi 5.5 on UTM under M1 and although VMWare has ceased the C# client vSphere client, and unless you host it yourself, all links are basically dead online.. The workaround i found was to simply "connect to server" under VMWare Fusion, but this is far as i got. I created VM but it failed to power on.., Every VM i tried had the same result.

My question, is I know M1 does NOT supported nested VM, and would this be considered "one and the same" ? on this issue i'm facing

EsXi runs on bare-metal, but running inside a VM, and then a VM in a datastore, could  that technically be the same as a "nested VM' ??? If so, then this could be why due to hardware not supporting nested VM. But i just want to be sure if this was the case, aside from UTM obviouslys.

By the way, i tried to download files from Datastsore, but fusion beachballed and crashed... No surprise there, given what i was doing.

0 Kudos
1 Solution

Accepted Solutions
bluefirestorm
Champion
Champion
Jump to solution

I doubt the ESXi7 ARM Fling would work on any of the Apple Mx series without modifications. It took quite a bit of effort to get Asahi Linux to properly boot and run natively on Apple M1 chips.

The error message "System EL(1) != kernel EL(2)" looks like makes it a non-starter; from the looks of it, ESXi7 ARM is expecting EL2 while the system is EL1.

https://developer.arm.com/documentation/102412/0103/Execution-and-Security-states/Security-states

View solution in original post

0 Kudos
6 Replies
bluefirestorm
Champion
Champion
Jump to solution

My understanding is that UTM is emulation and not virtualisation. I doubt it can emulate the hardware Intel VT-x for instruction execution and EPT for virtual RAM management.

Raspberry Pi 5 uses the ARM Cortex-A76 which Google-Fu says that it is based on ARMv8.2-A while M1 is based on  ARMv8.4-A. There are posts of successful installation of the ESXi Fling for ARM on RPi5. My guess the barrier to installing the ESXi for ARM Fling on M1 is the same barriers that Apple puts up that prevents installing other ARM-based OS to successful install natively on it.

Having said that, ESXi 5.5 have long allowed nested virtualisation even if there is no VT-x/EPT in the CPU. The catch is the VMs could only have 32-bit OS. The other catch is it will likely be slow and just like going back to the early days of VMware. So you might get further with a 32-bit guest OS in the VM with what you're trying to do. Binary translation and software managed virtual RAM was removed in ESXi 6.7.

Probably not necessary to do this as likely ESXi 5.5 will automatically decide based on the absence of VT-x/EPT; but to ensure that the VM will use binary translation and software managed virtual RAM; you might want to add the following in the /etc/vmware/config file of ESXi 5.5 as it will then apply for all VMs instead of individually editing VM vmx configuration files.

monitor.virtual_exec="software"
monitor.virtual_mmu="software"

0 Kudos
TECH198
Hot Shot
Hot Shot
Jump to solution

The error is "Failed to power on VM"

I did try Windows XP (32 bit) as well, but nothing, even adding the monitor.virtual lines you mentioned. I don't think this is 32 vs 64 bit issue..  More compatibility issue and the fact M1 can't support the state.

 

 

 

0 Kudos
bluefirestorm
Champion
Champion
Jump to solution

You could try adding to the /etc/vmware/config file

vmx.allowNested = "TRUE"

That entry is suppose to allow VMs to power up when ESXi/Workstation detects it is running inside a non-VMware hypervisor (e.g. VM running inside Workstation inside a Hyper-V VM). Although technically UTM is not a hypervisor, maybe ESXi 5.5 detects it as such.

Other than that, there is probably not much else to make a 32-bit VM run inside ESXi running with UTM on M1.

UTM aside, theoretically, binary translation can go quite deep with nested VMs but it will be like a matryoshka doll in the shrinking virtual RAM with a nesting of 32/16-bit OS.

Example:
8GB ESXi -> 4GB Windows 7 -> 2GB Windows XP -> 1GB Windows 2000 -> 256MB Linux -> 32MB Windows 9x.

You can probably do something similar with OS X. But you need to have the equivalent VMware Workstation/Player/Fusion that will run on 32-bit host OS. I think Workstation 10.x/Player 6.x are the last versions that could run on a 32-bit Windows/Linux host.

0 Kudos
RDPetruska
Leadership
Leadership
Jump to solution

Might you get better results trying the ESXi for ARM Fling version?  At least then you wouldn't be relying on translation/emulation for the x86 version of ESXi.

0 Kudos
TECH198
Hot Shot
Hot Shot
Jump to solution

Nada .. I added "AllowNested" to config, and it stuck at powering it on (first stage of running before it goes to black)

Screenshot 2024-04-16 at 4.37.43 AM.png

I then tried Fling (ESXi 7) but got "Unsupported" (I downloaded this from VMWare website)

Screenshot 2024-04-16 at 5.05.53 AM.png

 

I think I read somewhere, Apple doesn't use the same Hypervisor type as ESXi, hence why it doesn't work, and while UTM (emulate) could pull it off in theory, QEMU has limited access to Apple's underlying, which could explain what i'm seeing here as well.. ....

 

'

0 Kudos
bluefirestorm
Champion
Champion
Jump to solution

I doubt the ESXi7 ARM Fling would work on any of the Apple Mx series without modifications. It took quite a bit of effort to get Asahi Linux to properly boot and run natively on Apple M1 chips.

The error message "System EL(1) != kernel EL(2)" looks like makes it a non-starter; from the looks of it, ESXi7 ARM is expecting EL2 while the system is EL1.

https://developer.arm.com/documentation/102412/0103/Execution-and-Security-states/Security-states

0 Kudos