lavabit / robox

The tools needed to robotically create/configure/provision a large number of operating systems, for a variety of hypervisors, using packer.
620 stars 140 forks source link

macOS arm64 boxen? #256

Open darkn3rd opened 1 year ago

darkn3rd commented 1 year ago

I was wondering if there is any support for arm64 boxen?

Most of the boxen out there that support arm64 only support Parallels, but recently Virtualbox now has arm64 version: https://download.virtualbox.org/virtualbox/7.0.4/VirtualBox-7.0.4_BETA4-154605-macOSArm64.dmg

ladar commented 1 year ago

Hi @darkn3rd / @aurynn ... I did a lot of digging on this issue recently. VMWare and VBox only offer ARM support on MacOS (via the release you mentioned, and VMWare Fusion). Parallels also has an arm64 release, and I think it's the only one of the three that isn't labelled experimental.

We do have a MacOS build bot, it's a 2011 Mac mini that is used to build the Parallels boxes but it (of course) has an Intel chip inside it (and a rather old one at that).

So, given the cost of M!/M2 Macs, and the fact that I don't really have any need for MacOS VMs at the moment, it's impossible for me (or Lavabit) to pickup spring for a new Mac mini just so we can build those boxes for other people. I'm afraid arm64 boxes for MacOS only hypervisors will have to wait until someone steps up and donates a machine we can use as a build robot or the cost of second hand M1/M2 Macs by quite a lot.

All of that said, I'm hoping to get my hands on an rackmount arm64 server at some point in early 2023. And the plan is to use that server to start building arm64 box images for libvirt/qemu, as that server will be running Linux.

But, at least in theory, the box images it generates should be compatible with libvirt+qemu on MacOS. Although I believe there are still a lot of edge cases for MacOS in general, and arm64 specifically that need to be improved when it comes the vagrant-libvirt plugin. Hopefully I'll be able to help get that process moving better once the server comes online.

And if VMWare/VBox release arm64 binaries for their hypervisors that run on Linux in the future, I will start building arm64 VBox/VMWare images as well. If you have any news on this, please let me know, but the last time I checked, (which was roughly 3-5 weeks ago) I couldn't find any information on whether that was on the roadmap for VBox or VMWare, so say nothing of a timeline.

Windows runs on arm as well (although licensing agreements still restrict official support to Samsung machines for the moment. Either way, arm64 box images for Hyper-V are in the same basket as arm64 box images for Parallels.

On a personal level, I'd like to see PPC and RISC-V also get added to the robox pipeline, as I'm rooting for open chip designs, but they are probably even further into the future. Unless of course someone from the community steps up with hardware and offers to help port the configs over to those targets.

aurynn commented 1 year ago

Hi @ladar, thanks for the update, I totally understand.

Would one of the hosted/cloud macOS-on-arm64 be usable by Robox here? I totally understand if not, it'd be an added ongoing expense that Lavabit probably wouldn't want to commit to.

In the meantime, would you expect the macOS VMWare Fusion boxes to build largely as-is from base images on my M2 machine? Being able to build locally (even if I'm not as familiar with Packer as I'd like) would solve the issues for me in the interim.

Thanks!

xandradx commented 1 year ago

Hello ! I built this boxes.

https://app.vagrantup.com/xandradx/

rocky9 alma9 rhel9

for arm64. (vmware_desktop)

Please test if possible. I'm still trying to integrate my changes to keep both x86 and arm64 images, but it's a work in progress.

I modified vmx_data_post, boot_command, ISOs, network_adapter_type, kickstart and vmware.sh (script).

for some reason vagrant won't start the vm in headless mode using the vmrun command.

   config.vm.provider "vmware_desktop" do |vb|
     vb.gui = true
     vb.vmx["ethernet0.virtualDev"] = "e1000e"
   end
aurynn commented 1 year ago

Hi @xandradx, did you push your changes to a fork? I'd love to be able to see if I can get Ubuntu building.

madhavajay commented 1 year ago

@xandradx yes I would also love to see these Packr files and perhaps help to provide image builds for Ubuntu, RHEL and Centos flavours on Arm64.

aurynn commented 9 months ago

Looking at the README.md, the architecture flag is coming soon, which presumes that arm64 support is coming soon.

xandradx commented 9 months ago

@xandradx yes I would also love to see these Packr files and perhaps help to provide image builds for Ubuntu, RHEL and Centos flavours on Arm64.

Sorry, I missed this reply.

https://github.com/lavabit/robox/compare/master...xandradx:robox:aarch64

Those are the modified files.

Regards,

xandradx commented 9 months ago

Hi @xandradx, did you push your changes to a fork? I'd love to be able to see if I can get Ubuntu building.

Sorry for the late reply, I just did this for a project I was working on. But will be glad to help in any way. Regards

xandradx commented 9 months ago

@xandradx yes I would also love to see these Packr files and perhaps help to provide image builds for Ubuntu, RHEL and Centos flavours on Arm64.

I just modified the related files, but didn't integrate it. Need more apdatations, but at least its a PoC.

darkn3rd commented 2 months ago

I was able to get arm64 working using the vagrant-qemu plugin. I even wrote a blog on this.

I used the perk/ubuntu-2204-arm64 (ref). The author grabbed the image ubuntu-22.04-server-cloudimg-arm64.img from https://cloud-images.ubuntu.com/ (src)

@ladar