experimental qemu update,
please test! (was: [FIX] QEMU and ACPI)
Juergen Lock
nox at jelal.kn-bremen.de
Fri Feb 2 00:46:06 UTC 2007
On Thu, Feb 01, 2007 at 07:11:23PM -0500, Jung-uk Kim wrote:
> On Thursday 01 February 2007 06:17 pm, Juergen Lock wrote:
> > On Thu, Feb 01, 2007 at 03:02:53PM -0500, Jung-uk Kim wrote:
> > > You may have noticed recent QEMU does not boot FreeBSD/amd64 SMP
> > > guest on FreeBSD/amd64 -CURRENT host (i.e., you may have seen
> > > 'invalid RSDT checksum' error while booting). That is because
> > > the QEMU BIOS (which is actually Bochs BIOS with little
> > > modification) has a little bug in it. If you experience the
> > > issue, grab a file from here:
> > >
> > > http://people.freebsd.org/~jkim/qemu-bios.bin
> > >
> > > and replace /usr/local/share/qemu/bios.bin with it. The QEMU
> > > patch against Bochs BIOS is here:
> > >
> > > http://people.freebsd.org/~jkim/qemu-bios.diff
> > >
> > > Basically it wasn't clearing RSDT before checksum calculation.
> > > ;-)
> >
> > Ok I have prepared a qemu port update that includes this, please
> > test before I commit it:
>
> I am very sorry to tell you this but I just found out that I uploaded
> wrong BIOS image (i.e., Bochs BIOS instead of QEMU BIOS, which does
> not include the ACPI fix). :-( I uploaded correct one. Please
> update your patch with correct distinfo. My apologies...
Ok patch again with updated distinfo:
Removed files: files/patch-slirp-udp.c files/patch-vl.h files/patch-sdl.c
News files: files/patch-x_keymap.c
Index: Makefile
===================================================================
RCS file: /home/pcvs/ports/emulators/qemu/Makefile,v
retrieving revision 1.67
diff -u -r1.67 Makefile
--- Makefile 31 Jan 2007 23:20:53 -0000 1.67
+++ Makefile 1 Feb 2007 22:16:35 -0000
@@ -6,17 +6,18 @@
#
PORTNAME= qemu
-PORTVERSION= 0.8.2s.20070111
-PORTREVISION= 1
+PORTVERSION= 0.8.2s.20070201
CATEGORIES= emulators
MASTER_SITES= http://www.qemu.org/:release \
http://qemu-forum.ipi.fi/qemu-snapshots/:snapshot \
http://people.fruitsalad.org/nox/qemu/:snapshot \
http://www.volny.cz/xnavara/qemu/:snapshot \
http://people.brandeis.edu/~jcoiner/qemu_idedma/:idedma \
- http://people.freebsd.org/~maho/qemu/:misc
-DISTNAME= ${PORTNAME}-snapshot-2007-01-11_05
-DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:snapshot
+ http://people.freebsd.org/~maho/qemu/:misc \
+ http://people.freebsd.org/~jkim/:bios
+DISTNAME= ${PORTNAME}-snapshot-2007-02-01_05
+DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:snapshot \
+ qemu-bios.bin:bios
DIST_SUBDIR= qemu
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
@@ -81,6 +82,7 @@
@${MKDIR} ${WRKSRC}/kqemu
@${TOUCH} ${WRKSRC}/kqemu/Makefile
@${ECHO} all: > ${WRKSRC}/kqemu/Makefile.freebsd
+ @${CP} -p ${_DISTDIR}/qemu-bios.bin ${WRKSRC}/pc-bios/bios.bin
pre-patch:
@for A in ${ONLY_FOR_ARCHS}; do \
Index: distinfo
===================================================================
RCS file: /home/pcvs/ports/emulators/qemu/distinfo,v
retrieving revision 1.39
diff -u -r1.39 distinfo
--- distinfo 12 Jan 2007 00:13:58 -0000 1.39
+++ distinfo 2 Feb 2007 00:39:49 -0000
@@ -1,6 +1,9 @@
-MD5 (qemu/qemu-snapshot-2007-01-11_05.tar.bz2) = 6b183198ea932853664edbff595579c7
-SHA256 (qemu/qemu-snapshot-2007-01-11_05.tar.bz2) = 4020ae33a58fba1a205c77a70fce21ba8e1843adcb8bedcabfbc7f84c53b35a1
-SIZE (qemu/qemu-snapshot-2007-01-11_05.tar.bz2) = 1576375
+MD5 (qemu/qemu-snapshot-2007-02-01_05.tar.bz2) = 89d97d0a6a87fb4a5a572c5b511fbac0
+SHA256 (qemu/qemu-snapshot-2007-02-01_05.tar.bz2) = dc5d20e99da3537c11bf86e291c1ca709172955e3c77bed1539978bd0ba7ec3f
+SIZE (qemu/qemu-snapshot-2007-02-01_05.tar.bz2) = 1632792
+MD5 (qemu/qemu-bios.bin) = 173e256f17b4ac1f6e3249c83071e8f5
+SHA256 (qemu/qemu-bios.bin) = 452d863ec8ac9e2246950ac204410e847cdeba880d7bec2aeb79c4f2fbb0ad17
+SIZE (qemu/qemu-bios.bin) = 131072
MD5 (qemu/patch3_cirrus) = ebe7ed9fce804c49e024bc93bfdfc810
SHA256 (qemu/patch3_cirrus) = e862371834b7d895a896fbdb84fd9f70d17b5729a6f6789a48a61504fc941e11
SIZE (qemu/patch3_cirrus) = 8817
Index: files/patch-bsdusb.patch
===================================================================
RCS file: /home/pcvs/ports/emulators/qemu/files/patch-bsdusb.patch,v
retrieving revision 1.6
diff -u -r1.6 patch-bsdusb.patch
--- files/patch-bsdusb.patch 17 Dec 2006 00:22:36 -0000 1.6
+++ files/patch-bsdusb.patch 1 Feb 2007 20:38:44 -0000
@@ -1,13 +1,13 @@
Index: qemu/configure
-@@ -134,6 +134,7 @@
+@@ -139,6 +139,7 @@
oss="yes"
linux="yes"
- user="yes"
+ linux_user="yes"
+usb="linux"
if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
kqemu="yes"
fi
-@@ -143,6 +144,7 @@
+@@ -148,6 +149,7 @@
if [ "$bsd" = "yes" ] ; then
if [ "$darwin" != "yes" ] ; then
make="gmake"
@@ -15,7 +15,7 @@
fi
fi
-@@ -724,6 +726,19 @@
+@@ -786,6 +788,19 @@
fi
echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
Index: files/patch-osdep.c
===================================================================
RCS file: /home/pcvs/ports/emulators/qemu/files/patch-osdep.c,v
retrieving revision 1.1
diff -u -r1.1 patch-osdep.c
--- files/patch-osdep.c 5 May 2005 12:41:10 -0000 1.1
+++ files/patch-osdep.c 1 Feb 2007 21:10:45 -0000
@@ -1,7 +1,7 @@
Index: qemu/osdep.c
-@@ -323,7 +323,9 @@
+@@ -79,7 +79,9 @@
- #elif defined(USE_KQEMU)
+ #if defined(USE_KQEMU)
+#ifndef __FreeBSD__
#include <sys/vfs.h>
@@ -9,15 +9,15 @@
#include <sys/mman.h>
#include <fcntl.h>
-@@ -334,6 +336,7 @@
+@@ -90,6 +92,7 @@
const char *tmpdir;
char phys_ram_file[1024];
void *ptr;
+#ifndef __FreeBSD__
- struct statfs stfs;
-
- if (phys_ram_fd < 0) {
-@@ -389,12 +392,20 @@
+ #ifdef HOST_SOLARIS
+ struct statvfs stfs;
+ #else
+@@ -151,12 +154,20 @@
}
unlink(phys_ram_file);
}
Index: files/patch-sdl.c
===================================================================
RCS file: /home/pcvs/ports/emulators/qemu/files/patch-sdl.c,v
retrieving revision 1.5
diff -u -r1.5 patch-sdl.c
--- files/patch-sdl.c 26 Dec 2006 22:41:13 -0000 1.5
+++ files/patch-sdl.c 1 Feb 2007 21:54:07 -0000
@@ -1,14 +0,0 @@
-Index: qemu/sdl.c
-@@ -115,9 +115,9 @@
- 0xb5, /* 112 Divide */
- 0xb8, /* 113 Alt-R */
- 0xc6, /* 114 Break */
-- 0x0, /* 115 */
-- 0x0, /* 116 */
-- 0x0, /* 117 */
-+ 0xdb, /* 115 windows left button */
-+ 0xdc, /* 116 windows right button */
-+ 0xdd, /* 117 right menu button */
- 0x0, /* 118 */
- 0x0, /* 119 */
- 0x70, /* 120 Hiragana_Katakana */
Index: files/patch-slirp-udp.c
===================================================================
RCS file: /home/pcvs/ports/emulators/qemu/files/patch-slirp-udp.c,v
retrieving revision 1.1
diff -u -r1.1 patch-slirp-udp.c
--- files/patch-slirp-udp.c 12 Jan 2007 00:13:58 -0000 1.1
+++ files/patch-slirp-udp.c 1 Feb 2007 21:54:07 -0000
@@ -1,26 +0,0 @@
-Index: qemu/slirp/udp.c
-@@ -205,8 +208,6 @@
- /* udp_last_so = so; */
- so->so_laddr = ip->ip_src;
- so->so_lport = uh->uh_sport;
-- so->so_faddr = ip->ip_dst; /* XXX */
-- so->so_fport = uh->uh_dport; /* XXX */
-
- if ((so->so_iptos = udp_tos(so)) == 0)
- so->so_iptos = ip->ip_tos;
-@@ -216,6 +217,15 @@
- * and if it is, do the fork_exec() etc.
- */
- }
-+
-+ /*
-+ * Assign destination unconditionally
-+ *
-+ * This fixes the case where packets are sent from the same
-+ * source ip/port to different destination ips/ports
-+ */
-+ so->so_faddr = ip->ip_dst; /* XXX */
-+ so->so_fport = uh->uh_dport; /* XXX */
-
- iphlen += sizeof(struct udphdr);
- m->m_len -= iphlen;
Index: files/patch-vl.c-ppbus
===================================================================
RCS file: /home/pcvs/ports/emulators/qemu/files/patch-vl.c-ppbus,v
retrieving revision 1.1
diff -u -r1.1 patch-vl.c-ppbus
--- files/patch-vl.c-ppbus 21 Aug 2006 23:02:01 -0000 1.1
+++ files/patch-vl.c-ppbus 1 Feb 2007 21:05:43 -0000
@@ -9,7 +9,7 @@
#endif
#else
#ifndef __sun__
-@@ -1728,7 +1730,65 @@
+@@ -1728,7 +1730,64 @@
chr->chr_ioctl = pp_ioctl;
return chr;
}
@@ -68,7 +68,6 @@
+ }
+ chr->opaque = (void *)fd;
+ chr->chr_write = null_chr_write;
-+ chr->chr_add_read_handler = null_chr_add_read_handler;
+ chr->chr_ioctl = pp_ioctl;
+ return chr;
+}
Index: files/patch-vl.h
===================================================================
RCS file: /home/pcvs/ports/emulators/qemu/files/patch-vl.h,v
retrieving revision 1.1
diff -u -r1.1 patch-vl.h
--- files/patch-vl.h 31 Oct 2006 22:55:34 -0000 1.1
+++ files/patch-vl.h 1 Feb 2007 21:54:07 -0000
@@ -1,12 +0,0 @@
-Index: qemu/vl.h
-@@ -73,6 +73,10 @@
- #define PRIo64 "I64o"
- #endif
-
-+#ifndef ENOMEDIUM
-+#define ENOMEDIUM 4097
-+#endif
-+
- #ifdef QEMU_TOOL
-
- /* we use QEMU_TOOL in the command line tools which do not depend on
Index: files/patch-x_keymap.c
@@ -0,0 +1,14 @@
+Index: qemu/x_keymap.c
+@@ -41,9 +41,9 @@
+ 0xb5, /* 112 Divide */
+ 0xb8, /* 113 Alt-R */
+ 0xc6, /* 114 Break */
+- 0x0, /* 115 */
+- 0x0, /* 116 */
+- 0x0, /* 117 */
++ 0xdb, /* 115 left windows key */
++ 0xdc, /* 116 right windows key */
++ 0xdd, /* 117 right menu key */
+ 0x0, /* 118 */
+ 0x0, /* 119 */
+ 0x0, /* 120 */
More information about the freebsd-emulation
mailing list