VirtualBox for the brave

I just uploaded an experimental packet that updates our VirtualBox port from version 6.1.38 to version 7.2.10. The packet is built for Sculpt 26.04 and can be downloaded from my depot. What is working, tested, and what not is tracked in issue #5891.

Feel free to try out the new version. Currently, there exists no installer, but if your are ready to possibly corrupt your VM (“Trust me, I know what I’m doing” :collision:), you can reuse any VDI or VMDK that works with our VirtualBox 6 port.

Here are the steps on how to reuse a previously setup VM:

  1. Update the index of ssumpf
  2. Download and install, but do not configure, ssumpf → Virtual machines → vbox7
  3. Copy the machine.vbox7 file from <used-fs>/depot/ssumpf/raw/vbox7/2026-06-22/machine.vbox7 into the directory that contains the VM’s machine.vbox6
  4. Edit machine.vbox7:
    • Replace <HardDisk uuid="{d65876fd-b855-4a35-bbfe-115447c1b9ba}" location="machine.vdi" format="VDI" type="Normal"/> with the corresponding line from your machine.vbox6 file
    • Replace <Image uuid="{d65876fd-b855-4a35-bbfe-115447c1b9ba}"/> with the corresponding line from your machine.vbox6 file
    • Adjust the RAM size (<Memory RAMSize="4096"/>) - if desired
    • Adjust the CPU count (<CPU count="2">) - if desired. I would not configure more than four CPUs at the current state
    • You can also enable EFI Boot by setting <Firmware type="EFI"/>
  5. Configure and start vbox7 → Good luck from here on!

In case you want to click together the configuration, here the deploy that was generated during my test run:

deploy
+ option board   | required: yes
+ option sculpt  | required: yes
+ option managed | required: yes
+ option system_clock
+ option mixer
+ option black_hole
+ option window_manager
+ option recall_fs
+ option system_shell
+ child mesa_gpu-cpu | pkg: genodelabs/pkg/mesa_gpu-cpu/2026-05-18 | priority: -3
  + connect
    + rm | + parent
+ child vbox7 | pkg: ssumpf/pkg/vbox7/2026-06-22 | priority: -3
  + affinity | xpos: 0 | ypos: 1 | width: 4 | height: 1
  + connect
    + fs vm               | + child nvme-1.4.fs | prepend_resource: /vm/ubuntu-22.04
    + fs shared           | + child nvme-1.4.fs | prepend_resource: /shared
    + vm                  | + parent
    + gpu                 | + child black_hole
    + gui                 | + child wm
    + nic                 | + child network
    + rom capslock        | + child report | label: global_keys/capslock
    + rom platform_info   | + parent       | label: platform_info
    + report shape        | + child wm
    + report clipboard    | + child wm
    + rom clipboard       | + child wm
    + rom mesa_gpu.lib.so | + child mesa_gpu-cpu
    + rm                  | + parent
    + rtc                 | + child system_clock
    + usb                 | + child usb
    + play                | + child black_hole
    + record              | + child black_hole
-

This should give some hints on what to start and what to select. I then converted vbox7 into an option and put it into the model/option folder. This way I can just start vbox7 using the System → Options dialog. Here the option:

option
  + child  vbox7 | pkg: ssumpf/pkg/vbox7/2026-06-22 | priority: default | ram: 8G
    + affinity | xpos: 0 | ypos: 1 | width: 4 | height: 1
    + connect
      + fs vm               | + child nvme-1.4.fs | prepend_resource: /vm/ubuntu-22.04
      + fs shared           | + child nvme-1.4.fs | prepend_resource: /shared
      + vm                  | + parent
      + gpu                 | + child black_hole
      + gui                 | + child wm
      + nic                 | + child network
      + rom capslock        | + child report | label: global_keys/capslock
      + rom platform_info   | + parent       | label: platform_info
      + report shape        | + child wm
      + report clipboard    | + child wm
      + rom clipboard       | + child wm
      + rom mesa_gpu.lib.so | + child mesa_gpu-cpu
      + rm                  | + parent
      + rtc                 | + child system_clock
      + usb                 | + child usb
      + play                | + child black_hole
      + record              | + child black_hole
-

You can also use the option as a basis and adjust the location of the fs vm node. In case you configured more than 4GB of RAM for the VM (default), you also have to provide a ram attribute, because vbox7 will require more RAM than configured in the recipe. In the example above I set ram: 8G.

Have fun testing and feel free to report any problems here or in #5891. Cheers!

6 Likes

This is a very exciting development for me!

Due to my stupidity, I upgraded my VMs to VBox 7 about a year ago, after which I could no longer run them in Genode’s VBox 6. I’ve been too lazy to try to downgrade them, so I’ve been in limbo for a while.

In my initial testing with an existing VM, this mostly works for me on my ThinkPad Yoga L380 (Intel). (I couldn’t hear audio, but I will tinker around with that.) It feels good to be back again!

On my Framework 16, with the same VM, it gets stuck right after Grub (v2), and never shows the Linux console output. I will continue tinkering with that also, since it could be a configuration issue.

I should probably ask this in a new thread, because it’s not specific to VBox 7, but are there any thoughts of adding “Save the machine state” support? I use this feature often, and to good effect - e.g., I have a script that uses VBoxManage to “savestate” all my VMs if the power gets too low, but also just to keep my state if I need to reboot the host, etc.

Thanks a million for this port!

Great! Audio is still disabled by default because we run into some issue with Ubuntu 24.04. You can enable it by changing:

<AudioAdapter controller="HDA" driver="OSS" enabled="false" enabledIn="false" enabledOut="false"/>
to
<AudioAdapter controller="HDA" driver="OSS" enabled="true" enabledIn="true" enabledOut="true"/>

in the machine.vbox7 file. You need to start the mixer and audio options and route the Record and Play sessions to the mixer.

This situation with the Framework sounds unfortunate, but we have some Framework users in the office. So any issues should be resolved eventually.

As far as I know there are currently no plans to support saving the VM state.

Thanks for testing.

1 Like

The Framework 16 is equipped with an AMD CPU to my knowledge, which we do not support with VirtualBox, right?

If that’s so, that sounds like the reason.

Thanks - that worked! I like to think I would have found that eventually, but it saved me some time. :slight_smile:

That explains it. Yes, the Framework 16 uses an AMD CPU.

I have no idea what’s involved in adding AMD support to VirtualBox - is that on the roadmap?

FYI: I have just published a packet that updates VirtualBox to version 7.2.12. What I gather from the Bug reports is that the 7.2.12 release mostly fixes Kernel crashes on Alpine (Changelog). Otherwise, VirtualBox 7 has become almost feature complete (#5891) on Genode. As a next step I will install VirtualBox 7 as a daily driver on my system (Gentoo VM with raw disk access). So if you are brave, checkout vbox7 version 2026-07-10 from my depot.

1 Like