mirror of
https://github.com/Motorhead1991/qemu.git
synced 2026-01-03 13:10:32 -07:00
Download the install iso and prepare the image locally. Install to disk, using the serial console. Create qemu user, configure ssh login. Install packages needed for qemu builds. Yes, we have docker images for fedora. But for trouble-shooting it might be helpful to have a vm too. When vm builds fail you can use it to figure whenever the vm setup or the guest os is the problem. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Tested-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20190617043858.8290-11-kraxel@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
85 lines
2.8 KiB
Text
85 lines
2.8 KiB
Text
# Makefile for VM tests
|
|
|
|
.PHONY: vm-build-all vm-clean-all
|
|
|
|
IMAGES := ubuntu.i386 freebsd netbsd openbsd centos fedora
|
|
IMAGES_DIR := $(HOME)/.cache/qemu-vm/images
|
|
IMAGE_FILES := $(patsubst %, $(IMAGES_DIR)/%.img, $(IMAGES))
|
|
|
|
.PRECIOUS: $(IMAGE_FILES)
|
|
|
|
vm-test:
|
|
@echo "vm-test: Test QEMU in preconfigured virtual machines"
|
|
@echo
|
|
@echo " vm-build-ubuntu.i386 - Build QEMU in ubuntu i386 VM"
|
|
@echo " vm-build-freebsd - Build QEMU in FreeBSD VM"
|
|
@echo " vm-build-netbsd - Build QEMU in NetBSD VM"
|
|
@echo " vm-build-openbsd - Build QEMU in OpenBSD VM"
|
|
@echo " vm-build-centos - Build QEMU in CentOS VM, with Docker"
|
|
@echo " vm-build-fedora - Build QEMU in Fedora VM"
|
|
@echo ""
|
|
@echo " vm-build-all - Build QEMU in all VMs"
|
|
@echo " vm-clean-all - Clean up VM images"
|
|
@echo
|
|
@echo "For trouble-shooting:"
|
|
@echo " vm-boot-serial-<guest> - Boot guest, serial console on stdio"
|
|
@echo " vm-boot-ssh-<guest> - Boot guest and login via ssh"
|
|
@echo
|
|
@echo "Special variables:"
|
|
@echo " BUILD_TARGET=foo - Override the build target"
|
|
@echo " TARGET_LIST=a,b,c - Override target list in builds"
|
|
@echo ' EXTRA_CONFIGURE_OPTS="..."'
|
|
@echo " J=[0..9]* - Override the -jN parameter for make commands"
|
|
@echo " DEBUG=1 - Enable verbose output on host and interactive debugging"
|
|
@echo " V=1 - Enable verbose ouput on host and guest commands"
|
|
@echo " QEMU=/path/to/qemu - Change path to QEMU binary"
|
|
|
|
vm-build-all: $(addprefix vm-build-, $(IMAGES))
|
|
|
|
vm-clean-all:
|
|
rm -f $(IMAGE_FILES)
|
|
|
|
$(IMAGES_DIR)/%.img: $(SRC_PATH)/tests/vm/% \
|
|
$(SRC_PATH)/tests/vm/basevm.py \
|
|
$(SRC_PATH)/tests/vm/Makefile.include
|
|
@mkdir -p $(IMAGES_DIR)
|
|
$(call quiet-command, \
|
|
$(PYTHON) $< \
|
|
$(if $(V)$(DEBUG), --debug) \
|
|
--image "$@" \
|
|
--force \
|
|
--build-image $@, \
|
|
" VM-IMAGE $*")
|
|
|
|
|
|
# Build in VM $(IMAGE)
|
|
vm-build-%: $(IMAGES_DIR)/%.img
|
|
$(call quiet-command, \
|
|
$(PYTHON) $(SRC_PATH)/tests/vm/$* \
|
|
$(if $(V)$(DEBUG), --debug) \
|
|
$(if $(DEBUG), --interactive) \
|
|
$(if $(J),--jobs $(J)) \
|
|
$(if $(V),--verbose) \
|
|
--image "$<" \
|
|
$(if $(BUILD_TARGET),--build-target $(BUILD_TARGET)) \
|
|
--snapshot \
|
|
--build-qemu $(SRC_PATH) -- \
|
|
$(if $(TARGET_LIST),--target-list=$(TARGET_LIST)) \
|
|
$(if $(EXTRA_CONFIGURE_OPTS),$(EXTRA_CONFIGURE_OPTS)), \
|
|
" VM-BUILD $*")
|
|
|
|
vm-boot-serial-%: $(IMAGES_DIR)/%.img
|
|
qemu-system-x86_64 -enable-kvm -m 4G -smp 2 -nographic \
|
|
-drive if=none,id=vblk,cache=writeback,file="$<" \
|
|
-netdev user,id=vnet \
|
|
-device virtio-blk-pci,drive=vblk \
|
|
-device virtio-net-pci,netdev=vnet \
|
|
|| true
|
|
|
|
vm-boot-ssh-%: $(IMAGES_DIR)/%.img
|
|
$(call quiet-command, \
|
|
$(SRC_PATH)/tests/vm/$* \
|
|
--image "$<" \
|
|
--interactive \
|
|
false, \
|
|
" VM-BOOT-SSH $*") || true
|