==== FreeBSD host notes: - needs to run as root in order to use /dev/tap* networking (why?) (actually RELENG_6 and above now has a sysctl net.link.tap.user_open to allow users to use it too. don't forget to adjust device node permissions in /etc/devfs.rules.) - slirp (usermode networking) is fixed now in cvs, on FreeSBIE 1.0 guests you still have to manually do: echo nameserver 10.0.2.3 >/etc/resolv.conf but i've been told that that's normal. (fixed on FreeSBIE 1.1.) and you have to wait a bit for dhclient to do its thing; traffic to address 10.0.2.2 is routed to 127.1 on the host. - expect timer problems when guest kernel HZ is > hosts, for example time sleep 1 takes 49 seconds and booting sleeps for minutes at the acd0 probe with a FreeSBIE 1.0 guest, thats because its kernel is built with HZ=5000, and FreeBSD's default is 100... (no longer a problem with FreeSBIE 1.1.) The linux 2.6 kernel uses 1000 by default btw (changed to 250 recently). Enabling /dev/rtc doesn't seem to help either (not included since it needs a patch to emulators/rtc.) - using physical media doesn't work on 4.x hosts (missing DIOCGMEDIASIZE ioctl.) - the -smb option (smb-export local dir to guest) needs the net/samba3 port/package installed in addition to qemu. - RELENG_6 and up guests often crash while accessing the emulated cdrom (see kern/84102, http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/84102), using a kernel without PREEMPTION has been reported to fix this problem. (or do an ftp install instead of installing from the emulated cdrom, and then make a new kernel.) [fixed since 6.0-R.] - 6.0-RC1 was released with an ed driver that doesn't like qemu's emulated RTL8029 nic, this has been fixed in the meantime but if for some reason you need to use that version as a guest you can temporarily add the patch in this message: http://docs.freebsd.org/cgi/mid.cgi?200510131428.21211.jkim (not included in the port since the used VIA VT86C926 PCI ID does not really match the emulated nic exactly, it just `happens' to work with 6.0-RC1's driver.) - if you want to use usb devices connected to the host in the guest (usb_add host:... monitor command) you need to make sure the host isn't claiming them, e.g. for umass devices (like memory sticks or external harddrives) make sure umass isn't in the kernel (you can then still load it as a kld when needed), also unless you are running qemu as root you then need to fix permissions for /dev/ugen* device nodes: if you are on 5.x or later (devfs) put a rule in /etc/devfs.rules, activate it in /etc/rc.conf and run /etc/rc.d/devfs restart. example devfs.rules: [ugen_ruleset=20] add path 'ugen*' mode 660 group operator corresponding rc.conf line: devfs_system_ruleset="ugen_ruleset" - still usb: since the hub is no longer attached to the uchi controller and the wakeup mechanism, resume interrupt is not implemented yet linux guests will suspend the bus, i.e. they wont see devices usb_add'ed after its (linux') uhci module got loaded. workaround: either add devices before linux loads the module or rmmod and modprobe it afterwards. - to avoid panics or non-working re(4) nics with FreeBSD guests if you use qemu -net nic,model=rtl8139 -net user or tap ... enable the emulated rtl8139 timer by building the port with RTL8139_TIMER enabled. (the rtl8139c+ that model=rtl8139 emulates needs less cpu than qemu's default ne2k nic which is driven by ed(4), it has not been made default only because it may not work with all guests yet. btw qemu now also can emulate a few intel eepro100 nics which seem to be a tad more efficient even, and at least i82557b works without tweaks for FreeBSD guests - driven by fxp(4) - and Linux guests too.) - if you get repeated `atapi_poll called!' console messages with FreeBSD guests or other weird cdrom problems then thats probably because the guest has atapicam loaded, which for reasons still to be determined has problems with qemu's now by default enabled cdrom dma. You can build the port with CDROM_DMA disabled to disable it. - if you build qemu wihout SDL and then get crashes running it try passing it -nographic. This should probably be default in that case... - slirp (-net user) seems to be unstable on amd64 hosts, if this affects you please use tuntap for now. Scott Robbins posted a tap howto for -current here: http://forums.bsdnexus.com/viewtopic.php?id=1563 and one for 6 and 5(?) is here: http://acidos.bandwidth-junkies.net/index.php?Sect=qemu - perhaps it should be noted that if you want to use qemu with -m 512 or larger on i386 hosts you need to increase the kern.maxdsiz tunable in loader.conf(5) since the default is 512 MB, and qemu needs memory for itself also. - kqemu seems to be broken on amd64 SMP hosts atm (causing the host to panic), if this affects you you can either use an UP host kernel as a workaround or disable kqemu. - qemu now uses aio at least for ide dma, so if you get `Invalid system call' crashes that is because aio is not (kld)loaded. - The default configuration location (qemu-ifup script etc.) has been changed from /etc to PREFIX/etc (usually /usr/local/etc). Move your files accordingly. ====