I'm working with VxWorks, a Real Time Operating System for embedded systems. They recently added QEMU support, and I've been trying to figure it out. (I'm fairly new to all these technologies.) I would like to checkpoint and restart the virtual machine, ie save the RAM and processor state and reload it later from exactly that point.
I read up on snapshots, but those seem to require a disk image in qcow2 format. But my simulation has no disk, the program is loaded directly into RAM and run. Here's my QEMU command: qemu-system-aarch64 -m 4096M -smp 4 -machnie xlnx-zcu102 -device loader,file=~/vxworks_21.03/workspace3/QEMU_helloWorld/default/vxWorks,addr=0x00100000 -nographic -monitor telnet:127.0.0.1:35163,server,nowait -serial telnet:127.0.0.1:39251,server -device loader,file=~/vxworks_21.03/workspace3/vip_xlnx_zynqmp_smp_64/default/xlnx-zcu102-rev-1.1.dtb,addr=0x0f000000 -device loader,addr=0x000ffffc,data=0xd2a1e000,data-len=4 -device loader,addr=0x000ffffc,cpu-num=0 -nic user -nic user -nic user -nic user,id=n0,hostfwd=tcp:127.0.0.1:0-:1534,hostfwd=udp:127.0.0.1:0-:17185 Then I log into the monitor and: $ telnet 127.0.0.1 35163 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. QEMU 5.2.0 monitor - type 'help' for more information (qemu) savevm Error: No block device can accept snapshots I tried a number of things, like creating an empty disk image, but no luck so far. I see that libvirt has a "save" command that seems like it might do the right thing, which makes me think there must be some way to do with just QEMU. The host is RedHat Linux 8.4 running on an x86 desktop, the guest in this case is ARM64, although I'd be happy to use x86 as well. Thanks, Jim