--- trunk/doc/guestoses.html 2007/10/08 16:18:31 11 +++ trunk/doc/guestoses.html 2007/10/08 16:18:38 12 @@ -1,17 +1,16 @@ -GXemul documentation: Installing and running "guest OSes" - - +Gavare's eXperimental Emulator:   Installing and running "guest OSes" +
-GXemul documentation:        +Gavare's eXperimental Emulator:    Installing and running "guest OSes"

+ Back to the index


@@ -109,7 +109,7 @@

  1. Create an empty harddisk image, which will be the root disk that NetBSD installs itself onto:
    -	$ dd if=/dev/zero of=nbsd_pmax.img bs=1 count=512 seek=1900000000
    +	dd if=/dev/zero of=nbsd_pmax.img bs=1 count=512 seek=1900000000
     
     
@@ -130,10 +130,11 @@
  • Start the emulator like this:
    -	$ gxemul -X -E dec -e 3max -d nbsd_pmax.img -d bc:pmaxcd.iso
    +	gxemul -e 3max -A -d nbsd_pmax.img -d bc:pmaxcd.iso
     
    and proceed like you would do if you were installing NetBSD on a real - DECstation. + DECstation. Remember to choose vt100 as your terminal + type, and not rcons.

    For an ftp install, substitute steps 2 and 3 above with these: @@ -147,10 +148,12 @@

  • Start the emulator like this:
    -	$ gxemul -X -E dec -e 3max -d nbsd_pmax.img -O netbsd-INSTALL.gz
    +	gxemul -e 3max -A -d nbsd_pmax.img -O netbsd-INSTALL.gz
     
    and proceed like you would do if you were installing NetBSD on a real - DECstation. Suitable networking parameters are as follows:
    +	DECstation. Remember to choose vt100 as your terminal
    +	type, and not rcons. Suitable networking parameters are as
    +	follows:
     	Which device shall I use? [le0]: le0
     	..
     	Your DNS domain: mydomain.com
    @@ -164,29 +167,27 @@
     	IP number of a real-world nameserver instead.)
     
     
    -

    (If you don't want to use a graphical framebuffer during the install, -you can remove -X from the command line, but then make sure you -choose "vt100" when prompted with which terminal type to use, and not -"rcons". If you want to use X, but think that the default framebuffer -window is too large, try adding -Y2 to the command line.) +

    If you want to use a graphical framebuffer during the install, you can +add -X -Y2 to the command line, and choose rcons +instead of vt100 when prompted with which terminal type to use. +(By just using -X, you will get a full-size framebuffer +window.) -

    When the installation is completed, the following command should start +

    When the installation is finished, the following command should start NetBSD from the harddisk image:

    -	$ gxemul -X -M64 -E dec -e 3max -d nbsd_pmax.img
    +	gxemul -e 3max -d nbsd_pmax.img
     
    -

    -Use startx to start X windows. - -

    -NOTE: For some reason, NetBSD 2.0.2 doesn't -work with X out-of-the-box on pmax. It seems that this has to do with a -switch to WSCONS. For now, if you want X, then try NetBSD 1.6.2. +

    NOTE: For some reason, NetBSD 2.0.2 +doesn't work with X out-of-the-box on pmax. It seems that this has to do +with NetBSD switching console system to "WSCONS" somewhere between 1.6.2 +and 2.0. For now, if you want X, then try NetBSD 1.6.2. -

    -If you want to run without the X framebuffer, use this instead:

    -	$ gxemul -E dec -e 3max -d nbsd_pmax.img
    +

    With NetBSD/pmax 1.6.2, try the following to start with a framebuffer:

    +	gxemul -X -e 3max -d nbsd_pmax.img
     
    +and log in as root and type startx to start X windows. + @@ -214,15 +215,17 @@
    1. Create an empty harddisk image, which will be the root disk that NetBSD installs itself onto:
      -	$ dd if=/dev/zero of=nbsd_arc.img bs=1024 count=1 seek=900000
      +	dd if=/dev/zero of=nbsd_arc.img bs=1024 count=1 seek=900000
       
       
      -
    2. Download a NetBSD/arc 1.6.2 CDROM image from ftp:
      +  
    3. Download a NetBSD/arc 1.6.2 CDROM image, and a generic NetBSD/arc + kernel:
       	ftp://ftp.netbsd.org/pub/NetBSD/iso/1.6.2/arccd.iso
       
      +	ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6.2/arc/binary/kernel/netbsd-GENERIC.gz
       
    4. Start the emulator using this command line:
      -	$ gxemul -E arc -e pica -x -d nbsd_arc.img -d bc:arccd.iso \
      +	gxemul -e pica -x -d nbsd_arc.img -d bc:arccd.iso \
       	  -j arc/binary/kernel/netbsd.RAMDISK.gz
       
       
      @@ -230,33 +233,29 @@

    5. From now on, you have to use your imagination, as there is no automatic installation program for NetBSD/arc. Here are some tips - and hints on how you can proceed with the install:
      -	$ mount /dev/cd0a /mnt2
      -	$ disklabel -i -I sd0    (for example 'a', '4.2BSD', '1c',
      -	    '700M', 'b', 'swap', '701M', '$', 'P', 'W', 'y', and 'Q')
      -	$ newfs /dev/sd0a
      -	$ mount /dev/sd0a /mnt
      -	$ cd /mnt
      -	$ for a in /mnt2/arc/binary/sets/*.tgz; do echo $a; tar xzpf $a; done
      -	$ cd dev; sh MAKEDEV all
      -	$ cd ../etc; echo "rc_configured=YES" >> rc.conf
      -	$ cat > /mnt/etc/fstab
      -	    /dev/sd0a / ffs rw 1 1
      -	    /dev/sd0b none swap sw 0 0
      -	    (ctrl-d)
      -	$ cd /; umount /mnt; umount /mnt2
      -	$ halt
      -
      -
      -
    6. Download a generic NetBSD/arc kernel:
      -	ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6.2/arc/binary/kernel/netbsd-GENERIC.gz
      -
      -
      + and hints on how you can proceed with the install: +

             
      +mount /dev/cd0a /mnt2
      +disklabel -i -I sd0    (for example 'a', '4.2BSD', '1c',
      +    '700M', 'b', 'swap', '701M', '$', 'P', 'W', 'y', and 'Q')
      +newfs /dev/sd0a
      +mount /dev/sd0a /mnt
      +cd /mnt
      +for a in /mnt2/arc/binary/sets/*.tgz; do echo $a; tar xzpf $a; done
      +cd dev; sh MAKEDEV all
      +cd ../etc; echo "rc_configured=YES" >> rc.conf
      +cat > /mnt/etc/fstab
      +/dev/sd0a / ffs rw 1 1
      +/dev/sd0b none swap sw 0 0
      +(press ctrl-d)
      +cd /; umount /mnt; umount /mnt2
      +halt
      +

    You can now use the generic NetBSD/arc kernel to boot from the harddisk image, using the following command:

    -	$ gxemul -E arc -e pica -x -d nbsd_arc.img netbsd-GENERIC.gz
    +	gxemul -e pica -x -d nbsd_arc.img netbsd-GENERIC.gz
     
     
    @@ -339,53 +338,48 @@

    These instructions show an example of how to install -NetBSD/hpcmips on an emulated MobilePro 800: +NetBSD/hpcmips on an emulated MobilePro 770:

    1. Create an empty harddisk image, which will be the root disk that you will install NetBSD/hpcmips onto:
      -	$ dd if=/dev/zero of=nbsd_hpcmips.img bs=1024 count=1 seek=1990000
      +	dd if=/dev/zero of=nbsd_hpcmips.img bs=1024 count=1 seek=1990000
       
       
      -
    2. Download the NetBSD 2.0.2 for hpcmips ISO image:
      -	ftp://ftp.se.netbsd.org/pub/NetBSD/iso/2.0.2/hpcmipscd.iso
      +  
    3. Download the NetBSD/hpcmips 2.0.2 ISO image, and a generic kernel:
      +	ftp://ftp.netbsd.org/pub/NetBSD/iso/2.0.2/hpcmipscd.iso
      +
      +	ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0.2/hpcmips/binary/kernel/netbsd-GENERIC.gz
       
      -
      (You may want to choose a mirror closer to you, if .se is slow.) +
    4. Start the installation like this:
      -	$ gxemul -E hpc -e mobilepro800 -X -d nbsd_hpcmips.img  \
      +	gxemul -e mobilepro770 -X -A -d nbsd_hpcmips.img  \
       	  -d b:hpcmipscd.iso -j hpcmips/installation/netbsd.gz
       
       
      and proceed like you would do if you were installing NetBSD on a real - MobilePro 800. (Install onto wd0, choose "Use entire disk" when + MobilePro 770. (Install onto wd0, choose "Use entire disk" when doing the MBR partitioning, and choose wd1d (not cd0c) as the CDROM device to install from.)

    If everything worked, NetBSD should now be installed on the disk image. -GXemul does not (yet) support reading the kernel directly from the -disk image, so you need to download a generic kernel separately:

    -	ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0.2/hpcmips/binary/kernel/netbsd-GENERIC.gz
    +Use the following command line to boot the emulated hpcmips machine:
    +	gxemul -e mobilepro770 -X -d nbsd_hpcmips.img netbsd-GENERIC.gz
     
     
    -

    The installation is now complete. Use the following command line to -boot the emulated hpcmips machine:

    -	$ gxemul -E hpc -e mobilepro800 -X -d nbsd_hpcmips.img netbsd-GENERIC.gz
    +

    If you change your mind at this point regarding which machine type to +emulate, you might for example prefer a MobilePro 800, then you can change +that at any time. NetBSD/hpcmips is designed to be able to boot on many +types, without any need to change the kernel. -

    - -

    If you change your mind at this point regarding which machine type to -emulate, you might for example prefer a MobilePro 770, then you can change -that at any time. NetBSD is designed to be able to boot on many types, -without any need to change the kernel. - -

    When you have logged in as root, you can use startx to -start X Windows. (Note: There is no mouse support yet; you can only use -keyboard input.) +

    When you have logged in as root, you can use startx to +start X Windows, but there is no mouse support yet so only keyboard input +is available. This makes it a bit akward to use X. @@ -416,40 +410,41 @@

    1. Create an empty harddisk image, which will be the disk image that you will install NetBSD/cobalt onto:
      -	$ dd if=/dev/zero of=nbsd_cobalt.img bs=1024 count=1 seek=1999000
      +	dd if=/dev/zero of=nbsd_cobalt.img bs=1024 count=1 seek=1999000
       
       
    2. Download the generic kernel for Cobalt and the 2.0.2 ISO image:
      -	ftp://ftp.se.netbsd.org/pub/NetBSD/NetBSD-2.0.2/cobalt/binary/kernel/netbsd-GENERIC.gz
      -	ftp://ftp.se.netbsd.org/pub/NetBSD/iso/2.0.2/cobaltcd.iso
      +	ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0.2/cobalt/binary/kernel/netbsd-GENERIC.gz
      +	ftp://ftp.netbsd.org/pub/NetBSD/iso/2.0.2/cobaltcd.iso
       
      -
      (You may want to choose a mirror closer to you, if .se is slow.) +

  • Install NetBSD/pmax 2.0.2 according to instructions further up on this page.

  • Start NetBSD/pmax like this:
    -	$ gxemul -Edec -e3max -d nbsd_pmax.img -d cobaltcd.iso -d nbsd_cobalt.img
    +	gxemul -e3max -A -d nbsd_pmax.img -d cobaltcd.iso -d nbsd_cobalt.img
     
     
  • Log in as root (on the emulated 3MAX machine), and execute the - following commands: (adjust according to taste)
    -	newfs /dev/sd1c
    -	mount /dev/cd0c /mnt
    -	mkdir /mnt2; mount /dev/sd1c /mnt2
    -	cd /mnt2; sh
    -	for a in /mnt/cobalt/binary/sets/*.tgz; do echo $a; tar zxfp $a; done
    -	exit
    -	cd dev; sh ./MAKEDEV all; cd ../etc
    -	echo rc_configured=YES >> rc.conf
    -	echo "/dev/wd0d / ffs rw 1 1" > fstab
    -	cd /; umount /mnt; umount /mnt2; halt
    -
    + following commands: (adjust according to taste) +

           
    +newfs /dev/sd1c
    +mount /dev/cd0c /mnt
    +mkdir /mnt2; mount /dev/sd1c /mnt2
    +cd /mnt2; sh
    +for a in /mnt/cobalt/binary/sets/*.tgz; do echo $a; tar zxfp $a; done
    +exit
    +cd dev; sh ./MAKEDEV all; cd ../etc
    +echo rc_configured=YES >> rc.conf
    +echo "/dev/wd0d / ffs rw 1 1" > fstab
    +cd /; umount /mnt; umount /mnt2; halt
    +

    You should now be able to boot NetBSD/cobalt like this:

    -	$ gxemul -M128 -E cobalt -d nbsd_cobalt.img netbsd-GENERIC.gz
    +	gxemul -M128 -E cobalt -d nbsd_cobalt.img netbsd-GENERIC.gz
     
    Note that the installation instructions above create a filesystem @@ -490,51 +485,53 @@

      +
    1. Install NetBSD/pmax 2.0.2 according to instructions + further up on this page. +

    2. Create an empty harddisk image, which will be the disk image that you will install NetBSD onto:
      -	$ dd if=/dev/zero of=nbsd_malta.img bs=1024 count=1 seek=999000
      +	dd if=/dev/zero of=nbsd_malta.img bs=1024 count=1 seek=999000
       
       
    3. Download the generic kernel and the 2.0.2 ISO image:
      -	ftp://ftp.se.netbsd.org/pub/NetBSD/NetBSD-2.0.2/evbmips-mipsel/binary/kernel/netbsd-MALTA.gz
      -	ftp://ftp.se.netbsd.org/pub/NetBSD/iso/2.0.2/evbmips-mipselcd.iso
      +	ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0.2/evbmips-mipsel/binary/kernel/netbsd-MALTA.gz
      +	ftp://ftp.netbsd.org/pub/NetBSD/iso/2.0.2/evbmips-mipselcd.iso
       
      -
      (You may want to choose a mirror closer to you, if .se is slow.) -

      -

    4. Install NetBSD/pmax 2.0.2 according to instructions - further up on this page. +
  • Start NetBSD/pmax like this:
    -	$ gxemul -Edec -e3max -d nbsd_pmax.img -d nbsd_malta.img -d evbmips-mipselcd.iso
    +	gxemul -e 3max -A -d nbsd_pmax.img -d nbsd_malta.img -d evbmips-mipselcd.iso
     
    -
    -
  • Log in as root (on the emulated 3MAX machine), and execute the - following commands: (adjust according to taste)
    -	newfs /dev/sd1c
    -	mount /dev/cd0c /mnt
    -	mkdir /mnt2; mount /dev/sd1c /mnt2
    -	cd /mnt2; sh
    -	for a in /mnt/evbmips-mipsel/binary/sets/*.tgz; do echo $a; tar zxfp $a; done
    -	exit
    -	cd dev; sh ./MAKEDEV all; cd ../etc
    -	echo rc_configured=YES >> rc.conf
    -	echo "/dev/wd0c / ffs rw 1 1" > fstab
    -	cd /; umount /mnt; umount /mnt2; halt
    -
    +
  • and execute the following commands as root: +

           
    +newfs /dev/sd1c
    +mount /dev/cd0c /mnt
    +mkdir /mnt2; mount /dev/sd1c /mnt2
    +cd /mnt2; sh
    +for a in /mnt/evbmips-mipsel/binary/sets/*.tgz; do echo $a; tar zxfp $a; done
    +exit
    +cd dev; sh ./MAKEDEV all; cd ../etc
    +echo rc_configured=YES >> rc.conf
    +echo "/dev/wd0c / ffs rw 1 1" > fstab
    +cd /; umount /mnt; umount /mnt2; halt
    +
    -

    You should now be able to boot NetBSD/evbmips like this:

    -	$ gxemul -Eevbmips -emalta -d nbsd_malta.img netbsd-MALTA.gz
    +

    You should now be able to boot NetBSD/evbmips using this command:

    +	gxemul -e malta -d nbsd_malta.img netbsd-MALTA.gz
     
    -

    Note 1: NetBSD detects a very fast CPU although the emulation isn't -really very fast, so delays take very long. Even on a multi-GHz host, you -will need a lot of patience. +

    Note 1: NetBSD detects a very fast CPU although the emulation isn't +really that fast, so emulated delays are very slow. Even on a multi-GHz +host, you will need a lot of patience.

    Note 2: To select a 4Kc (MIPS32) CPU instead of the default 5Kc (MIPS64) CPU, add -C 4Kc to the command line. With NetBSD -2.0.2, however, there will be little or no difference in functionality. -(NetBSD still runs in 32-bit mode on 64-bit MIPS CPUs.) +2.0.2, however, there will be little or no difference in functionality, as +NetBSD still runs in 32-bit mode on 64-bit MIPS CPUs. The only difference +it makes in practice is that GXemul's binary translation subsystem might +run a bit faster (because there are some optimizations for 32-bit +emulation that don't work with 64-bit emulation).

    Note 3: The installation instructions above create a filesystem without a disklabel, so there is only one ffs partition and no @@ -564,13 +561,13 @@ in GXemul on an emulated O2 (SGI-IP32). However, GXemul does not yet emulate the AHC PCI SCSI controller in the O2. (I have mailed Adaptec several times, asking for documentation, but never received any reply.) -NetBSD can still run, as long as it doesn't use SCSI. +NetBSD can still run in the emulator, as long as it doesn't use SCSI.

    For a simple test with the 2.0.2 ramdisk (install) kernel, try dowloading

     	ftp://ftp.NetBSD.org/pub/NetBSD/NetBSD-2.0.2/sgimips/binary/kernel/netbsd-INSTALL32_IP3x.gz
     
    -
    and run  gxemul -E sgi -e o2 netbsd-INSTALL32_IP3x.gz. +
    and run  gxemul -e o2 netbsd-INSTALL32_IP3x.gz.

    It is possible to set up an environment for netbooting the emulated SGI machine off of another emulated machine. Performing this setup is quite @@ -580,12 +577,12 @@

    1. First of all, the "nfs server" machine must be set up. This needs to have a 750 MB /tftpboot partition. - Install NetBSD/pmax 2.0.2 from CDROM - inside the emulator. (Don't forget to add the extra partition!) + Install NetBSD/pmax 2.0.2 from CDROM. + (Don't forget to add the extra partition!)

    2. Configure the nfs server machine to act as an nfs server. Start up the emulated DECstation:
      -	$ gxemul -M64 -Edec -e3max -d nbsd_pmax.img
      +	gxemul -e 3max -A -d nbsd_pmax.img
       
      and enter the following commands as root inside the emulator:
             
      @@ -617,13 +614,13 @@
       	NetBSD/sgimips distribution sets:
      (NOTE: This takes quite some time, even if you have a fast network connection.)
             
      -cd /tftpboot; ftp -i ftp.se.netbsd.org
      +cd /tftpboot; ftp -i ftp.uk.netbsd.org
       (log in as anonymous...)
       cd /pub/NetBSD/NetBSD-2.0.2/sgimips/binary/sets
       mget base.tgz comp.tgz etc.tgz games.tgz man.tgz misc.tgz text.tgz
       quit
       sh
      -for a in *.tgz; do echo $a; tar zxfp $a; done
      +for a in *.tgz; do echo $a; tar zxfp $a; rm -f $a; done
       echo 10.0.0.2:/tftpboot / nfs rw 0 0 > /tftpboot/etc/fstab
       echo rc_configured=YES >> /tftpboot/etc/rc.conf
       dd if=/dev/zero of=swap bs=1024 count=32768
      @@ -643,7 +640,7 @@
       
       emul(
           net(
      -	add_remote("127.0.0.1:12444")   ! the server
      +	add_remote("localhost:12444")   ! the server
       	local_port(12445)               ! the client
           )
       
      @@ -666,7 +663,7 @@
       emul(
           net(
       	local_port(12444)               ! the server
      -	add_remote("127.0.0.1:12445")   ! the client
      +	add_remote("localhost:12445")   ! the client
           )
       
           machine(
      @@ -683,10 +680,10 @@
         
    3. Boot the "nfs server" and the NetBSD/sgimips "client machine" as two separate emulator instances:
       	in one xterm:
      -	$ gxemul @config_server
      +	gxemul @config_server
       
       	and then, in another xterm:
      -	$ gxemul @config_client
      +	gxemul @config_client
       
       
    4. In the NetBSD/sgimips window, choose "x: Exit Install System" @@ -695,8 +692,8 @@ mount -v 10.0.0.2:/tftpboot /mnt cd /mnt/dev; ./MAKEDEV all; cd /; umount /mnt halt -
    5. Then log in as root on the server machine and type - reboot. +Then, once the client machine has halted, log in as root + on the server machine and type reboot.

    6. Once everything has been set up correctly, change netbsd-INSTALL32_IP3x.gz in config_client to @@ -708,13 +705,13 @@ actually does on the network.

      It should now be possible to boot NetBSD/sgimips using the NetBSD/pmax -nfs server, using the following commands: (NOTE! Execute these in two -separate xterms!)

      -	$ gxemul @config_server
      -	$ gxemul @config_client
      +nfs server, using the following commands: (NOTE! Execute these two 
      +commands in separate xterms!)
      +	gxemul @config_server
      +	gxemul @config_client
       
      -

      When asked for "root device:" etc. on the clientmachine, enter +

      When asked for "root device:" etc. on the client machine, enter the following values:

       	root device: mec0
       	dump device: 				(leave blank)
      @@ -771,32 +768,32 @@
       
      1. Create an empty harddisk image, which will be the root disk that OpenBSD installs itself onto:
        -	$ dd if=/dev/zero of=obsd_pmax.img bs=1 count=512 seek=900000000
        +	dd if=/dev/zero of=obsd_pmax.img bs=1 count=512 seek=900000000
         
         
      2. Download the entire pmax directory from the ftp server: (approx. 99 MB)
        -	$ wget -r ftp://ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax/
        +	wget -r ftp://ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax/
         
         
        -
      3. Execute the following commands:
        -	$ mv ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax/simpleroot28.fs.gz .
        -	$ gunzip simpleroot28.fs.gz
        -	$ chmod +w simpleroot28.fs		<--- make sure
        -
        -
        +
      4. Execute the following commands: +

               
        +mv ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax/simpleroot28.fs.gz .
        +gunzip simpleroot28.fs.gz
        +chmod +w simpleroot28.fs		<--- make sure
        +

      5. You now need to make an ISO image of the entire directory you downloaded. (I recommend using mkisofs for that purpose. If you don't already have mkisofs installed on your system, you need to install it in order to do this.)
        -	$ mkisofs -o openbsd_pmax_2.8.iso ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax
        +	mkisofs -o openbsd_pmax_2.8.iso ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax
         
         
      6. Start the emulator with all three (!) disk images:
        -	$ gxemul -E dec -e 3max -d obsd_pmax.img -d b:simpleroot28.fs -j bsd -d c:openbsd_pmax_2.8.iso
        +	gxemul -e 3max -A -M64 -d obsd_pmax.img -d b:simpleroot28.fs -j bsd -d c:openbsd_pmax_2.8.iso
         
         
        - (If you add -X, you will run with the graphical + (If you add -X, you will run with the graphical framebuffer. This is REALLY slow because the console has to scroll a lot during the install. I don't recommend it.)

        @@ -810,10 +807,10 @@

      7. When asked for the "root device?", enter rz1.
      8. At "Enter pathname of shell or RETURN for sh:", press enter.
      9. At the # prompt, do the following:
        -	$ fsck /dev/rz1a        (and mark the filesystem as clean)
        -	$ mount /dev/rz1a /
        -	$ mount -t kernfs kern kern
        -	$ ./install
        +	fsck /dev/rz1a        (and mark the filesystem as clean)
        +	mount /dev/rz1a /
        +	mount -t kernfs kern kern
        +	./install
         
         
        and proceed with the install. Good luck. :-) @@ -828,28 +825,28 @@ password! The first time you boot up OpenBSD after the install, you need to go into single user mode and run passwd root to set the root password, or you will not be able to log in at all!
        -	$ gxemul -E dec -e 3max -d obsd_pmax.img -d 2c:openbsd_pmax_2.8.iso -j bsd -o '-s'
        +	gxemul -e 3max -A -d obsd_pmax.img -d 2c:openbsd_pmax_2.8.iso -j bsd -o '-s'
         
        While you are at it, you might want to extract the X11 install sets as well, as the installer seems to ignore them too. (Perhaps due to a bug in the installer, perhaps because of the way I used mkisofs.)

        Execute the following commands in the emulator: -

        -	fsck /dev/rz0a
        -	mount /
        -	passwd root
        -
        -	cd /; mount -t cd9660 /dev/rz2c /mnt; sh
        -	for a in /mnt/[xX]*; do tar zxvf $a; done
        -	ln -s /usr/X11R6/bin/Xcfbpmax /usr/X11R6/bin/X
        -	ln -s /dev/fb0 /dev/mouse
        -	echo /usr/X11R6/lib >> /etc/ld.so.conf
        -	ldconfig
        +

               
        +fsck /dev/rz0a
        +mount /
        +passwd root
        +
        +cd /; mount -t cd9660 /dev/rz2c /mnt; sh
        +for a in /mnt/[xX]*; do tar zxvf $a; done
        +ln -s /usr/X11R6/bin/Xcfbpmax /usr/X11R6/bin/X
        +ln -s /dev/fb0 /dev/mouse
        +echo /usr/X11R6/lib >> /etc/ld.so.conf
        +ldconfig
         
        -	sync
        -	halt
        -
        +sync +halt +

      @@ -862,7 +859,7 @@ Once you have completed the installation procedure, the following command will let you boot from the new rootdisk image:

      -	$ gxemul -E dec -e 3max -X -M64 -o '-aN' -d obsd_pmax.img -j bsd
      +	gxemul -e 3max -X -M64 -o '-aN' -d obsd_pmax.img -j bsd
       

      @@ -907,11 +904,11 @@

      1. Create an empty harddisk image, which will be the root disk that OpenBSD installs itself onto:
        -	$ dd if=/dev/zero of=obsd_arc.img bs=1024 count=1 seek=700000
        +	dd if=/dev/zero of=obsd_arc.img bs=1024 count=1 seek=700000
         
         
      2. Download the entire arc directory from the ftp server: (approx. 75 MB)
        -	$ wget -np -l 0 -r ftp://ftp.se.openbsd.org/pub/OpenBSD/2.3/arc/
        +	wget -np -l 0 -r ftp://ftp.se.openbsd.org/pub/OpenBSD/2.3/arc/
         
         
        @@ -919,11 +916,11 @@ (I recommend using mkisofs for that purpose. If you don't already have mkisofs installed on your system, you need to install it in order to do this.)
        -	$ mkisofs -o openbsd_arc_2.3.iso ftp.se.openbsd.org/pub/OpenBSD/
        +	mkisofs -o openbsd_arc_2.3.iso ftp.se.openbsd.org/pub/OpenBSD/
         
         
      3. Start the emulator using this command line:
        -	$ gxemul -X -E arc -e pica -d obsd_arc.img -d b:openbsd_arc_2.3.iso -j 2.3/arc/bsd.rd
        +	gxemul -e pica -X -A -d obsd_arc.img -d b:openbsd_arc_2.3.iso -j 2.3/arc/bsd.rd
         
         
        and proceed like you would do if you were installing OpenBSD @@ -936,7 +933,7 @@ boot from the harddisk image:

        -	$ gxemul -X -E arc -e pica -d obsd_arc.img ftp.se.openbsd.org/pub/OpenBSD/2.3/arc/bsd
        +	gxemul -X -e pica -d obsd_arc.img ftp.se.openbsd.org/pub/OpenBSD/2.3/arc/bsd
         
         
        @@ -966,14 +963,14 @@
        1. Create an empty harddisk image, which will be the root disk that Ultrix installs itself onto:
          -        $ dd if=/dev/zero of=rootdisk.img bs=1024 count=1 seek=800000
          +        dd if=/dev/zero of=rootdisk.img bs=1024 count=1 seek=800000
           
           
        2. Place your Ultrix installation media in your CDROM drive. (On FreeBSD and similar systems, it is called /dev/cd0c. Replace that with the name of your CDROM drive, or the name of a .iso image file.) Then, start the emulator like this:
          -        $ gxemul -X -M64 -E dec -e 3max -d rootdisk.img -d bc:/dev/cd0c -j vmunix
          +        gxemul -X -A -M64 -e 3max -d rootdisk.img -d bc:/dev/cd0c -j vmunix
           
           
        3. Once the first stage of the installation is done (restoring the root @@ -981,7 +978,7 @@ new rootdisk, to continue the installation process. This is done by removing the bootflag ('b') from the second diskimage argument:
          -        $ gxemul -X -M64 -E dec -e 3max -d rootdisk.img -d c:/dev/cd0c -j vmunix
          +        gxemul -X -A -M64 -e 3max -d rootdisk.img -d c:/dev/cd0c -j vmunix
           
           
        @@ -989,7 +986,7 @@

        When the installation is completed, the following command should start Ultrix from the harddisk image:

        -        $ gxemul -X -M64 -E dec -e 3max -j vmunix -d rootdisk.img
        +        gxemul -X -A -M64 -e 3max -j vmunix -d rootdisk.img
         

        Ultrix mostly seems to work with dynamic binary translation (which can @@ -1011,7 +1008,7 @@ displays to use. The following example starts Ultrix on an emulated tripple-headed workstation, on three different displays (remote1:0.0, localhost:0.0, and remote2:0.0), using no scaledown:

        -        $ gxemul -M64 -N -E dec -e 3max -jgenvmunix -d rootdisk.img \
        +        gxemul -M64 -N -e 3max -jgenvmunix -d rootdisk.img \
                     -XZ3 -z remote1:0.0 -z localhost:0.0 -z remote2:0.0
         
        @@ -1078,7 +1075,7 @@
    7. Start the emulator with the following command line:
      -	$ gxemul -X -E dec -e 3max -M128 -d ds5000.bt -j vmsprite -o ''
      +	gxemul -X -e 3max -M128 -d ds5000.bt -j vmsprite -o ''
       
       
      @@ -1121,16 +1118,18 @@ NOTE: This is experimental, and extremely unstable. During my tests, even pressing the wrong key during the install (for example the wrong cursor key) can cause a kernel Oops. My success -rate is probably around 50%. +rate is probably around 50%. -

      I think this has to do with interrupts from the serial controller. -Hopefully using the -U command line option will reduce the -risk for such crashes. (I haven't had time to come up with a clean -solution to this yet; it feels like a buffer overflow in Linux' serial -driver for the 5000/200, but it is also likely that it is a bug in GXemul.) +

      I think this has to do with interrupts +from the serial controller. Hopefully using the -U command +line option will reduce the risk for such crashes. (I haven't had time to +come up with a clean solution to this yet; it feels like a buffer overflow +in Linux' serial driver for the 5000/200, but it is also likely that it is +a bug in GXemul.) -

      Everything runs extremely slow. Even if you have a very fast host -machine, an install attempt can still take several hours! +

      Everything runs extremely slow. Even if you have +a very fast host machine, an install attempt can still take several hours! +

               @@ -1150,16 +1149,17 @@

      1. Create an empty harddisk image, which will be the root disk that Debian installs itself onto:
        -	$ dd if=/dev/zero of=debian.img bs=1024 count=1 seek=2000000
        +	dd if=/dev/zero of=debian.img bs=1024 count=1 seek=3000000
         
         
      2. Download an install kernel:
        -	http://ftp.egr.msu.edu/debian/dists/stable/main/installer-mipsel/current/images/r3k-kn02/boot.img
        +	http://ftp.egr.msu.edu/debian/dists/stable/main/
        +	    installer-mipsel/current/images/r3k-kn02/boot.img
         
         

      3. For a text-mode installation, start the emulator like this:
        -	$ gxemul -E dec -e 3max -U -M64 -o 'console=ttyS3' -d debian.img -O boot.img
        +	gxemul -e 3max -U -M64 -o 'console=ttyS3' -d debian.img -O boot.img
         
         
        (If you want to, you can try -X instead of @@ -1181,7 +1181,7 @@
      4. Once the first phase of the install has finished, the following command should let you boot into Debian, and perform post-install configuration:
        -	$ gxemul -E dec -e 3max -U -M64 -o 'console=ttyS3' -d debian.img
        +	gxemul -e 3max -U -M64 -o 'console=ttyS3' -d debian.img
         
         
        Note: All these steps take a lot of time, so you will have plenty of time to drink lots of cups of coffee. @@ -1191,10 +1191,11 @@ installation is finished and you're supposed to get a login prompt, you need to press CTRL-C and type quit, and then: download a normal kernel (not a RAMDISK kernel):
        -	http://ftp.egr.msu.edu/debian/dists/stable/main/installer-mipsel/current/images/cdrom/vmlinux-2.4.27-r3k-kn02
        +	http://ftp.egr.msu.edu/debian/dists/stable/main/installer-mipsel/
        +	    current/images/cdrom/vmlinux-2.4.27-r3k-kn02
         
         
        and boot Debian using the following command line:
        -	$ gxemul -E dec -e 3max -U -M64 -o \
        +	gxemul -e 3max -U -M64 -o \
         	    'console=ttyS3 root=/dev/sda1 rw init=/bin/sh' \
         	    -d debian.img vmlinux-2.4.27-r3k-kn02
         
        @@ -1213,7 +1214,7 @@
         
         

        Use this command to boot from the completely installed disk image:

        -	$ gxemul -E dec -e 3max -U -M64 -o 'console=ttyS3' -d debian.img
        +	gxemul -e 3max -U -M64 -o 'console=ttyS3' -d debian.img
         
         
        @@ -1225,8 +1226,7 @@ possible to run Debian GNU/Linux with framebuffer/keyboard. (Add -X (or -XY2) and remove the console=ttyS3 option.) He has made a kernel available here: - -http://home.tal.org/~milang/o2/kernels/vmlinux-2.4.29-rc2-r3k-mipsel-decstation +http://home.tal.org/~milang/o2/kernels/vmlinux-2.4.29-rc2-r3k-mipsel-decstation It has other problems (ethernet doesn't seem to work, for example), but at least it doesn't Oops that often. ] @@ -1254,7 +1254,8 @@

        1. Download a kernel. This is a Debian kernel, but it works fine:
          -	http://ftp.egr.msu.edu/debian/dists/stable/main/installer-mipsel/current/images/cdrom/vmlinux-2.4.27-r3k-kn02
          +	http://ftp.egr.msu.edu/debian/dists/stable/main/
          +	    installer-mipsel/current/images/cdrom/vmlinux-2.4.27-r3k-kn02
           
           
        2. Download a root filesystem tree:
          @@ -1283,7 +1284,7 @@
           
          (Note sda1 instead of sdc1.)

        3. To boot Linux, start the emulator like this:
          -	$ gxemul -E dec -e 3max -U -M128 -o \
          +	gxemul -e 3max -U -M128 -o \
           	    "console=ttyS3 root=/dev/sda1 ro" -d redhat.img vmlinux-2.4.27-r3k-kn02
           
           
          @@ -1291,7 +1292,7 @@

          If you need to boot into single user mode, try the following:

          -	$ gxemul -E dec -e 3max -U -o "console=ttyS3 root=/dev/sda1 rw init=/bin/sh" \
          +	gxemul -e 3max -U -o "console=ttyS3 root=/dev/sda1 rw init=/bin/sh" \
           	    -d redhat.img vmlinux-2.4.27-r3k-kn02
           
           
          @@ -1355,20 +1356,21 @@

          1. Compile gxemul with cache emulation: (NOTE: --enable-caches)
            -	$ ./configure --enable-caches; make
            +	./configure --enable-caches; make
             
             
          2. Download the pmax binary distribution for Mach 3.0:
            -        http://lost-contact.mit.edu/afs/athena/user/d/a/daveg/Info/Links/Mach/src/release/pmax.tar.Z
            +	http://lost-contact.mit.edu/afs/athena/user/d/a/
            +	    daveg/Info/Links/Mach/src/release/pmax.tar.Z
             	7263343 bytes, md5 = f9d76c240a6e169921a1df99ad560cc0
             
             
          3. Extract the Mach kernel:
            -        $ tar xfvz pmax.tar.Z pmax_mach/special/mach.boot.MK83.STD+ANY
            +        tar xfvz pmax.tar.Z pmax_mach/special/mach.boot.MK83.STD+ANY
             
             
          4. Create an empty disk image:
            -	$ dd if=/dev/zero of=disk.img bs=1 count=512 seek=400000000
            +	dd if=/dev/zero of=disk.img bs=1 count=512 seek=400000000
             
             
          5. Load the contents of pmax.tar.Z onto the disk image. This is @@ -1385,7 +1387,7 @@ cd /; sync; umount /mnt)

          6. Start the emulator with the following command:
            -	$ gxemul -E dec -e 3max -X -d disk.img \
            +	gxemul -e 3max -X -d disk.img \
             	    pmax_mach/special/mach.boot.MK83.STD+ANY
             
             
            @@ -1414,27 +1416,27 @@

            GXemul does not yet emulate the AHC PCI SCSI controller in the O2. (I have mailed Adaptec several times, asking for documentation, but never received -any reply.) OpenBSD/sgi can still run, as long as it doesn't use SCSI. For -a simple test with the ramdisk (install) kernel, try dowloading

            +any reply.) OpenBSD/sgi can still run in the emulator, as long as it doesn't
            +use SCSI. For a simple test with the ramdisk (install) kernel, try dowloading
             	ftp://ftp.se.openbsd.org/pub/OpenBSD/3.7/sgi/bsd.rd
             
            -
            and run gxemul -E sgi -e o2 bsd.rd. +
            and run gxemul -e o2 bsd.rd.

            It might also be possible to netboot. Another emulated machine must then be used as the nfs root server, and the emulated O2 machine must boot -as a diskless +as a diskless client. Performing this setup is quite time consuming, but necessary:

            1. First of all, the "nfs server" machine must be set up. This needs to have a 800 MB /tftpboot partition. - Install NetBSD/pmax 2.0.2 from CDROM - inside the emulator. (Don't forget to add the extra partition!) + Install NetBSD/pmax 2.0.2 from CDROM. + (Don't forget to add the extra partition!)

            2. Configure the nfs server machine to act as an nfs server. Start up the emulated DECstation:
              -	$ gxemul -M64 -Edec -e3max -d nbsd_pmax.img
              +	gxemul -e 3max -A -d nbsd_pmax.img
               
              and enter the following commands as root inside the emulator:
                     
              @@ -1452,18 +1454,19 @@
               echo 10.0.0.1 client > /etc/hosts
               reboot
               
              -
            3. Start the DECstation emulation again, and download the - OpenBSD/sgi distribution:
              (NOTE: This +
            4. Start the DECstation emulation again, and enter the following + commands to download the OpenBSD/sgi distribution:
              (NOTE: This takes quite some time, even if you have a fast network connection.)
                     
               cd /tftpboot; ftp -i ftp.se.openbsd.org
               (log in as anonymous...)
               cd pub/OpenBSD/3.7/sgi
              -mget b* c* e* g* m*
              +mget b*tgz c* e* g* m*
               quit
               sh
               for a in *.tgz; do echo $a; tar zxfp $a; done
               echo 10.0.0.2:/tftpboot / nfs rw 0 0 > /tftpboot/etc/fstab
              +rm *.tgz
               dd if=/dev/zero of=swap bs=1024 count=32768
               halt
               
              @@ -1485,7 +1488,7 @@ emul( net( - add_remote("127.0.0.1:12444") ! the server + add_remote("localhost:12444") ! the server local_port(12445) ! the client ) @@ -1508,7 +1511,7 @@ emul( net( local_port(12444) ! the server - add_remote("127.0.0.1:12445") ! the client + add_remote("localhost:12445") ! the client ) machine( @@ -1525,25 +1528,25 @@
            5. Boot the "nfs server" and the OpenBSD/sgi "client machine" as two separate emulator instances:
               	in one xterm:
              -	$ gxemul @config_server
              +	gxemul @config_server
               
               	and then, in another xterm:
              -	$ gxemul @config_client
              +	gxemul @config_client
               
               
              -
            6. In the OpenBSD/sgi window, choose "S" (for Shell), and type: +
            7. In the OpenBSD/sgi window, choose "s" (for Shell), and type:
                     
               ifconfig mec0 10.0.0.1; route add default 10.0.0.254
               mount -v 10.0.0.2:/tftpboot /mnt
               cd /mnt/dev; ./MAKEDEV all; cd /; umount /mnt
               halt
               
              + You might want to log in as root on the server machine, and + run tcpdump -lnvv or similar, to see that what the client + machine actually does on the network. The MAKEDEV script + takes almost forever, so be patient.
            -

            You might want to log in as root on the server machine, and -run tcpdump -lnvv or similar, to see that what the client machine -actually does on the network. The MAKEDEV script takes almost -forever, so be patient.

            NOTE: Everything up to this point should work. However, the next step (in gray) doesn't actually work: