1 # Buildsheet autogenerated by ravenadm tool -- Do not edit.
8 SDESC[standard]= Fast CPU emulator and virtualizer for x86 platform
9 HOMEPAGE= https://www.qemu.org/
13 SITES[main]= https://download.qemu.org/
14 DISTFILE[1]= qemu-7.2.0.tar.xz:main
16 SPKGS[standard]= complete
22 OPTIONS_AVAILABLE= none
23 OPTIONS_STANDARD= none
25 BUILD_DEPENDS= gnutls:dev:standard
27 python-Sphinx:single:python_used
28 python-sphinx-rtd-theme:single:python_used
29 texi2html:primary:standard
32 BUILDRUN_DEPENDS= cyrus-sasl:primary:standard
33 gnutls:primary:standard
34 libepoxy:primary:standard
35 nettle:primary:standard
36 snappy:primary:standard
39 USES= cpe gmake pkgconfig bison perl:build python:build
40 jpeg png mesa ncurses makeinfo ninja curl fontconfig
42 GNOME_COMPONENTS= gdkpixbuf gtk2 vte
43 SDL_COMPONENTS= sdl2 image2
44 XORG_COMPONENTS= x11 xext
46 LICENSE= GPLv2:primary
47 LICENSE_TERMS= primary:{{WRKSRC}}/LICENSE
48 LICENSE_FILE= GPLv2:{{WRKSRC}}/COPYING
51 FPC_EQUIVALENT= emulators/qemu
54 CONFIGURE_ARGS= --disable-usb-redir
55 --disable-stack-protector
65 --python={{PYTHON_CMD}}
68 BUILD_WRKSRC= {{WRKSRC}}/build
69 MAKE_ENV= BSD_MAKE="{{MAKE}}"
72 INSTALL_WRKSRC= {{WRKSRC}}/build
73 PLIST_SUB= JQUERY=3.6.0
76 CFLAGS= -I{{NCURSESBASE}}/include/ncursesw
77 VAR_OPSYS[freebsd]= CONFIGURE_ARGS=--enable-netmap
78 CONFIGURE_ARGS=--disable-linux-user
79 CONFIGURE_ARGS=--disable-linux-aio
80 VAR_OPSYS[linux]= CONFIGURE_ARGS=--disable-netmap
81 CONFIGURE_ARGS=--disable-linux-user
82 VAR_OPSYS[dragonfly]= CONFIGURE_ARGS=--disable-netmap
83 CONFIGURE_ARGS=--disable-linux-user
84 CONFIGURE_ARGS=--disable-linux-aio
85 VAR_OPSYS[midnightbsd]= CONFIGURE_ARGS=--enable-netmap
86 CONFIGURE_ARGS=--disable-linux-user
87 CONFIGURE_ARGS=--disable-linux-aio
88 CONFIGURE_ARGS=--extra-ldflags=-lutil
91 # silence some include warnings
92 ${MKDIR} ${WRKSRC}/bsd-user/dragonfly
94 ${CP} -a ${WRKSRC}/bsd-user/freebsd ${WRKSRC}/bsd-user/midnightbsd
97 ${INSTALL_SCRIPT} ${FILESDIR}/qemu-ifup.sample \
98 ${STAGEDIR}${PREFIX}/etc
99 ${INSTALL_SCRIPT} ${FILESDIR}/qemu-ifdown.sample \
100 ${STAGEDIR}${PREFIX}/etc
101 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/qemu-*
102 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/elf2dmp
103 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/share/qemu/palcode-clipper
104 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/share/qemu/hppa-firmware.img
105 (cd ${WRKSRC} && ${COPYTREE_SHARE} docs ${STAGEDIR}${STD_DOCDIR}/)
106 # remove sphinx leftovers
107 ${RM} -r ${STAGEDIR}${STD_DOCDIR}/docs/sphinx
108 # remove empty directories
109 ${RM} -r ${STAGEDIR}/var
111 pre-configure-dragonfly:
112 # On dragonfly, userland programs can't include <sys/disk.h>
113 ${REINPLACE_CMD} -e 's|sys/disk\.h|sys/skipdisk.h|' \
114 ${WRKSRC}/meson.build
116 [FILE:782:descriptions/desc.primary]
117 QEMU is a fast processor emulator using dynamic translation to achieve
118 good emulation speed. QEMU has two operating modes:
120 * Full system emulation. In this mode, QEMU emulates a full system (for
121 example a PC), including a processor and various peripherials. It can
122 be used to launch different Operating Systems without rebooting the PC
123 or to debug system code.
124 * User mode emulation (Linux host only). In this mode, QEMU can launch
125 Linux processes compiled for one CPU on another CPU. It can be used to
126 launch the Wine Windows API emulator or to ease cross-compilation and
129 As QEMU requires no host kernel patches to run, it is safe and easy to use.
131 See also the preconfigured system images on http://oszoo.org/
132 Many live cd isos also work.
136 5b49ce2687744dad494ae90a898c52204a3406e84d072482a1e1be854eeb2157 122408576 qemu-7.2.0.tar.xz
139 [FILE:2949:manifests/plist.primary]
140 @sample etc/qemu-ifdown.sample
141 @sample etc/qemu-ifup.sample
150 %%ONLY-LINUX%%libexec/qemu-bridge-helper
151 %%ONLY-MIDNIGHTBSD%%bin/
169 qemu-system-loongarch64
171 qemu-system-microblaze
172 qemu-system-microblazeel
193 include/qemu-plugin.h
194 share/applications/qemu.desktop
195 share/icons/hicolor/128x128/apps/qemu.png
196 share/icons/hicolor/16x16/apps/qemu.png
197 share/icons/hicolor/24x24/apps/qemu.png
198 share/icons/hicolor/256x256/apps/qemu.png
199 share/icons/hicolor/32x32/apps/
202 share/icons/hicolor/48x48/apps/qemu.png
203 share/icons/hicolor/512x512/apps/qemu.png
204 share/icons/hicolor/64x64/apps/qemu.png
205 share/icons/hicolor/scalable/apps/qemu.svg
218 edk2-i386-secure-code.fd
222 edk2-x86_64-secure-code.fd
241 opensbi-riscv32-generic-fw_dynamic.bin
242 opensbi-riscv64-generic-fw_dynamic.bin
245 petalogix-s3adsp1800.dtb
262 u-boot-sam460-20100605.bin
265 vgabios-bochs-display.bin
276 50-edk2-i386-secure.json
277 50-edk2-x86_64-secure.json
319 [FILE:10336:manifests/plist.docs]
328 share/doc/qemu/_static/
332 documentation_options.js
343 share/doc/qemu/_static/css/
346 share/doc/qemu/_static/css/fonts/
347 Roboto-Slab-Bold.woff
348 Roboto-Slab-Bold.woff2
349 Roboto-Slab-Regular.woff
350 Roboto-Slab-Regular.woff2
351 fontawesome-webfont.eot
352 fontawesome-webfont.svg
353 fontawesome-webfont.ttf
354 fontawesome-webfont.woff
355 fontawesome-webfont.woff2
356 lato-bold-italic.woff
357 lato-bold-italic.woff2
360 lato-normal-italic.woff
361 lato-normal-italic.woff2
364 share/doc/qemu/_static/js/
366 html5shiv-printshiv.min.js
369 share/doc/qemu/about/
374 removed-features.html
375 share/doc/qemu/devel/
379 block-coroutine-wrapper.html
384 conflict-resolution.html
385 control-flow-integrity.html
402 multi-thread-tcg.html
410 secure-coding-practices.html
413 submitting-a-patch.html
414 submitting-a-pull-request.html
424 writing-monitor-commands.html
427 block-replication.txt
437 multi-thread-compression.txt
440 pci_expander_bridge.txt
447 qemu-option-trace.rst.inc
454 xen-save-devices-state.txt
455 share/doc/qemu/docs/_templates/footer.html
456 share/doc/qemu/docs/about/
462 share/doc/qemu/docs/config/
464 mach-virt-graphical.cfg
467 q35-virtio-graphical.cfg
468 q35-virtio-serial.cfg
469 share/doc/qemu/docs/devel/
475 block-coroutine-wrapper.rst
477 ci-definitions.rst.inc
483 conflict-resolution.rst
484 control-flow-integrity.rst
503 multiple-iothreads.txt
512 secure-coding-practices.rst
515 submitting-a-patch.rst
516 submitting-a-pull-request.rst
527 writing-monitor-commands.rst
528 share/doc/qemu/docs/interop/
536 live-block-operations.rst
546 qemu-storage-daemon-qmp-ref.rst
553 virtio-balloon-stats.rst
554 vnc-ledstate-Pseudo-encoding.txt
555 share/doc/qemu/docs/specs/
559 acpi_hw_reduced_hotplug.rst
571 ppc-spapr-hotplug.rst
573 ppc-spapr-uv-hcalls.rst
578 sev-guest-firmware.rst
585 share/doc/qemu/docs/sphinx-static/
588 share/doc/qemu/docs/spin/
590 aio_notify_accept.promela
591 aio_notify_bug.promela
592 tcg-exclusive.promela
593 win32-qemu-event.promela
594 share/doc/qemu/docs/system/
598 confidential-guest-support.rst
600 cpu-models-mips.rst.inc
601 cpu-models-x86-abi.csv
602 cpu-models-x86.rst.inc
604 device-url-syntax.rst.inc
620 qemu-block-drivers.rst
621 qemu-block-drivers.rst.inc
630 target-i386-desc.rst.inc
644 virtio-net-failover.rst
646 share/doc/qemu/docs/system/arm/
680 share/doc/qemu/docs/system/devices/
692 share/doc/qemu/docs/system/i386/
693 amd-memory-encryption.rst
700 share/doc/qemu/docs/system/loongarch/loongson3.rst
701 share/doc/qemu/docs/system/openrisc/
706 share/doc/qemu/docs/system/ppc/
713 share/doc/qemu/docs/system/riscv/
714 microchip-icicle-kit.rst
718 share/doc/qemu/docs/system/s390x/
725 share/doc/qemu/docs/tools/
730 qemu-storage-daemon.rst
732 virtfs-proxy-helper.rst
734 share/doc/qemu/docs/user/
737 share/doc/qemu/interop/
744 live-block-operations.html
749 qemu-storage-daemon-qmp-ref.html
753 virtio-balloon-stats.html
754 share/doc/qemu/specs/
755 acpi_cpu_hotplug.html
758 acpi_hw_reduced_hotplug.html
759 acpi_mem_hotplug.html
761 acpi_pci_hotplug.html
764 ppc-spapr-hcalls.html
765 ppc-spapr-hotplug.html
767 ppc-spapr-uv-hcalls.html
770 sev-guest-firmware.html
772 share/doc/qemu/system/
776 confidential-guest-support.html
778 device-emulation.html
792 qemu-block-drivers.html
814 virtio-net-failover.html
816 share/doc/qemu/system/arm/
848 xlnx-versal-virt.html
850 share/doc/qemu/system/devices/
862 share/doc/qemu/system/i386/
863 amd-memory-encryption.html
870 share/doc/qemu/system/loongarch/loongson3.html
871 share/doc/qemu/system/openrisc/
876 share/doc/qemu/system/ppc/
883 share/doc/qemu/system/riscv/
884 microchip-icicle-kit.html
888 share/doc/qemu/system/s390x/
895 share/doc/qemu/tools/
900 qemu-storage-daemon.html
902 virtfs-proxy-helper.html
909 [FILE:333:manifests/plist.nls]
910 share/locale/bg/LC_MESSAGES/qemu.mo
911 share/locale/de_DE/LC_MESSAGES/qemu.mo
912 share/locale/fr_FR/LC_MESSAGES/qemu.mo
913 share/locale/hu/LC_MESSAGES/qemu.mo
914 share/locale/it/LC_MESSAGES/qemu.mo
915 share/locale/sv/LC_MESSAGES/qemu.mo
916 share/locale/tr/LC_MESSAGES/qemu.mo
917 share/locale/uk/LC_MESSAGES/qemu.mo
918 share/locale/zh_CN/LC_MESSAGES/qemu.mo
921 [FILE:416:manifests/plist.man]
924 qemu-storage-daemon.1.gz
927 qemu-block-drivers.7.gz
930 qemu-storage-daemon-qmp-ref.7.gz
934 %%ONLY-FREEBSD%%share/man/man7/qemu-ga-ref.7.gz
935 %%ONLY-FREEBSD%%share/man/man8/qemu-ga.8.gz
936 %%ONLY-LINUX%%share/man/man7/qemu-ga-ref.7.gz
937 %%ONLY-LINUX%%share/man/man8/qemu-ga.8.gz
940 [FILE:414:patches/patch-accel_tcg_translate-all.c]
941 --- accel/tcg/translate-all.c.orig 2022-12-14 16:28:45 UTC
942 +++ accel/tcg/translate-all.c
945 #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
946 #include <sys/param.h>
947 -#if __FreeBSD_version >= 700104
948 +#if defined(__MidnightBSD__) || __FreeBSD_version >= 700104
949 #define HAVE_KINFO_GETVMMAP
950 #define sigqueue sigqueue_freebsd /* avoid redefinition */
951 #include <sys/proc.h>
954 [FILE:546:patches/patch-configure]
955 --- configure.orig 2022-12-14 16:28:45 UTC
957 @@ -430,6 +430,8 @@ elif check_define __sun__ ; then
959 elif check_define __HAIKU__ ; then
961 +elif check_define __MidnightBSD__ ; then
963 elif check_define __FreeBSD__ ; then
965 elif check_define __FreeBSD_kernel__ && check_define __GLIBC__; then
966 @@ -471,6 +473,10 @@ dragonfly)
972 + make="${MAKE-gmake}"
979 [FILE:337:patches/patch-include_qemu_bswap.h]
980 --- include/qemu/bswap.h.orig 2022-12-14 16:28:45 UTC
981 +++ include/qemu/bswap.h
983 #ifdef CONFIG_MACHINE_BSWAP_H
984 # include <sys/endian.h>
985 # include <machine/bswap.h>
986 -#elif defined(__FreeBSD__)
987 +#elif defined(__FreeBSD__) || defined(__DragonFly__)
988 # include <sys/endian.h>
989 #elif defined(__HAIKU__)
993 [FILE:2507:patches/patch-meson.build]
994 --- meson.build.orig 2022-12-14 16:28:45 UTC
996 @@ -46,8 +46,8 @@ config_host_data = configuration_data()
998 qapi_trace_events = []
1000 -bsd_oses = ['gnu/kfreebsd', 'freebsd', 'netbsd', 'openbsd', 'dragonfly', 'darwin']
1001 -supported_oses = ['windows', 'freebsd', 'netbsd', 'openbsd', 'darwin', 'sunos', 'linux']
1002 +bsd_oses = ['midnightbsd', 'freebsd', 'netbsd', 'openbsd', 'dragonfly', 'darwin']
1003 +supported_oses = ['windows', 'freebsd', 'netbsd', 'openbsd', 'darwin', 'sunos', 'linux', 'dragonfly', 'midnightbsd']
1004 supported_cpus = ['ppc', 'ppc64', 's390x', 'riscv', 'x86', 'x86_64',
1005 'arm', 'aarch64', 'loongarch64', 'mips', 'mips64', 'sparc64']
1007 @@ -444,7 +444,7 @@ if get_option('hax').allowed()
1008 accelerators += 'CONFIG_HAX'
1011 -if targetos == 'netbsd'
1012 +if targetos in [ 'netbsd', 'dragonfly' ]
1013 nvmm = cc.find_library('nvmm', required: get_option('nvmm'))
1015 accelerators += 'CONFIG_NVMM'
1016 @@ -887,7 +887,7 @@ if have_system and get_option('curses').
1020 - curses_dep_list = targetos == 'windows' ? ['ncurses', 'ncursesw'] : ['ncursesw']
1021 + curses_dep_list = targetos == 'windows' ? ['ncurses', 'ncursesw'] : ['ncurses']
1022 curses = dependency(curses_dep_list,
1024 method: 'pkg-config',
1025 @@ -910,15 +910,16 @@ if have_system and get_option('curses').
1026 has_curses_h = cc.has_header('curses.h', args: curses_compile_args)
1029 - curses_libname_list = (targetos == 'windows' ? ['pdcurses'] : ['ncursesw', 'cursesw'])
1030 + libtinfo = cc.find_library('tinfo', required: false, static: enable_static)
1031 + curses_libname_list = (targetos == 'windows' ? ['pdcurses'] : ['ncurses'])
1032 foreach curses_libname : curses_libname_list
1033 libcurses = cc.find_library(curses_libname,
1035 kwargs: static_kwargs)
1036 if libcurses.found()
1037 - if cc.links(curses_test, args: curses_compile_args, dependencies: libcurses)
1038 + if cc.links(curses_test, args: curses_compile_args, dependencies: [libncurses,libtinfo])
1039 curses = declare_dependency(compile_args: curses_compile_args,
1040 - dependencies: [libcurses])
1041 + dependencies: [libncurses, libtinfo])
1044 msg = 'curses library not usable'
1047 [FILE:385:patches/patch-meson_mesonbuild_mesonlib_universal.py]
1048 --- meson/mesonbuild/mesonlib/universal.py.orig 2022-12-14 16:29:34 UTC
1049 +++ meson/mesonbuild/mesonlib/universal.py
1050 @@ -658,7 +658,7 @@ def is_netbsd() -> bool:
1053 def is_freebsd() -> bool:
1054 - return platform.system().lower() == 'freebsd'
1055 + return platform.system().lower() in ('freebsd', 'midnightbsd')
1057 def is_irix() -> bool:
1058 return platform.system().startswith('irix')
1061 [FILE:454:patches/patch-net_tap-bsd.c]
1062 --- net/tap-bsd.c.orig 2022-12-14 16:28:45 UTC
1066 #if defined(__NetBSD__) || defined(__FreeBSD__)
1067 #include <sys/ioctl.h>
1068 +#include <sys/socket.h>
1070 #include <net/if_tap.h>
1072 +#if defined(__DragonFly)
1073 +#include <sys/ioctl.h>
1074 +#include <sys/socket.h>
1075 +#include <net/if.h>
1076 +#include <net/tap/if_tap.h>
1080 int tap_open(char *ifname, int ifname_size, int *vnet_hdr,
1083 [FILE:344:patches/patch-util_getauxval.c]
1084 --- util/getauxval.c.orig 2022-12-14 16:28:44 UTC
1085 +++ util/getauxval.c
1086 @@ -98,7 +98,7 @@ unsigned long qemu_getauxval(unsigned lo
1090 -#elif defined(__FreeBSD__)
1091 +#elif defined(__MidnightBSD__) || (defined(__FreeBSD__) && __FreeBSD_version__ > 1200001)
1092 #include <sys/auxv.h>
1094 unsigned long qemu_getauxval(unsigned long type)
1097 [FILE:7685:files/pkg-message-single]
1101 - Needs to set net.link.tap.user_open sysctl in order to use /dev/tap*
1102 networking as non-root. Don't forget to adjust device node permissions in
1105 - slirp (usermode networking) is fixed now in cvs, on FreeSBIE 1.0 guests you
1106 still have to manually do: echo nameserver 10.0.2.3 >/etc/resolv.conf but
1107 i've been told that that's normal. (fixed on FreeSBIE 1.1.) And you have
1108 to wait a bit for dhclient to do its thing; traffic to address 10.0.2.2 is
1109 routed to 127.1 on the host.
1111 - Expect timer problems when guest kernel HZ is > hosts, for example time
1112 sleep 1 takes 49 seconds and booting sleeps for minutes at the acd0 probe
1113 with a FreeSBIE 1.0 guest, thats because its kernel is built with HZ=5000,
1114 and FreeBSD's default is 100... (no longer a problem with FreeSBIE 1.1.)
1115 The linux 2.6 kernel uses 1000 by default btw. (changed to 250 later, and
1116 recent linux kernels now no longer have a fixed HZ, aka `tickless
1117 kernel'...) Enabling /dev/rtc doesn't seem to help either (not included
1118 since it needs a patch to emulators/rtc.)
1120 - Update: the above problem has gotten worse with FreeBSD guests
1121 somewhere before 8.0, mainly since the kernel now usually wants
1122 double or even quadruple number of timer irqs compared to HZ if
1123 it detects an apic (and at least early versions of FreeBSD 8 had
1124 a bug that essentially halved qemu's clock rate too); the only
1125 reason you usually don't see symptoms of this with FreeBSD 8
1126 guests is they automatically reduce their HZ to 100 when running
1127 in a VM while the default for the host kernel is still HZ=1000.
1128 Workaround: you can disable the apic clock in the guest by setting
1130 hint.apic.0.clock="0"
1132 in loader.conf(5) (or manually at the loader prompt), if that
1133 doesn't work the only things you can do is either reduce the
1134 guest's HZ to, say, 100 by setting e.g.
1138 from the loader as above (which usually is a good idea in a VM
1139 anyway and FreeBSD 8 now does by itself as mentioned), or otherwise
1140 increase the host's HZ to 2000 or even 4000 from the loader in
1143 - The -smb option (smb-export local dir to guest using the default
1144 slirp networking) needs the samba port/package installed
1145 in addition to qemu. (SAMBA knob.)
1147 - If you want to use usb devices connected to the host in the guest
1148 yot need either recent 10-current (not tested yet much) or you can
1149 use usbredir over the network (see below); also unless you are
1150 running qemu as root you then need to fix permissions for /dev/ugen*
1151 device nodes: if you are on 5.x or later (devfs) put a rule in
1152 /etc/devfs.rules, activate it in /etc/rc.conf and run /etc/rc.d/devfs
1153 restart. Example devfs.rules:
1156 add path 'ugen*' mode 660 group operator
1158 corresponding rc.conf line:
1160 devfs_system_ruleset="ugen_ruleset"
1162 - If you want to test the new (in 0.15.0) usb network redirection (USBREDIR
1163 option) see this thread by Hans de Goede <hdegoede <at> redhat.com>:
1165 http://thread.gmane.org/gmane.comp.emulators.qemu/110176/focus=110183
1171 1) Start usbredirserver for a usb device:
1172 sudo usbredirserver 045e:0772
1173 2) Start qemu with usb2 support + a chardev talking to usbredirserver +
1174 a usb-redir device using this chardev:
1176 -readconfig docs/ich9-ehci-uhci.cfg \
1177 -chardev socket,id=usbredirchardev,host=localhost,port=4000 \
1178 -device usb-redir,chardev=usbredirchardev,id=usbredirdev ...
1180 [you would replace docs/ich9-ehci-uhci.cfg with e.g.
1181 /raven/share/doc/qemu/docs/ich9-ehci-uhci.cfg, but turns out
1182 ehci was broken for me here with FreeBSD guests and the previous
1183 qemu version at least, I got:
1185 FETCHENTRY: entry at 22C5484 is of type 2 which is not supported yet processing error - resetting ehci HC
1186 Assertion failed: (0), function ehci_advance_state, file /data/ports/emulators/qemu-devel/work/qemu-0.15.0/hw/usb-ehci.c, line 2045.
1188 The new qemu version works better tho.]
1190 - Still usb: since the hub is no longer attached to the uchi controller and
1191 the wakeup mechanism, resume interrupt is not implemented yet linux guests
1192 will suspend the bus, i.e. they wont see devices usb_add'ed after its
1193 (linux') uhci module got loaded. Workaround: either add devices before
1194 linux loads the module or rmmod and modprobe it afterwards. [Not sure
1195 if this still applies to the new libusb host code used on recent
1198 - If you build qemu wihout SDL and then get crashes running it try passing it
1199 -nographic. This should probably be default in that case...
1201 - qemu's network boot roms (-boot n) have a bug when bootfiles sizes are a
1202 multiple of blksize, if this affects you (like with FreeBSD's /boot/pxeboot)
1205 cp /boot/pxeboot pxeboot-qemu && chmod +w pxeboot-qemu && echo >>pxeboot-qemu
1207 and then use pxeboot-qemu. Actually you need recent btx code
1208 (from after 7.0 was released) because of the real mode boot
1209 problem, so use at least pxeboot from there. And I just did that
1210 for the pxeboot extracted out of
1212 ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/200805/7.0-STABLE-200805-i386-bootonly.iso
1216 http://people.freebsd.org/~nox/qemu/pxeboot-qemu
1218 - If you use slirp (usernet, the default) and want to mount nfs into the guest
1219 and you are not running qemu as root, then mountd(8) on the exporting box
1220 needs to be run with -n in order to accept requests from ports >= 1024.
1222 - (not FreeBSD-specific:) There have been reports of qcow2 corruption with (at
1223 least) win2k guests on recent kvm (which uses similar qcow2 code than qemu
1224 now, see this thread:
1226 http://lists.gnu.org/archive/html/qemu-devel/2009-02/msg00713.html -
1228 the consensus on that thread seems to be that qcow(2) code has always been
1229 experimental and you should use raw images if you want reliability; raw is
1230 also usually faster.) You should be able to migrate existing images to raw
1231 using qemu-img(1)'s convert function; raw doesn't support advanced features
1232 like snapshots tho. [a few important qcow2 bugfixed have been committed in
1233 the meantime so this _might_ be less of an issue now; and meanwhile there
1234 also is the new qed format - I don't know how stable that one is.]
1236 - (also not FreeBSD-specific:) It is recommended to pass raw images using the
1237 new -drive syntax, specifying format=raw explicitly in order to avoid
1238 malicious guests being able to exploit the format autodetection thats
1239 otherwise getting used. (Not that you should run malicious guests anyway,
1240 but this eleminates at least a known attack vector.)
1242 - qemu now has improved physical cdrom support, but still there is at
1243 least one known problem: you need to have the guest eject the disc if you
1244 want to change it/take it out, or otherwise the guest may continue using
1245 state (like size) of the old disc. (You can also do like `change ide1-cd0
1246 /dev/acd0' in the monitor after taking out the disc if a guest cannot eject
1249 - The default configuration location (qemu-ifup script etc.) has been changed
1250 from /etc to PREFIX/etc (usually /raven/etc). Move your files accordingly.
1252 - The pcap code (-net nic... -net pcap,ifname=...) should work properly now,
1253 with only one exception: Advanced features like TSO used on the host
1254 interface can cause oversize packets which now do get truncated to avoid
1255 confusing/panicing guests but of course still will cause retransmissions.
1256 So if you see slow throughput and `pcap_send: packet size > ..., truncating'
1257 messages on qemu's tty try disabling TSO etc on the host interface at least
1261 [FILE:20:files/qemu-ifdown.sample]
1266 [FILE:20:files/qemu-ifup.sample]
1271 [FILE:323:dragonfly/patch-hw-ppc_newworld.c]
1272 --- hw/ppc/mac_newworld.c.orig 2022-12-14 16:28:45 UTC
1273 +++ hw/ppc/mac_newworld.c
1275 #include "hw/sysbus.h"
1278 +/* FreeBSD headers define this */
1283 #define MAX_IDE_BUS 2
1284 #define CFG_ADDR 0xf0000510
1285 #define TBFREQ (100UL * 1000UL * 1000UL)
1288 [FILE:334:dragonfly/patch-hw_ppc_mac__oldworld.c]
1289 --- hw/ppc/mac_oldworld.c.orig 2022-12-14 16:28:45 UTC
1290 +++ hw/ppc/mac_oldworld.c
1293 #define GRACKLE_BASE 0xfec00000
1295 +/* FreeBSD headers define this */
1300 static void fw_cfg_boot_set(void *opaque, const char *boot_device,
1305 [FILE:906:dragonfly/patch-util_coroutine-ucontext.c]
1306 --- util/coroutine-ucontext.c.orig 2022-12-14 16:28:45 UTC
1307 +++ util/coroutine-ucontext.c
1308 @@ -225,7 +225,15 @@ Coroutine *qemu_coroutine_new(void)
1309 2, arg.i[0], arg.i[1]);
1311 /* swapcontext() in, siglongjmp() back out */
1312 - if (!sigsetjmp(old_env, 0)) {
1313 + /* Save signal mask in this sigsetjmp, because makecontext on DragonFly
1314 + * leaves all signals blocked when entering the new context with
1316 + * Workaround this, by just having the signal mask restored by the
1317 + * siglongjmp that brings us back from qemu_coroutine_new().
1318 + * XXX Remove this workaround when the makecontext behaviour is fixed
1321 + if (!sigsetjmp(old_env, 1)) {
1322 start_switch_fiber_asan(COROUTINE_YIELD, &fake_stack_save, co->stack,
1324 start_switch_fiber_tsan(&fake_stack_save,