summaryrefslogtreecommitdiffstats
path: root/usr.sbin/vmd/Makefile (follow)
Commit message (Collapse)AuthorAgeFilesLines
* disable vmd/vmctl for i386pd2019-01-181-2/+2
| | | | | | | | | | | | Next commit will delete vmm(4) for i386. Reasons to delete i386 vmm: - Been broken for a while, almost no one complained. - Had been falling out of sync from amd64 while it worked. - If your machine has vmx, you most probably can run amd64, so why not run that? ok mlarkin@ deraadt@
* Implement the fw_cfg interface basics and use it to set the bootorderclaudio2018-12-101-2/+2
| | | | | | | | | if a bootdevice was forced. This implements both the pure IO port interface and also the new DMA interface, a few direct commands are implemented which are needed but in general the "file" interface should be used. There is no write support for the guest. Tested against the latest vmm-firmware port. This requires also a -current kernel to pass the IO ports to vmd(8). OK mlarkin@ ccardenas@
* Add initial qcow2 image support.ccardenas2018-09-091-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Users are able to declare disk images as 'raw' or 'qcow2' using either vmctl and vm.conf. The default disk image format is 'raw' if not specified. Examples of using disk format: vmctl start bsd -Lc -r cd64.iso -d qcow2:current.qc2 or vmctl start bsd -Lc -r cd64.iso -d raw:current.raw is equivalent to vmctl start bsd -Lc -r cd64.iso -d current.raw in vm.conf vm "current" { disable memory 2G disk "/home/user/vmm/current.qc2" format "qcow2" interface { switch "external" } } or vm "current" { disable memory 2G disk "/home/user/vmm/current.raw" format "raw" interface { switch "external" } } is equivlanet to vm "current" { disable memory 2G disk "/home/user/vmm/current.raw" interface { switch "external" } } Tested by many. Big Thanks to Ori Bernstein.
* Rework disks to have pluggable backends.ccardenas2018-08-251-2/+2
| | | | | | | | | | This is prep work for adding qcow2 image support. From Ori Bernstein. Many thanks! Tested by many. OK ccardenas@
* sync DPADD with LDADD adding missing ${LIBPTHREAD} to ensuregsoares2018-06-281-2/+2
| | | | | that binary is rebuilt in case of pthread library changes. OK deraadt@ reyk@
* Add initial CD-ROM support to VMD via vioscsi.ccardenas2018-01-031-2/+2
| | | | | | | | | | | | | * Adds 'cdrom' keyword to vm.conf(5) and '-r' to vmctl(8) * Support various sized ISOs (Limitation of 4G ISOs on Linux guests) * Known working guests: OpenBSD (primary), Alpine Linux (primary), CentOS 6 (secondary), Ubuntu 17.10 (secondary). NOTE: Secondary indicates some issue(s) preventing full/reliable functionality outside the scope of the vioscsi work. * If the attached disks are non-bootable (i.e. empty), SeaBIOS (vmd's default BIOS) will boot from CD-ROM. ok mlarkin@, jca@
* no need to generate y.tab.h if nothing uses it, set YFLAGS to nothingespie2017-07-031-2/+2
| | | | | | instead of CLEANFILES += y.tab.h okay millert@
* Adds functions to read and write state of devices in vmd.reyk2017-05-081-2/+2
| | | | | | | | | | | | | This is required for implementing vmctl send and vmctl receive. vmctl send / receive are two new options that will support snapshotting VMs and migrating VMs from one host to another. The atomicio files are copied from usr.bin/ssh. Patch from Pratik Vyas; this project was undertaken at San Jose State University along with his three teammates, Ashwin, Harshada and Siri with mlarkin@ as the advisor. OK mlarkin@
* Add support for dynamic "NAT" interfaces (-L/local interface).reyk2017-04-191-2/+2
| | | | | | | | | | | | | When a local interface is configured, vmd configures a /31 address on the tap(4) interface of the host and provides another IP in the same subnet via DHCP (BOOTP) to the VM. vmd runs an internal BOOTP server that replies with IP, gateway, and DNS addresses to the VM. The built-in server only ever responds to the VM on the inside and cannot leak its DHCP responses to the outside. Thanks to Uwe Werler, Josh Grosse, and some others for testing! OK deraadt@
* Split vmm.c into two files: vm.c for the VM child, vmm.c for the parentreyk2017-03-011-4/+4
| | | | | | As discussed with mlarkin@, it makes it easier to maintain the file. OK mlarkin@
* Implement basic support for boot.conf(8) on the disk image.reyk2016-11-261-2/+2
| | | | | | | | | | | | | | | | Like the real boot loader, load and parse hd0a:/etc/boot.conf from the first disk and fall back to /bsd. Not all boot loader options are supported, but it at least does set device, set image, and boot -acds (eg. for booting single-user). For example, it can now boot install60.fs that includes a boot.conf with "set image /6.0/amd64/bsd.rd": vmctl start install -c -d install60.fs -d OpenBSD.img This pseudo-bootloader is only needed without BIOS and could potentially be replaced in the future. OK mlarkin@
* Add support for booting the kernel from the disk image.reyk2016-11-241-1/+2
| | | | | | | | | | | | | | This make the kernel/-k argument optional and, if not specified, tries to find the /bsd kernel in the primary hd0a partition of the first disk image itself. It doesn't support hd0a:/etc/boot.conf yet, and it is no BIOS or full boot loader, but it makes booting and handling of VMs a bit easier - booting an external kernel is still supported. The UFS file system code ufs.c is directly from libsa which is also used by the real boot loader. The code compiles with a few signedness warning which will be fixed separately. OK mlarkin@
* vmd(8)/vmctl(8) for i386. Some ugliness in #ifdef __i386__ areas will bemlarkin2016-10-261-2/+2
| | | | | | | | fixed in tree, but the changes required were pretty minimal. Note that i386 hosts are still presently limited to running i386 guests. ok deraadt, stefan, jca
* Add a new "priv" process that is responsible for ioctls and restrictedreyk2016-10-041-2/+2
| | | | | | | | | | | operations that aren't allowed under pledge. This is a companion to the "vmd" process that runs as root but with pledge. With the "priv" process, each new tap(4) interface now gets a description to indicate the vm, eg. "vm1-if0-myvm". For network configuration will be done by vmd/priv later. OK mlarkin@
* forgot during previous commit, thanks stefan@mlarkin2016-09-011-3/+3
|
* Add support for an optional vm.conf(5) file in vmd. This will replacereyk2015-12-031-11/+17
| | | | | | | vmm.conf(5) in vmmctl. For a short time, both vmd and vmmctl will support a configuration file, but vmmctl will be changed to send "load" requests to vmd instead of loading and parsing the file directly.
* Split the fully privileged parent into two processes "parent" andreyk2015-12-021-1/+1
| | | | | | | | | | | | | | "vmm" with reduced privileges: - the "parent" opens fds (disks, ifs, etc.) but runs as root but pledged as "stdio rpath wpath proc tty sendfd". - the "vmm" process handles the creation and supervision of vm processes, and the primary communication with the vmm(4) subsystem. It runs as _vmd in the chroot but does not use pledge, as the vmm ioctls are not allowed by any pledge model yet. With this change, vmd starts to track the configuration state of VMs in vmd and will allow other things later (like terminating a vm by name, moving the configuration parser to vmd, ...). More incremental changes will follow.
* Start tweaking vmd's privsep and daemon model by splitting the mainreyk2015-12-021-3/+4
| | | | | | | | process into multiple parts and adopting the "proc.c"-style from other daemons. This allows to further reduce the privileges, to give better pledge(2), and to add some upcoming changes. "please do" mlarkin@, deraadt@
* Do not need YFLAGS=deraadt2015-11-231-1/+0
|
* Add support for logging to stderr or syslog, and to run vmd inreyk2015-11-231-1/+1
| | | | | | foreground with -d. OK mlarkin@ jung@
* install manpages global, since two architecture (will) use them.deraadt2015-11-231-1/+0
|
* vmd(8) - virtual machine daemon.mlarkin2015-11-221-0/+24
There is still a lot to be done, and fixed, in these userland components but I have received enough "it works, commit it" emails that it's time to finish those things in tree. discussed with many, tested by many.