Date: Tue, 24 Apr 2007 14:22:31 +0300 From: Kostik Belousov <kostikbel@gmail.com> To: Bakul Shah <bakul@bitblocks.com> Cc: freebsd-emulation@freebsd.org Subject: Re: experimental qemu-devel port update, please test! Message-ID: <20070424112231.GC2441@deviant.kiev.zoral.com.ua> In-Reply-To: <20070423192309.E77F65B3B@mail.bitblocks.com> References: <462ADE46.3080304@freebsd.org> <20070423192309.E77F65B3B@mail.bitblocks.com>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
On Mon, Apr 23, 2007 at 12:23:09PM -0700, Bakul Shah wrote:
> > >> I found and fixed one bug in src/core/osloader.c (in
> > >> etherboot-5.4.3 code) which allows me to get a little bit
> > >> further. If anyone wants to play with this more, I can send
> > >> them my changes.
> > >
> > > You may want to post those on the qemu list...
> >
> > On this list too, since I'm not subscribed to the qemu list (nor are
> > many people on this list I'm guessing).
>
> The change I am talking about is in etherboot-5.4.3 code, not
> in qemu. I tried upgrading ports/net/etherboot 5.4.3 but my
> effort is not in a usable state right now.
>
> Download etherboot-5.4.3.tar.bz2, untar it, cd to its top dir
> and apply the following patch -- this is the only critical
> change. And I borrowed other changes from the current
> net/etherboot port.
>
> If you can compile rtl8139.zrom fine, run qemu with
> an explicit -option-rom argument and make sure you use
> model=rtl8139.
>
> it will use dhcp to get an address, load freebsd's
> pxeboot and jump to it at which point everything halts.
>
> May be etherboot does too much. Since freebsd does pxeboot
> on a real machine, ideally the exact same pxeboot should work
> with etherboot.
>
> --- src/core/osloader.c.orig Sat Feb 24 06:44:59 2007
> +++ src/core/osloader.c Sat Apr 21 21:50:37 2007
> @@ -344,6 +344,8 @@
> }
> #endif /* defined(ELF_IMAGE) && defined(IMAGE_MULTIBOOT) */
>
> + if (!len) goto done;
> +
> /* Either len is greater or the skip is greater */
> if ((skip_sectors > (len >> 9)) ||
> ((skip_sectors == (len >> 9)) && (skip_bytes >= (len & 0x1ff)))) {
> @@ -355,6 +357,7 @@
> skip_bytes -= len;
> }
> else {
> + done:
> len -= (skip_sectors << 9) + skip_bytes;
> data += (skip_sectors << 9) + skip_bytes;
> skip_sectors = os_download(data, len, eof);
You may try the following patch for btx:
http://people.freebsd.org/~kib/realbtx/realbtx.2.patch
or take the pxeboot built from the patched source at
http://people.freebsd.org/~kib/realbtx/pxeboot
Please, handle the patch with care - do not install /boot/boot2 or
/boot/loader built with patch on the machine without ability to boot
from removable media, since the changes are in earliest stage and were not
tested exhaustive.
[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (FreeBSD)
iD8DBQFGLeh2C3+MBN1Mb4gRAth3AKCra4lq/GOQVH+gU4A4OLGKS7V9rwCgzNsv
PKQWfHxSdVxJHAogtu8l2vo=
=anrd
-----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070424112231.GC2441>
