random intervals.
To apply all the patches, cd into the Bochs directory, then type
- patch -p1 < ~/pintos/src/misc/bochs-2.1.1.patch
+ patch -p1 < $PINTOSROOT/src/misc/bochs-2.1.1.patch
You will have to supply the proper path to the patch, of course. You
can provide the --dry-run option to patch if you want to test whether
the patch would apply cleanly before actually patching.
Here's a ./configure invocation for Bochs that works optimally with
the `pintos' utility:
- ./configure --enable-4meg-pages --with-x --with-x11 --with-term --with-nogui
+ ./configure --with-x --with-x11 --with-term --with-nogui
If you want the gdb stub, add --enable-gdb-stub
If you want the internal debugger, add --enable-debugger
+Here are the commands used to build and install all the versions of
+Bochs we make available on the elaines:
+
+cd /tmp && tar xzf ~/bochs-2.1.1.tar.gz && cd bochs-2.1.1
+patch -p1 < $PINTOSROOT/src/misc/bochs-2.1.1.patch
+PREFIX="/usr/class/cs140/`uname -m`"
+CFGOPTS="--with-x --with-x11 --with-term --with-nogui --prefix=$PREFIX"
+(mkdir plain &&
+ cd plain &&
+ ../configure $CFGOPTS &&
+ make &&
+ make install)
+(mkdir with-gdb &&
+ cd with-gdb &&
+ ../configure --enable-gdb-stub $CFGOPTS &&
+ make &&
+ cp bochs $PREFIX/bin/bochs-gdb)
+(mkdir with-dbg &&
+ cd with-dbg &&
+ ../configure --enable-debugger $CFGOPTS &&
+ make &&
+ cp bochs $PREFIX/bin/bochs-dbg)
+
diff -urp orig/bochs-2.1.1/Makefile.in bochs-2.1.1/Makefile.in
--- orig/bochs-2.1.1/Makefile.in 2004-02-11 14:28:02.000000000 -0800
+++ bochs-2.1.1/Makefile.in 2004-09-13 15:05:26.281550000 -0700
put_reply(obuf);
break;
-diff -u tmp/bochs-2.1.1/iodev/serial.cc bochs-2.1.1/iodev/serial.cc
---- tmp/bochs-2.1.1/iodev/serial.cc 2004-02-11 14:28:54.000001000 -0800
-+++ bochs-2.1.1/iodev/serial.cc 2004-09-14 23:02:04.000001000 -0700
+diff -urp bochs-2.1.1-upstream/iodev/serial.cc bochs-2.1.1/iodev/serial.cc
+--- tmp/bochs-2.1.1/iodev/serial.cc 2004-02-11 14:28:54.000000000 -0800
++++ bochs-2.1.1/iodev/serial.cc 2005-06-01 20:26:01.000000000 -0700
@@ -53,7 +53,7 @@
#endif
#endif
#define SERIAL_ENABLE
#endif
-@@ -122,6 +122,7 @@
+@@ -118,10 +118,11 @@ bx_serial_c::init(void)
+
+ #ifdef SERIAL_ENABLE
+ if (strlen(bx_options.com[0].Odev->getptr ()) > 0) {
+- tty_id = open(bx_options.com[0].Odev->getptr (), O_RDWR|O_NONBLOCK,600);
++ tty_id = open(bx_options.com[0].Odev->getptr (), O_RDWR,600);
if (tty_id < 0)
BX_PANIC(("open of %s (%s) failed\n",
"com1", bx_options.com[0].Odev->getptr ()));
BX_DEBUG(("tty_id: %d",tty_id));
tcgetattr(tty_id, &term_orig);
bcopy((caddr_t) &term_orig, (caddr_t) &term_new, sizeof(struct termios));
-@@ -145,6 +146,7 @@
+@@ -145,6 +148,7 @@ bx_serial_c::init(void)
term_new.c_cc[VTIME] = 0;
//term_new.c_iflag |= IXOFF;
tcsetattr(tty_id, TCSAFLUSH, &term_new);
}
#endif /* def SERIAL_ENABLE */
// nothing for now
+@@ -955,7 +968,7 @@ bx_serial_c::rx_timer(void)
+ }
+ if (rdy) {
+ chbuf = data;
+-#elif defined(SERIAL_ENABLE)
++#elif 0 && defined(SERIAL_ENABLE)
+ if ((tty_id >= 0) && (select(tty_id + 1, &fds, NULL, NULL, &tval) == 1)) {
+ (void) read(tty_id, &chbuf, 1);
+ BX_DEBUG(("read: '%c'",chbuf));
diff -urp bochs-2.1.1.orig/bochs.h bochs-2.1.1/bochs.h
--- bochs-2.1.1.orig/bochs.h 2004-02-11 14:28:03.000000000 -0800