[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Fwd: Re: qemu port (was: Re: [Qemu-devel] Running QEMU on FreeBSD)]
From: |
Juergen Lock |
Subject: |
Re: [Fwd: Re: qemu port (was: Re: [Qemu-devel] Running QEMU on FreeBSD)] |
Date: |
Fri, 4 Jun 2004 20:58:48 +0200 |
On Thu, Jun 03, 2004 at 04:00:42PM +0000, Antony T Curtis wrote:
> On Thu, 2004-06-03 at 00:18, Juergen Lock wrote:
> > On Mon, May 31, 2004 at 09:46:21AM +0000, Antony T Curtis wrote:
> > > ...
> > OK, I've now taken this and the other FreeBSD patches, added a few
> > small ones of my own and made a port, it can be fetched at
> > http://www.freebsd.org/cgi/query-pr.cgi?pr=67506&f=raw
> > (and hopefully will be committed soon.)
Is committed now btw.
> >
> > I've noticed the following things tho:
> >
> > - needs to run as root in order to use /dev/tap* networking (why?)
>
> This is from a access check in the if_tap module. If you look at
> /usr/src/sys/net/if_tap.c, you will notice that there is a check for the
> uid == 0 in the open path. It needs to be commented out.
>
Heh. I wonder why that check was put there in the first place,
since you can as well restrict access by adjusting permissions on
the device node...
> > - slirp (usermode networking) compiles but doesn't seem to work for me
>
> I haven't tried it.
>
Fix (dhcp bug) is in cvs, will update the port later...
> > - seems to have a timer problem (time sleep 1 takes 49 seconds and
> > booting sleeps for minutes at the acd0 probe), but only on _some_ guest
> > systems (FreeSBIE, knoppix.) An installed 5.2.1 guest system works ok
> > (this also doesn't happen with linux as host.) And enabling /dev/rtc
> > doesn't
> > help either... (not included since it needs a patch to emulators/rtc.)
>
> I haven't tried running QEMU on 4.x
>
I've now tried it on 5.2.1 host and the exact same thing happens
there also: works on installed 5.2.1 guest, broken with FreeSBIE 1.0
and knoppix 3.4.
> > - using physical media doesn't work on 4.x hosts (missing DIOCGMEDIASIZE
> > ioctl)
>
> On 4.x you have to use something like...
>
> if (!ioctl(fd, FIOCGDINFO, &disklabel)) {
> int cyls = disklabel.d_ncylinders;
> int heads = disklabel.d_ntracks;
hmm, heads == tracks?
> int sectors = disklabel.d_nsectors;
> disksize_in_sectors = cyls * heads * sectors;
> }
>
And what about devices bigger than 1023*255*63 sectors, or whatever
the limit there was?
Juergen