Qemu

Je emulátor systémů PC.

Gentoo host - hostitel

Nainstaluji pomocí balíku app-emulation/qemu. Pro pohodlnější používání a lepší grafickou odezvu lze využít use flags spice, ssh, usbredir - toto s sebou nainstaluje i klienta spicy pro připojení do grafiky spuštěného virtuálního systému.

Více informací o Qemu na:

Package.use:

/etc/portage/package.use/01balickyapp-emulation/qemu spice ssh usbredir

Instalace:

sudo emerge -av app-emulation/qemuThese are the packages that would be merged, in order:

Calculating dependencies... done!
Dependency resolution took 3.60 s (backtrack: 0/20).

[ebuild   R    ] app-emulation/qemu-8.0.4::gentoo  USE="aio alsa bzip2 curl doc fdt filecaps gnutls gtk jpeg ncurses nls opengl oss pam pin-upstream-blobs png sdl seccomp slirp spice ssh udev usb usbredir vhost-net vnc xattr -accessibility -bpf (-capstone) -debug -fuse -glusterfs -infiniband -io-uring -iscsi -jack -jemalloc -lzo -multipath -nfs -numa -plugins -pulseaudio -python -rbd -sasl -sdl-image (-selinux) -smartcard -snappy -static-user -systemtap -test -vde -virgl -virtfs -vte -xen -zstd" PYTHON_TARGETS="python3_11 -python3_10 (-python3_12)" QEMU_SOFTMMU_TARGETS="x86_64 -aarch64 -alpha -arm -avr -cris -hppa -i386 -loongarch64 -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -nios2 -or1k -ppc -ppc64 -riscv32 -riscv64 -rx -s390x -sh4 -sh4eb -sparc -sparc64 -tricore -xtensa -xtensaeb" QEMU_USER_TARGETS="-aarch64 -aarch64_be -alpha -arm -armeb -cris -hexagon -hppa -i386 -loongarch64 -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -mipsn32 -mipsn32el -nios2 -or1k -ppc -ppc64 -ppc64le -riscv32 -riscv64 -s390x -sh4 -sh4eb -sparc -sparc32plus -sparc64 -x86_64 -xtensa -xtensaeb" 0 KiB

Total: 1 package (1 reinstall), Size of downloads: 0 KiB

Would you like to merge these packages? [Yes/No] 
		

Sdílená složka SMB

Je potřeba spustit qemu s parametry:

-net nic,model=virtio \
-net user,smb=/mnt/SDILENE \

Ve Windows nebo Linux je pak dostupná síťová složka \\10.0.2.4\qemu bez nutnosti přihlašovacích údajů.

Přesměrování USB zařízení ve SPICE

Spustit qemu s parametry:

-device ich9-usb-ehci1,id=usb \
-device ich9-usb-uhci1,masterbus=usb.0,firstport=0,multifunction=on \
-device ich9-usb-uhci2,masterbus=usb.0,firstport=2 \
-device ich9-usb-uhci3,masterbus=usb.0,firstport=4 \
-chardev spicevmc,name=usbredir,id=usbredirchardev1 -device usb-redir,chardev=usbredirchardev1,id=usbredirdev1 \
-chardev spicevmc,name=usbredir,id=usbredirchardev2 -device usb-redir,chardev=usbredirchardev2,id=usbredirdev2 \
-chardev spicevmc,name=usbredir,id=usbredirchardev3 -device usb-redir,chardev=usbredirchardev3,id=usbredirdev3 \

Zařízení pak budou dostuná v nabídce Input.

Windows guest - Windows v Qemu a spice

Grafická odezva je mnohem lepší s využitím spice, je k dispozici sdílená schránka a nebo také přizpůsobení rozlišení obrazovky hosta. Je potřeba démonizovat spuštění systému, definovat port pro zobrazení a to vše zohlednit při spouštění.

Spicy view

Spouštěcí skript se spicy nastavením grafiky:

Start-Windows.sh#!/usr/bin/env sh
SPICE_PORT=5924

sudo qemu-system-x86_64 \
     -daemonize \
     -m 6G \
     -hda /mnt/DATA/Qemu/win/win-vos.qcow2 \
     -net nic,model=virtio \
     -net user,smb=/mnt/DATA \
     -enable-kvm \
     -machine q35 \
     -device intel-iommu \
     -cpu host \
     -smp 4 \
     -smbios type=0,uefi=on \
     -bios /usr/share/edk2-ovmf/OVMF_CODE.fd \
     -boot order=d \
     -boot menu=on \
     -device ich9-usb-ehci1,id=usb \
     -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,multifunction=on \
     -device ich9-usb-uhci2,masterbus=usb.0,firstport=2 \
     -device ich9-usb-uhci3,masterbus=usb.0,firstport=4 \
     -chardev spicevmc,name=usbredir,id=usbredirchardev1 -device usb-redir,chardev=usbredirchardev1,id=usbredirdev1 \
     -chardev spicevmc,name=usbredir,id=usbredirchardev2 -device usb-redir,chardev=usbredirchardev2,id=usbredirdev2 \
     -chardev spicevmc,name=usbredir,id=usbredirchardev3 -device usb-redir,chardev=usbredirchardev3,id=usbredirdev3 \
     -device virtio-serial \
     -chardev spicevmc,id=vdagent,name=vdagent \
     -device virtserialport,chardev=vdagent,name=com.redhat.spice.0 \
     -vga qxl \
     -spice port=${SPICE_PORT},disable-ticketing=on \
     "$@" &

exec spicy --title Windows 127.0.0.1 -p ${SPICE_PORT}

GNU/Linux Gentoo guest

Tak spouštím Gentoo společně se spice, SMB a přesměrováním portů:

#!/usr/bin/env sh
SPICE_PORT=5925
QEMU_DIR="/mnt/DATA/Qemu/gentoopva"
cd $QEMU_DIR

sudo qemu-system-x86_64 \
     -daemonize \
     -m 3G \
     ./gentoo-root.qcow2 \
     -boot order=d \
     -boot menu=on \
     -enable-kvm \
     -machine q35 \
     -device intel-iommu \
     -net nic,model=virtio \
     -net user,hostfwd=tcp::20022-:22,hostfwd=tcp::8080-:8080,hostfwd=tcp::55432-:5432,smb=/mnt/DATA \
     -cpu host \
     -smp 4,sockets=1,cores=4,maxcpus=4 \
     -device virtio-serial \
     -chardev spicevmc,id=vdagent,name=vdagent \
     -device virtserialport,chardev=vdagent,name=com.redhat.spice.0 \
     -vga qxl \
     -spice port=${SPICE_PORT},disable-ticketing=on \
     "$@" &

exec spicy --title Gentoo-BOSS 127.0.0.1 -p ${SPICE_PORT}