1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
====
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.)
- 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.
- 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...
====
|