FreeBSD als Qemu-Gast?

Alexco

Well-Known Member
Hallo zusammen,

ich bastel hier auf meinem Apple-M1 Mac mit Qemu rum, besser gesagt mit der App UTM, die darauf basiert.
Nachdem eine ARM VM mit Debian inkl. X11 läuft, wollte ich auch mal FreeBSD laufen lassen. Aktuell bekomme ich nur eine Console zum laufen, keine Graphik. Und es scheint keinen Spice-Gast für Sharing, Clipboard usw. zu geben.
Hat das schon mal jemand versucht?

Aktuell verwende ich folgende Optionen bei Qemu:
Code:
qemu-system-aarch64 -L /Applications/UTM.app/Contents/Resources/qemu -S -qmp tcp:127.0.0.1:4444,server,nowait
-nodefaults
-vga none
-nographic
-chardev "pipe,id=term0,path=/Users/alexc/Library/Group Containers/WDNLXAD4W8.com.utmapp.UTM/8169C503-2646-4317-BE65-7F931B70884F.terminal"
-serial chardev:term0
-cpu cortex-a72 -smp cpus=8,sockets=1,cores=8,threads=1
-machine virt,highmem=off -accel hvf -accel tcg,tb-size=256
-drive if=pflash,format=raw,unit=0,file=/Applications/UTM.app/Contents/Resources/qemu/edk2-aarch64-code.fd,readonly=on
-drive if=pflash,format=raw,unit=1,file=/Users/alexc/Library/Containers/com.utmapp.UTM/Data/Documents/FreeBSD.utm/Images/efi_vars.fd
-boot menu=on -m 1024 -device intel-hda -device hda-duplex -name FreeBSD -device qemu-xhci,id=usb-bus
-device usb-tablet,bus=usb-bus.0 -device usb-mouse,bus=usb-bus.0 -device usb-kbd,bus=usb-bus.0
-device qemu-xhci,id=usb-controller-0 -chardev spicevmc,name=usbredir,id=usbredirchardev0
-device usb-redir,chardev=usbredirchardev0,id=usbredirdev0,bus=usb-controller-0.0
-chardev spicevmc,name=usbredir,id=usbredirchardev1
-device usb-redir,chardev=usbredirchardev1,id=usbredirdev1,bus=usb-controller-0.0
-chardev spicevmc,name=usbredir,id=usbredirchardev2
-device usb-redir,chardev=usbredirchardev2,id=usbredirdev2,bus=usb-controller-0.0
-device virtio-blk-pci,drive=drive0,bootindex=0
-drive if=none,media=disk,id=drive0,file=/Users/alexc/Library/Containers/com.utmapp.UTM/Data/Documents/FreeBSD.utm/Images/freebsd.qcow2,cache=writethrough
-device usb-storage,drive=drive1,removable=true,bootindex=1,bus=usb-bus.0
-drive if=none,media=cdrom,id=drive1
-device virtio-net-pci,mac=C6:58:A1:7F:99:78,netdev=net0 -netdev vmnet-macos,mode=shared,id=net0 -uuid 8169C503-2646-4317-BE65-7F931B70884F
-rtc base=localtime
 
Mir faellt auf den ersten Blick die Option -nographic auf. Ohne jetzt nachzuschauen was diese Option im Detail bewirkt, hast Du es mal ohne versucht?
 
Ja, wenn ich -nographic wegnehme, bleibt der Bildschirm dunkel, egal was ich als Grafikkarte einstelle.
 
Ja, wenn ich -nographic wegnehme, bleibt der Bildschirm dunkel, egal was ich als Grafikkarte einstelle.
Eventuell weil FreeBSD die serielle Konsole bevorzugt, wenn eine vorhanden ist. Da skann man Loader Prompt und dauerhaft in der loader.conf umstellen: set boot_serial=NO
 
Hilft leider nicht. Wenn ich qemu mit Grafik starte, dann kommt nach dem ARM EFI Screen noch nicht mal mehr der Loader Prompt. Und da ist es egal, ob set boot_serial=NO gesetzt ist oder nicht
 
Hat es einen Grund, dass du da einen AARCH64 simulierst? Warum nicht das "normale" x86 system? Da werden die notwendigen Parameter auch gleuch weniger! ;)

Und ansonsten: statt -nographic gibt es auch ein -vnc :1
 
Na ja, ich dachte auf einer ARM Kiste nehme ich einfach ARM, dann muss ich nicht noch die Architektur mit emulieren...
Und ich nehme ein Fronend unter macOS (UTM), da ist mir die Anzahl der Parameter egal :-)

Aber hiermit geht es (und ja, es sind mehr geworden):
Code:
qemu-system-aarch64 -L /Applications/UTM.app/Contents/Resources/qemu -S -qmp tcp:127.0.0.1:4444,server,nowait
-nodefaults -vga none
-spice "unix=on,addr=/Users/alexc/Library/Group Containers/WDNLXAD4W8.com.utmapp.UTM/892EBF8C-7F6D-47D3-A90D-5A3964C97F11.spice,disable-ticketing=on,image-compression=off,playback-compression=off,streaming-video=off,gl=off"
-device virtio-ramfb
-device virtio-rng-pci
-cpu host -smp cpus=4,sockets=1,cores=4,threads=1
-machine virt,highmem=off -accel hvf -accel tcg,tb-size=256
-drive if=pflash,format=raw,unit=0,file=/Applications/UTM.app/Contents/Resources/qemu/edk2-aarch64-code.fd,readonly=on
-drive if=pflash,format=raw,unit=1,file=/Users/alexc/Library/Containers/com.utmapp.UTM/Data/Documents/FreeBSD.utm/Images/efi_vars.fd
-boot menu=on -m 1024 -device intel-hda
-device hda-duplex -name FreeBSD
-device nec-usb-xhci,id=usb-bus
-device usb-tablet,bus=usb-bus.0
-device usb-mouse,bus=usb-bus.0
-device usb-kbd,bus=usb-bus.0
-device ich9-usb-ehci1,id=usb-controller-0
-device ich9-usb-uhci1,masterbus=usb-controller-0.0,firstport=0,multifunction=on
-device ich9-usb-uhci2,masterbus=usb-controller-0.0,firstport=2,multifunction=on
-device ich9-usb-uhci3,masterbus=usb-controller-0.0,firstport=4,multifunction=on
-chardev spicevmc,name=usbredir,id=usbredirchardev0
-device usb-redir,chardev=usbredirchardev0,id=usbredirdev0,bus=usb-controller-0.0
-chardev spicevmc,name=usbredir,id=usbredirchardev1
-device usb-redir,chardev=usbredirchardev1,id=usbredirdev1,bus=usb-controller-0.0
-chardev spicevmc,name=usbredir,id=usbredirchardev2
-device usb-redir,chardev=usbredirchardev2,id=usbredirdev2,bus=usb-controller-0.0
-device usb-storage,drive=cdrom0,removable=true,bootindex=0,bus=usb-bus.0
-drive if=none,media=cdrom,id=cdrom0
-device virtio-blk-pci,drive=drive0,bootindex=1
-drive if=none,media=disk,id=drive0,file=/Users/alexc/Library/Containers/com.utmapp.UTM/Data/Documents/FreeBSD.utm/Images/data.qcow2,cache=writethrough
-device virtio-net-pci,mac=22:DE:A6:73:32:C9,netdev=net0
-netdev vmnet-macos,mode=shared,id=net0
-device virtio-serial
-device virtserialport,chardev=vdagent,name=com.redhat.spice.0
-chardev spicevmc,id=vdagent,debug=0,name=vdagent
-device virtserialport,chardev=charchannel1,id=channel1,name=org.spice-space.webdav.0
-chardev spiceport,name=org.spice-space.webdav.0,id=charchannel1
-uuid 892EBF8C-7F6D-47D3-A90D-5A3964C97F11
-rtc base=localtime
 
Ich habe FreeBSD gestern mal auf einem Apple M1 mit UTM getestet und hierzu einfach eine neue VM erstellt und FreeBSD installiert. Danach lief auch die Grafik direkt ohne sonstige Anpassungen. Leider bekomme ich die Aufloesung per xrandr nicht hoeher als 800x600. Hast Du da eine Loesung gefunden?
 
Nein, leider nicht.
Liegt wohl an der verwendeten VGA Emulation. Bei mir funktioniert für FreeBSD nur virtio-ram-fb, unter Linux geht aber auch virtio-gpu-pci, und da werden dann alle (un-)möglichen Auflösungen angezeigt.
Ich glaube, FreeBSD hat keine passende virtio-gpu Unterstützung.
 
Zurück
Oben