X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=doc%2Finstallation.texi;h=9cbd2aea80552d99044e5f205a23cee1647b62e4;hb=919347c164606c3f1544b2e8bd62f505aeda80a1;hp=bdcdfc3547426603602c26aab66705f92f487267;hpb=392931f3f604f0c8ceb7d97dba21c7fefa2a2187;p=pintos-anon diff --git a/doc/installation.texi b/doc/installation.texi index bdcdfc3..9cbd2ae 100644 --- a/doc/installation.texi +++ b/doc/installation.texi @@ -40,8 +40,8 @@ Required: @uref{http://www.gnu.org/software/make/, GNU make}, version 3.80 or later. @item -Recommended: @uref{http://fabrice.bellard.free.fr/qemu/, qemu}, version -0.8.0 or later. If qemu is not available, Bochs can be used, but its +Recommended: @uref{http://fabrice.bellard.free.fr/qemu/, QEMU}, version +0.11.0 or later. If QEMU is not available, Bochs can be used, but its slowness is frustrating. @item @@ -65,7 +65,7 @@ Optional: @uref{http://www.tug.org/, @TeX{}}. Also required to build the PDF version of the documentation. @item -Optional: @uref{http://www.vmware.com/, VMware GSX Server}. This is a +Optional: @uref{http://www.vmware.com/, VMware Player}. This is a third platform that can also be used to test Pintos. @end itemize @@ -79,12 +79,13 @@ described below (@pxref{Building Bochs for Pintos}). @item Install scripts from @file{src/utils}. Copy @file{backtrace}, -@command{pintos}, @command{pintos-gdb}, @command{pintos-mkdisk} into the -default @env{PATH}. +@file{pintos}, @file{pintos-gdb}, @file{pintos-mkdisk}, +@file{pintos-set-cmdline}, and @file{Pintos.pm} into the default +@env{PATH}. @item Install @file{src/misc/gdb-macros} in a public location. Then use a -text editor to edit the installed copy of @command{pintos-gdb}, changing +text editor to edit the installed copy of @file{pintos-gdb}, changing the definition of @env{GDBMACROS} to point to where you installed @file{gdb-macros}. Test the installation by running @command{pintos-gdb} without any arguments. If it does not complain @@ -93,6 +94,7 @@ about missing @file{gdb-macros}, it is installed correctly. @item Compile the remaining Pintos utilities by typing @command{make} in @file{src/utils}. Install @file{squish-pty} somewhere in @env{PATH}. +To support VMware Player, install @file{squish-unix}. If your Perl is older than version 5.8.0, also install @file{setitimer-helper}; otherwise, it is unneeded. @@ -111,6 +113,13 @@ documentation, plus the design document templates and various hardware specifications referenced by the documentation. Building the PDF version of the manual requires Texinfo and @TeX{} (see above). You may install @file{WWW} wherever you find most useful. + +The @file{doc} directory is not included in the @file{.tar.gz} +distributed for Pintos. It is in the Pintos CVS tree available via +@code{:pserver:anonymous@@footstool.stanford.edu:/var/lib/cvs}, in the +@code{pintos} module. The CVS tree is @emph{not} the authoritative +source for Stanford course materials, which should be obtained from the +course website. @end enumerate @menu @@ -135,54 +144,40 @@ passed to it.) In each case, the X, terminal, and ``no GUI'' interfaces should be configured, by passing @option{--with-x --with-x11 --with-term --with-nogui} to @command{configure}. -This version of Pintos is designed for use with Bochs 2.2.6. A number +This version of Pintos is designed for use with Bochs 2.6.11. A number of patches for this version of Bochs are included in @file{src/misc}: @table @file -@item bochs-2.2.6-big-endian.patch +@item bochs-2.6.11-banner-stderr.patch -Makes the GDB stubs work on big-endian systems such as Solaris/Sparc, by -doing proper byteswapping. It should be harmless elsewhere. +Prints startup boilerplate information to stderr instead of stdout. -@item bochs-2.2.6-jitter.patch +@item bochs-2.6.11-jitter-plus-segv.patch Adds the ``jitter'' feature, in which timer interrupts are delivered at -random intervals (@pxref{Debugging versus Testing}). - -@item bochs-2.2.6-triple-fault.patch - -Causes Bochs to break to GDB when a triple fault occurs and -the GDB stub is active (@pxref{Triple Faults}). - -@item bochs-2.2.6-ms-extensions.patch - -Needed for Bochs to compile with GCC on some hosts. Probably -harmless elsewhere. - -@item bochs-2.2.6-solaris-tty.patch +random intervals (@pxref{Debugging versus Testing}). Also makes the +GDB stub report a SIGSEGV to the debugger when a page-fault +exception occurs, instead of ``signal 0.'' The former can be ignored +with @code{handle SIGSEGV nostop} but the latter cannot. -Needed for Bochs to compile in terminal support on Solaris -hosts. Probably harmless elsewhere. +@item bochs-2.6.11-link-tinfo.patch -@item bochs-2.2.6-solaris-link.patch -Needed on Solaris hosts. Do not apply it elsewhere. +Patches the build mechanism to include the -ltinfo library; doesn't +change any functionality. @end table -To apply all the patches, @command{cd} into the Bochs directory, then -type: -@example -patch -p1 < $PINTOSDIR/src/misc/bochs-2.2.6-big-endian.patch -patch -p1 < $PINTOSDIR/src/misc/bochs-2.2.6-jitter.patch -patch -p1 < $PINTOSDIR/src/misc/bochs-2.2.6-triple-fault.patch -patch -p1 < $PINTOSDIR/src/misc/bochs-2.2.6-ms-extensions.patch -patch -p1 < $PINTOSDIR/src/misc/bochs-2.2.6-solaris-tty.patch -patch -p1 < $PINTOSDIR/src/misc/bochs-2.2.6-solaris-link.patch -@end example -@noindent -You will have to supply the proper @env{$PINTOSDIR}, of course. You can -use @command{patch}'s @option{--dry-run} option if you want to test -whether the patches would apply cleanly before trying to apply them. - -Sample commands to build and install Bochs for Pintos are supplied in -@file{src/misc/bochs-2.2.6-build.sh}. +The best way to build Bochs is by invoking +@code{src/misc/bochs-2.6.11-build.sh}. This should be invoked in +a directory containing the Bochs distribution file +(@code{bochs-2.6.11-tar.gz}). +The build script takes a single argument, which provides the destination +for installation (the binaries will be placed in the @code{bin} +subdirectory of that directory). +The script will apply the patches and build both versions of Bochs. + +The @code{src/misc} directory also contains patches and build scripts for +older versions of Bochs, if desired. However, these may require +changes elsewhere in Pintos. For example, @code{src/utils/pintos} +had to be modified for Bochs 2.6.11; if you use an older version of +Bochs you will need to back out those changes.