OpenVMS virtualization: OpenVMS on VirtualBox, VMWare, Hyper-V, KVM, and more.
-
Topic author
nix23
- Contributor
- Posts: 10
- Joined: Fri Apr 14, 2023 9:53 am
- Reputation: 0
-
Status:
Offline
Post
by nix23 » Fri Apr 14, 2023 10:43 am
Since my old warhorses are all not capable of running OpenVMS (no XSAFE) i try to run it with qemu (full emulation), i know it's not supported but for the fun let's try it, so this is my qemu one-liner:
Code: Select all
qemu-system-x86_64 -bios /usr/share/edk2-ovmf/x64/OVMF.fd -cpu Cascadelake-Server-v4 -M q35
-smp 8,sockets=1,cores=8,threads=1 -m 6192 -drive file=./openvms0.img -cdrom ./X86E921OE/X86E921OE.ISO
-netdev user,id=mynet0,net=192.168.1.0/24,dhcpstart=192.168.1.200 -nic user,model=e1000 -serial stdio
vms_bootmgr starts and see's the Disk (openvms0.img), then proceeds to boot, connection to Com works, all CPU's get initialized then crash. Has anyone a idea how to proceed?
Since .txt or none at all is a invalid extension as attachment i cant add the crash from the serial-console.
Last edited by
nix23 on Fri Apr 14, 2023 10:57 am, edited 3 times in total.
-
volkerhalle
- Master
- Posts: 206
- Joined: Fri Aug 14, 2020 11:31 am
- Reputation: 0
-
Status:
Offline
Post
by volkerhalle » Sat Apr 15, 2023 8:31 am
For a working boot (E9.2-1 on VMware Workstation Player 16), I see:
using BOOTMGR> B DKA100 0 800000F0
...
Code: Select all
...
Configuring devices...
%LOADER-I-INIT, initializing SYS$FTDRIVER
%LOADER-I-INIT, initializing SYS$PIPEDRIVER
%LOADER-I-INIT, initializing SYS$EI1000X.EXE <<< so next driver after SYS$PIPEDRIVER would be LAN interface driver
%LOADER-I-INIT, initializing SYS$LAN.EXE
%LOADER-I-INIT, initializing SYS$LAN_CSMACD.EXE
%EIA0, Link up: 1000 mbit, fdx, flow control (rcv only), 00-0C-29-F8-57-7E
%LOADER-I-INIT, initializing SYS$PKDDRIVER.EXE
%LOADER-I-INIT, initializing SYS$DKDRIVER
%LOADER-I-INIT, initializing SYS$YTDRIVER.EXE
****************************************************************
You can install or upgrade the OpenVMS X86-64 operating system
...
As compared to the full console output posted by dmjb:
Code: Select all
...
Configuring devices...
%LOADER-I-INIT, initializing SYS$FTDRIVER
%LOADER-I-INIT, initializing SYS$PIPEDRIVER
%SYSTEM-W-NOPAGEFILE, no pagefile installed; system trying to continue
Note that there is no pagefile installed when booting from the X86E921OE installation disk !
Volker.
-
dmjb
- Valued Contributor
- Posts: 80
- Joined: Mon Aug 17, 2020 4:38 pm
- Reputation: 0
-
Status:
Offline
Post
by dmjb » Sat Apr 15, 2023 9:04 am
The extra boot logging options which I enabled were:
I ran these commands before executing the BOOT command in the UEFI boot loader screen.
I am going to install VMS on KVM/QEMU today and I will compare the qemu options generated by Virtual Machine Manager against my hand-crafted QEMU command. For what it is worth - the version of QEMU on my M1 Mac is 7.2.1 and was installed through homebrew.
(I should also point out that I have successfully installed VMS on real x86 hardware using VMware, my QEMU experiments are for my own amusement)
Last edited by
dmjb on Sat Apr 15, 2023 9:07 am, edited 1 time in total.
-
dmjb
- Valued Contributor
- Posts: 80
- Joined: Mon Aug 17, 2020 4:38 pm
- Reputation: 0
-
Status:
Offline
Post
by dmjb » Thu May 18, 2023 1:43 pm
I tried this again recently with the recently released Qemu 8.0.0 on my M1 Mac. Using the same config as I described earlier in the thread, I now hit a stumbling block earlier in the boot process, so unfortunately it seems that the newer version of Qemu is less amenable to starting VMS in emulation than before. It now stalls at:
Code: Select all
%EXECINIT-I-PERCPU, initializing per-CPU database
%EXECINIT-I-INITS, calling initialization routines
%LOADER-I-INIT, initializing SYS$BASE_IMAGE
%LOADER-I-INIT, initializing SYS$PLATFORM_SUPPORT
%LOADER-I-INIT, initializing ERRORLOG
%LOADER-I-INIT, initializing SYS$ACPI
%LOADER-I-INIT, initializing SYSTEM_PRIMITIVES_3_MIN
SWIS Logging is currently OFF.
Turn on by setting SWIS_LOG bit 1 or setting SYSTEM_CHECK non-0 and clearing SWIS_LOG bit 3.
%LOADER-I-INIT, initializing SYSTEM_SYNCHRONIZATION
I have seen someone claim to be able to get Qemu working with emulation in this thread:
viewtopic.php?f=39&t=8588&p=18232 I would be curious to see what settings/version of Qemu was used, since I feel like I have tried most obvious combinations of settings to get x86 VMS running in emulation
-
lgh127001
- Visitor
- Posts: 2
- Joined: Mon Sep 04, 2023 4:41 pm
- Reputation: 0
-
Status:
Offline
Post
by lgh127001 » Mon Sep 04, 2023 5:00 pm
Hello,
I know this is not officially supported, but did anyone have any success with this non-KVM operation? I have an older machine which doesn't support xsave instruction, but apart from this one thing would be perfect for testing virtualized OpenVMS as I don't use that machine that often anymore for other tasks so I could make it run only OpenVMS 24/7. Tried various Qemu processor models but had no luck so far. VmWare has the disadvantage that it requires GUI installed but if I could do it with Qemu I could run it headless and expose only an SSH interface.
Thank you if anyone has any kind of information on this.
-
floris.fredrikze
- Visitor
- Posts: 1
- Joined: Thu Mar 21, 2024 3:48 pm
- Reputation: 0
-
Status:
Offline
Post
by floris.fredrikze » Fri Mar 22, 2024 5:33 am
Has anyone had luck with QEMU on macOS on Apple Silicon yet?
I tried setting the CPU "-machine q35 -cpu max" and using UTM with the same settings without much luck.
I do get the boot process to start but it fails at some point at the "no pagefile installed"
With macOS on x86_64 I had more luck when enabling Hypervisor "-accel hvf". using UTM I was able to install and boot to OpenVMS without much trouble. (Hypervisor acceleration on Apple Silicon supports only ARM64 and on Intel supports only x86_64 as far as I could find out)
This installed image then also does NOT work on Apple Silicon based macs.. Also not when running qemu under Rosetta.
(But this image does speed up the trail and error, as this image boots way faster than the ISO that needs to be loaded to memory)
There must be something that OpenVMS does not like about QEMU that works well when using an accelerator..
Does anyone have an idea how to go forward from here?
-
joukj
- Master
- Posts: 241
- Joined: Thu Aug 27, 2020 5:50 am
- Reputation: 0
-
Status:
Offline
Post
by joukj » Fri Mar 22, 2024 7:31 am
If I understood it correctly you try to run OpenVMS on a machine with ARM64 instruction set, while OpenVMS runs on machines with the X86_64 instruction set. I do not think this going to work.
-
arne_v
- Senior Member
- Posts: 531
- Joined: Fri Apr 17, 2020 7:31 pm
- Reputation: 0
- Location: Rhode Island, USA
-
Status:
Offline
-
Contact:
Post
by arne_v » Fri Mar 22, 2024 8:52 am
QEMU can emulate ISA. I believe q35 is x86-64.
-
joukj
- Master
- Posts: 241
- Joined: Thu Aug 27, 2020 5:50 am
- Reputation: 0
-
Status:
Offline
Post
by joukj » Fri Mar 22, 2024 10:52 am
But what does "hvf" add. Is that fully supported on Qemu and is it supported by OpenVMS?
Last edited by
joukj on Fri Mar 22, 2024 10:54 am, edited 1 time in total.
-
dmjb
- Valued Contributor
- Posts: 80
- Joined: Mon Aug 17, 2020 4:38 pm
- Reputation: 0
-
Status:
Offline
Post
by dmjb » Fri Mar 22, 2024 3:30 pm
joukj wrote: ↑Fri Mar 22, 2024 10:52 am
But what does "hvf" add. Is that fully supported on Qemu and is it supported by OpenVMS?
"hvf"/Hypervisor acceleration means that it QEMU uses virtualization instead of emulating the CPU.
It appears that QEMU's emulation of x86-64 is not quite good enough to support OpenVMS. My guess is that all the low-level trickery required to simulate four protection levels, the VAX interrupt semantics, etc. on x86-64 exposes some limitations in the qemu emulation which you would not see when running something like Linux or Windows on QEMU on a non x86-platform.
Last edited by
dmjb on Mon Mar 25, 2024 3:29 pm, edited 1 time in total.
-
joukj
- Master
- Posts: 241
- Joined: Thu Aug 27, 2020 5:50 am
- Reputation: 0
-
Status:
Offline
Post
by joukj » Mon Mar 25, 2024 3:05 am
Wich means that when using hvf on a Apple Silicon machine you get the ARM-instruction set and OpenVMS will not work