==== 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.) - 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... - physical device access (real cdrom/dvd instead of iso) seems to cause problems with some guests now. If this happens to you you can make an iso of the disc by doing something like dd bs=2k cd.iso and then use qemu -cdrom cd.iso ... instead of giving it the physical device. (This might also speed up the guest somewhat.) - qemu now uses aio at least for ide dma, so if you get `Bad system call' crashes that is because aio is not (kld)loaded. ====