--- trunk/doc/guestoses.html 2007/10/08 16:18:19 8 +++ trunk/doc/guestoses.html 2007/10/08 16:18:27 10 @@ -1,5 +1,4 @@ - -GXemul documentation: Installing and running "guest OSes" +GXemul documentation: Installing and running "guest OSes" @@ -12,7 +11,7 @@ -
  • Installing OpenBSD/pmax in GXemul -
  • Installing OpenBSD/arc in GXemul - -
  • Installing Ultrix/RISC in GXemul -
  • Running Sprite for DECstation in GXemul -
  • Installing Debian GNU/Linux for DECstation in GXemul -
  • Running Redhat Linux for DECstation in GXemul -
  • Running Mach/PMAX in GXemul +
  • NetBSD/pmax +
  • NetBSD/arc +
  • NetBSD/hpcmips +
  • NetBSD/cobalt +
  • NetBSD/evbmips +
  • NetBSD/sgimips +
  • OpenBSD/pmax +
  • OpenBSD/arc +
  • Ultrix/RISC +
  • Sprite for DECstation +
  • Debian GNU/Linux for DECstation +
  • Redhat Linux for DECstation + + +

    In addition to the "working" guest operating systems listed above, +you might find the following information interesting: +

    @@ -96,18 +97,16 @@


    -

    Installing NetBSD/pmax in GXemul:

    +

    NetBSD/pmax:

             -

    -To install NetBSD/pmax onto a harddisk image in the emulator, follow these -instructions: +

    To install NetBSD/pmax +onto a harddisk image in the emulator, follow these instructions: -

    -

      +

      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
        @@ -127,41 +126,31 @@
           
      2. Download a NetBSD CD-ROM iso image:
         	ftp://ftp.netbsd.org/pub/NetBSD/iso/1.6.2/pmaxcd.iso
         	or
        -	ftp://ftp.netbsd.org/pub/NetBSD/iso/2.0/pmaxcd.iso
        +	ftp://ftp.netbsd.org/pub/NetBSD/iso/2.0.2/pmaxcd.iso
         
         
      3. Start the emulator like this:
        -	$ gxemul -X -b -E dec -e 3max -d nbsd_pmax.img -d bc:pmaxcd.iso
        +	$ gxemul -X -E dec -e 3max -d nbsd_pmax.img -d bc:pmaxcd.iso
         
        + and proceed like you would do if you were installing NetBSD on a real + DECstation.

      For an ftp install, substitute steps 2 and 3 above with these:

        -
      1. Download a NetBSD pmax INSTALL kernel, and gunzip it:
        +  
      2. Download a NetBSD pmax INSTALL kernel:
         	ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6.2/pmax/binary/kernel/netbsd-INSTALL.gz
         	or
        -	ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/pmax/binary/kernel/netbsd-INSTALL.gz
        -
        -	$ gunzip netbsd-INSTALL.gz
        +	ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0.2/pmax/binary/kernel/netbsd-INSTALL.gz
         
         
      3. Start the emulator like this:
        -	$ gxemul -X -b -E dec -e 3max -d nbsd_pmax.img -O netbsd-INSTALL
        +	$ gxemul -X -E dec -e 3max -d nbsd_pmax.img -O netbsd-INSTALL.gz
         
        -
      - -

      -(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'.) - -

      -Then proceed like you would do if you were installing NetBSD on a real -DECstation. If you are installing from the network, then suitable networking -parameters are as follows:

      +	and proceed like you would do if you were installing NetBSD on a real
      +	DECstation. Suitable networking parameters are as follows:
       	Which device shall I use? [le0]: le0
       	..
       	Your DNS domain: mydomain.com
      @@ -171,28 +160,32 @@
       	IPv4 gateway: 10.0.0.254
       	IPv4 name server: 10.0.0.254
       
      + (If using 10.0.0.254 as the nameserver fails, then try entering the + IP number of a real-world nameserver instead.) +
    -

    -(If using 10.0.0.254 as the nameserver fails, then try entering the -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.) -

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

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

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

    Use startx to start X windows.

    -NOTE: For some reason, NetBSD 2.0 doesn't +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.

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

    -	$ gxemul -E dec -e 3max -b -d nbsd_pmax.img
    +	$ gxemul -E dec -e 3max -d nbsd_pmax.img
     
    @@ -203,9 +196,11 @@


    -

    Installing NetBSD/arc in GXemul:

    +

    NetBSD/arc:

    -It is possible to run NetBSD/arc on an emulated Acer PICA-61 in the emulator. +It is possible to run NetBSD/arc +on an emulated Acer PICA-61 in the emulator.

             @@ -227,7 +222,7 @@

  • Start the emulator using this command line:
    -	$ gxemul -E arc -e pica -x -b -d nbsd_arc.img -d bc:arccd.iso \
    +	$ gxemul -E arc -e pica -x -d nbsd_arc.img -d bc:arccd.iso \
     	  -j arc/binary/kernel/netbsd.RAMDISK.gz
     
     
    @@ -253,22 +248,19 @@ $ halt -
  • Download a generic NetBSD/arc kernel, - and gunzip it:
    +  
  • Download a generic NetBSD/arc kernel:
     	ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6.2/arc/binary/kernel/netbsd-GENERIC.gz
     
     
    -

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

    -

    -	$ gxemul -E arc -e pica -xb -d nbsd_arc.img netbsd-GENERIC
    +

    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
     
     
    +

    When asked for "root device: ", enter sd0. @@ -278,15 +270,15 @@


    -

    Installing NetBSD/hpcmips in GXemul:

    +

    NetBSD/hpcmips:

    -It is possible to install NetBSD/hpcmips onto a disk image, on an an -emulated MobilePro 770, 780, 800, or 880. The emulator treats the -different machine models as being almost identical; the most important -difference is regarding the framebuffer. +It is possible to install NetBSD/hpcmips onto a disk +image, on an an emulated MobilePro 770, 780, 800, or 880. The emulator +treats the different machine models as being almost identical; the most +important difference is regarding the framebuffer. -

    - +

    @@ -356,13 +348,13 @@ $ dd if=/dev/zero of=nbsd_hpcmips.img bs=1024 count=1 seek=1990000 -
  • Download the NetBSD 2.0 for hpcmips ISO image:
    -	ftp://ftp.se.netbsd.org/pub/NetBSD/iso/2.0/hpcmipscd.iso
    +  
  • Download the NetBSD 2.0.2 for hpcmips ISO image:
    +	ftp://ftp.se.netbsd.org/pub/NetBSD/iso/2.0.2/hpcmipscd.iso
     
     
    (You may want to choose a mirror closer to you, if .se is slow.)

  • Start the installation like this:
    -	$ gxemul -E hpc -e mobilepro800 -b -X -d nbsd_hpcmips.img  \
    +	$ gxemul -E hpc -e mobilepro800 -X -d nbsd_hpcmips.img  \
     	  -d b:hpcmipscd.iso -j hpcmips/installation/netbsd.gz
     
     
    @@ -376,20 +368,23 @@ 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/hpcmips/binary/kernel/netbsd-GENERIC.gz
    +	ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0.2/hpcmips/binary/kernel/netbsd-GENERIC.gz
     
     
    -

    -Once you have gunziped the generic kernel, you can now use it to boot from -the harddisk image, using the following command:

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

    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
     
     
    -

    -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 +

    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.) @@ -401,7 +396,7 @@


    -

    Installing NetBSD/cobalt in GXemul:

    +

    NetBSD/cobalt:

    NetBSD/cobalt is tricky to install, because the Cobalt machines were designed for Linux, and not @@ -424,38 +419,37 @@ $ dd if=/dev/zero of=nbsd_cobalt.img bs=1024 count=1 seek=1999000
    -
  • Download the generic kernel for Cobalt (and gunzip it) and - the 2.0 ISO image:
    -	ftp://ftp.se.netbsd.org/pub/NetBSD/NetBSD-2.0/cobalt/binary/kernel/netbsd-GENERIC.gz
    -	ftp://ftp.se.netbsd.org/pub/NetBSD/iso/2.0/cobaltcd.iso
    +  
  • 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
     
     
    (You may want to choose a mirror closer to you, if .se is slow.)

    -

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

  • Start NetBSD/pmax like this:
    -	$ gxemul -b -Edec -e3max -d nbsd_pmax.img -d cobaltcd.iso -d nbsd_cobalt.img
    +	$ gxemul -Edec -e3max -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
    +	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 -b -M128 -E cobalt -d nbsd_cobalt.img netbsd-GENERIC
    +	$ gxemul -M128 -E cobalt -d nbsd_cobalt.img netbsd-GENERIC.gz
     
    Note that the installation instructions above create a filesystem @@ -474,37 +468,271 @@ - +

    Note: Netbooting like this is very slow, so you need a lot of patience. +For example, when NetBSD says "nfs_boot: trying DHCP/BOOTP", +there will be a long pause, even on a very fast host machine. The reason +for this is mostly because the emulator doesn't deal with timing issues +very well, but also because NetBSD tries IPv6 first, before falling back +to IPv4. @@ -514,14 +742,15 @@


    -

    Installing OpenBSD/pmax in GXemul:

    +

    OpenBSD/pmax:

    -Installing OpenBSD/pmax is a bit harder than installing NetBSD/pmax. -You should first read the section above on how to install NetBSD/pmax, +Installing OpenBSD/pmax is +a bit harder than installing NetBSD/pmax. You should first read the section above on how to install NetBSD/pmax, before continuing here. If you have never installed OpenBSD on any -architecture, then you need a great deal of patience to do this. -If, on the other hand you are used to installing OpenBSD, then -this should be no problem for you. +architecture, then you need a great deal of patience to do this. If, on +the other hand you are used to installing OpenBSD, then this should be no +problem for you.

             @@ -557,14 +786,14 @@

  • 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 + (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.
    +	to install it in order to do this.)
     	$ mkisofs -o openbsd_pmax_2.8.iso ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax
     
     
  • Start the emulator with all three (!) disk images:
    -	$ gxemul -E dec -e 3max -b -d obsd_pmax.img -d b:simpleroot28.fs -j bsd -d c:openbsd_pmax_2.8.iso
    +	$ gxemul -E dec -e 3max -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 @@ -595,13 +824,11 @@ the directory containing the install sets.

    -

  • -For some unknown reason, the install script does not set the root -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 -b -d obsd_pmax.img -d 2c:openbsd_pmax_2.8.iso -j bsd -o '-s'
    +  
  • For some unknown reason, the install script does not set the root + 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'
     
    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 @@ -609,19 +836,19 @@

    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
     
    @@ -635,7 +862,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 -b -X -M64 -o '-aN' -d obsd_pmax.img -j bsd
    +	$ gxemul -E dec -e 3max -X -M64 -o '-aN' -d obsd_pmax.img -j bsd
     

    @@ -653,9 +880,10 @@ +


    -

    Installing OpenBSD/arc in GXemul:

    +

    OpenBSD/arc:

    It is possible to run OpenBSD/arc on an emulated Acer PICA-61 in the emulator. @@ -688,14 +916,14 @@
  • 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 + (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.
    +	to install it in order to do this.)
     	$ mkisofs -o openbsd_arc_2.3.iso ftp.se.openbsd.org/pub/OpenBSD/
     
     
  • Start the emulator using this command line:
    -	$ gxemul -X -b -E arc -e pica -d obsd_arc.img -d b:openbsd_arc_2.3.iso -j 2.3/arc/bsd.rd
    +	$ gxemul -X -E arc -e pica -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 @@ -708,7 +936,7 @@ boot from the harddisk image:

    -	$ gxemul -X -b -E arc -e pica -d obsd_arc.img ftp.se.openbsd.org/pub/OpenBSD/2.3/arc/bsd
    +	$ gxemul -X -E arc -e pica -d obsd_arc.img ftp.se.openbsd.org/pub/OpenBSD/2.3/arc/bsd
     
     
    @@ -716,120 +944,15 @@ - - - -


    -

    Installing Ultrix/RISC in GXemul:

    +

    Ultrix/RISC:

    Ultrix 4.x can run in GXemul on an emulated DECstation 5000/200. +(Ultrix was the native OS for these machines, but NetBSD/pmax is +also usable.)

             @@ -850,7 +973,7 @@ (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 -b -M64 -E dec -e 3max -d rootdisk.img -d bc:/dev/cd0c -j vmunix
    +        $ gxemul -X -M64 -E dec -e 3max -d rootdisk.img -d bc:/dev/cd0c -j vmunix
     
     
  • Once the first stage of the installation is done (restoring the root @@ -858,7 +981,7 @@ new rootdisk, to continue the installation process. This is done by removing the bootflag ('b') from the second diskimage argument:
    -        $ gxemul -X -b -M64 -E dec -e 3max -d rootdisk.img -d c:/dev/cd0c -j vmunix
    +        $ gxemul -X -M64 -E dec -e 3max -d rootdisk.img -d c:/dev/cd0c -j vmunix
     
     
    @@ -866,19 +989,18 @@

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

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

    -Ultrix mostly seems to work with dynamic binary translation (enabled by -the -b command line option). If you have a very fast -host machine, and use bintrans, you might experience a weird timer related -bug, which makes it impossible to logon to the system. It is triggered -when the emulation goes faster than any real DECstation machine was -capable of running. A temporary workaround is to add -I33000000 -to fix the emulated clock speed to 33 million instructions per emulated -second. (When using -CR4400, -I16000000 -should be used instead.) +

    Ultrix mostly seems to work with dynamic binary translation (which can +be disabled by the -B command line option). If you have a +very fast host machine, and use bintrans, you might experience a weird +timer related bug, which makes it impossible to logon to the system. It is +triggered when the emulation goes faster than any real DECstation machine +was capable of running. A temporary workaround is to add +-I33000000 to fix the emulated clock speed to 33 million +instructions per emulated second. (When using -CR4400, +-I16000000 should be used instead.)

    You can experiment with adding -Z2 (for emulating a @@ -889,7 +1011,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 -bN -E dec -e 3max -jgenvmunix -d rootdisk.img \
    +        $ gxemul -M64 -N -E dec -e 3max -jgenvmunix -d rootdisk.img \
                 -XZ3 -z remote1:0.0 -z localhost:0.0 -z remote2:0.0
     
    @@ -930,7 +1052,7 @@


    -

    Running Sprite for DECstation in GXemul:

    +

    Sprite for DECstation:

    Sprite was a research operating system at the University of Berkeley. The Unix Heritage Society (TUHS, www.tuhs.org) @@ -950,14 +1072,13 @@

      -
    1. Download the Sprite harddisk image using ftp or http:
      -	http://www.es.embnet.org/Services/ftp/misc/TUHS/other_os/Sprite/ds5000.bt
      -	or ftp://ftp.es.embnet.org/pub/misc/TUHS/other_os/Sprite/ds5000.bt
      +  
    2. Download the Sprite harddisk image:
      +	ftp://ftp.es.embnet.org/pub/misc/TUHS/other_os/Sprite/ds5000.bt
       	83973120 bytes, MD5 = ec84eeeb20fe77b758370d5e312e4a5e
       
       
    3. Start the emulator with the following command line:
      -	$ gxemul -X -b -E dec -e 3max -M128 -d ds5000.bt -j vmsprite -o ''
      +	$ gxemul -X -E dec -e 3max -M128 -d ds5000.bt -j vmsprite -o ''
       
       
    @@ -969,7 +1090,7 @@

    -    Your machine's Ethernet address:    10:20:30:40:50:60
    +    Your machine's Ethernet address:    10:20:30:00:00:10
         Your machine's IP:                  10.0.0.1
         Subnet mask:                        0xff000000
         Gateway's Ethernet address:         60:50:40:30:20:10
    @@ -977,18 +1098,17 @@
     

    -Unfortunately, at the end of -http://www.es.embnet.org/Services/ftp/misc/TUHS/other_os/Sprite/boot.txt, the -following sad statement can be found: +Unfortunately, at the end of ftp://ftp.es.embnet.org/pub/misc/TUHS/other_os/Sprite/boot.txt, +the following sad statement can be found:

         The bootable Sprite image is meant to be a demonstration of Sprite, not
         a robust Sprite system.  There are several missing things, such as 
         floating point and network support.
     
    -

    -Once you are logged in as root, running xinit will start the X11 -environment. +

    Once you are logged in as root, running xinit will +start the X11 environment. + @@ -996,17 +1116,21 @@


    -

    Installing Debian GNU/Linux for DECstation in GXemul:

    +

    Debian GNU/Linux for DECstation:

    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. -I think this has to do with interrupts from the serial controller. +(for example the wrong cursor key) can cause a kernel Oops. My success +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.) - + +

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

             @@ -1030,73 +1154,47 @@

  • Download an install kernel:
    -	http://http.us.debian.org/debian/dists/testing/main/
    -	    installer-mipsel/current/images/r3k-kn02/boot.img
    -	or
    -	http://http.us.debian.org/debian/dists/unstable/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
     
     
    - depending on whether you want to install Debian "Testing" or - "Unstable".

  • For a text-mode installation, start the emulator like this:
    -	$ gxemul -E dec -e 3max -b -U -M64 -o 'console=ttyS3' -d debian.img -O boot.img
    +	$ gxemul -E dec -e 3max -U -M64 -o 'console=ttyS3' -d debian.img -O boot.img
     
     
    - - -

    -Debian GNU/Linux on DECstation works reasonably fine with dynamic -binary translation, enabled by the -b command line option. -(Without this option, the emulator might be less buggy, but also too slow -to be useful when running Linux as a guest OS.) - -

    -(If you want to, you can try -X instead of -o 'console=ttyS3' on -the command line. This will cause Linux to use the graphical framebuffer. -Unfortunately, Linux does not seem to have a driver for the DZ11 keyboard -controller yet, so you cannot interact with the system. You will see the -penguin in the upper lefthand corner while booting, and nicely rendered Unicode -characters, but that's about it.) - -

    -You need to enter some values during the installation procedure, for example -network settings. The following should work: -

    -

    -    DHCP:                       No, choose "Configure network manually"
    -    IP address:                 10.0.0.1
    -    Netmask:                    255.0.0.0
    -    Gateway:                    10.0.0.254
    -    Name server addresses:      10.0.0.254
    +	(If you want to, you can try -X instead of
    +	-o 'console=ttyS3' on the command line. This will
    +	cause Linux to use the graphical framebuffer. Unfortunately, Linux
    +	does not seem to have a driver for the DZ11 keyboard controller yet,
    +	so you cannot interact with the system. You will see the penguin in
    +	the upper lefthand corner while booting, and nicely rendered Unicode
    +	characters, but that's about it.)
    +	

    + You need to enter some values during the installation procedure, for + example network settings. The following should work:

    +	DHCP:                       No, choose "Configure network manually"
    +	IP address:                 10.0.0.1
    +	Netmask:                    255.0.0.0
    +	Gateway:                    10.0.0.254
    +	Name server addresses:      10.0.0.254
     
    - -

    -

    1. 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 -b -M64 -o 'console=ttyS3' -d debian.img
      -
      -
      -
    + $ gxemul -E dec -e 3max -U -M64 -o 'console=ttyS3' -d debian.img -

    -It seems that there's a problem with getting a login prompt on serial -console (at least when I've done test installs), so when the installation -is finished and you're supposed to get a login prompt, you need to press -CTRL-C and type quit, and then: - -

    -

      -
    1. Download a normal kernel (not a RAMDISK kernel):
      -	http://http.us.debian.org/debian/dists/testing/main/
      -	 installer-mipsel/current/images/cdrom/vmlinux-2.4.27-r3k-kn02
      +
      Note: All these steps take a lot of time, so you will have plenty + of time to drink lots of cups of coffee. +

      +

    2. It seems that there's a problem with getting a login prompt on serial + console (at least when I've done test installs), so when the + 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
       
      -
      -
    3. Boot Debian using the following command line:
      -	$ gxemul -E dec -e 3max -U -b -M64 -o \
      +
      and boot Debian using the following command line:
      +	$ gxemul -E dec -e 3max -U -M64 -o \
       	    'console=ttyS3 root=/dev/sda1 rw init=/bin/sh' \
       	    -d debian.img vmlinux-2.4.27-r3k-kn02
       
      @@ -1106,6 +1204,7 @@
       	sh-2.05b# echo 'T3:23:respawn:/sbin/getty -L ttyS3 9600 vt100' >> /etc/inittab
       	sh-2.05b# echo 'ttyS3' >> /etc/securetty
       	sh-2.05b# sync; umount /
      +	sh-2.05b# halt
       
    @@ -1114,7 +1213,7 @@

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

    -	$ gxemul -E dec -e 3max -U -b -M64 -o 'console=ttyS3' -d debian.img
    +	$ gxemul -E dec -e 3max -U -M64 -o 'console=ttyS3' -d debian.img
     
     
    @@ -1138,7 +1237,7 @@


    -

    Running Redhat Linux for DECstation in GXemul:

    +

    Redhat Linux for DECstation:

    NOTE: This is experimental, and extremely unstable. Read the note about -U in the section on how to @@ -1155,8 +1254,7 @@

    1. Download a kernel. This is a Debian kernel, but it works fine:
      -	http://http.us.debian.org/debian/dists/testing/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:
      @@ -1185,7 +1283,7 @@
       
      (Note sda1 instead of sdc1.)

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

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

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

      -Redhat Linux on DECstation in R3000 mode should work fine with dynamic binary -translation (enabled by the -b command line option). +

      Redhat Linux on DECstation in R3000 mode should work fine with dynamic +binary translation, but if things are buggy, it can be disabled by +using the -B command line option.

      NOTE: You can add -X and remove console=ttyS3 from the command @@ -1223,8 +1321,17 @@


      +


      + + + + + + + +


      -

      Running Mach/PMAX in GXemul:

      +

      Mach/PMAX:

      Read the following link if you want to know more about Mach in general: @@ -1286,6 +1393,185 @@ + + + + +


      +
      +

      OpenBSD/sgi:

      + +OpenBSD/sgi +can (almost) run in GXemul on an emulated O2 (SGI-IP32) with root on nfs. + +

      +         + + +

      NOTE: I haven't succeeded all the way with +this yet, and this shows/triggers many bugs in the emulator, but some of +it works. + +

      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

      +	ftp://ftp.se.openbsd.org/pub/OpenBSD/3.7/sgi/bsd.rd
      +
      +
      and run gxemul -E sgi -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 +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!) +

        +

      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
        +
        and enter the following commands as root + inside the emulator: +
  •   Model:
           
    +echo hostname=server >> /etc/rc.conf
    +echo ifconfig_le0=\"inet 10.0.0.2\" >> /etc/rc.conf
    +echo nameserver 10.0.0.254 >> /etc/resolv.conf
    +echo 10.0.0.254 > /etc/mygate
    +echo /tftpboot -maproot=root 10.0.0.1 > /etc/exports
    +echo rpcbind=YES >> /etc/rc.conf
    +echo nfs_server=YES >> /etc/rc.conf
    +echo mountd=YES >> /etc/rc.conf
    +echo bootparamd=YES >> /etc/rc.conf
    +printf "client root=10.0.0.2:/tftpboot \\\n swap=10.0.0.2:/tftpboot/swap\n" > /etc/bootparams
    +echo "10:20:30:00:00:10 client" > /etc/ethers
    +echo 10.0.0.1 client > /etc/hosts
    +reboot
    +
    +

  • Start the DECstation emulation again, and 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*
    +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
    +dd if=/dev/zero of=swap bs=1024 count=32768
    +halt
    +
    +
  • Download the OpenBSD/sgi GENERIC and RAMDISK kernels:
    +	ftp://ftp.se.openbsd.org/pub/OpenBSD/3.7/sgi/bsd
    +	MD5 (bsd) = f16eaf3dcbd51876db7c25f70e6d8a08
    +	ftp://ftp.se.openbsd.org/pub/OpenBSD/3.7/sgi/bsd.rd
    +	MD5 (bsd.rd) = 4843e6139d8dd04b03d5f0e33e9a4f7b
    +
    +
    +
  • Create a configuration file called config_client: +
           
    +!!gxemul
    +!
    +!  Configuration file for running OpenBSD/sgi diskless with
    +!  a NetBSD/pmax machine as the nfs server.
    +!
    +!  This config file is for the client.
    +
    +emul(
    +    net(
    +	add_remote("127.0.0.1:12444")   ! the server
    +	local_port(12445)               ! the client
    +    )
    +
    +    machine(
    +	name("client machine")
    +	serial_nr(1)
    +
    +        type("sgi")
    +        subtype("o2")
    +
    +        ! load("bsd")
    +        load("bsd.rd")
    +    )
    +)
    +
    + ... and another configuration file for the server, + config_server: +
           
    +!!gxemul
    +emul(
    +    net(
    +	local_port(12444)               ! the server
    +	add_remote("127.0.0.1:12445")   ! the client
    +    )
    +
    +    machine(
    +	name("nfs server")
    +	serial_nr(2)
    +
    +        type("dec")
    +        subtype("5000/200")
    +
    +        disk("nbsd_pmax.img")
    +    )
    +)
    +
    +
  • Boot the "nfs server" and the OpenBSD/sgi + "client machine" as two separate emulator instances:
    +	in one xterm:
    +	$ gxemul @config_server
    +
    +	and then, in another xterm:
    +	$ gxemul @config_client
    +
    +
    +
  • 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. + +

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

    Once everything has been set up correctly, change +bsd.rd in config_client to just bsd (the GENERIC +kernel). It should now be possible to boot OpenBSD/sgi using the NetBSD/pmax +nfs server. (When asked for "root device :" on the OpenBSD machine, +enter mec0.) + +

    But it doesn't work. Probably because GXemul's +implementation of the mec (ethernet card used in the O2) is too much of +a quick hack. For now, use the bsd.rd kernel, and (at every +boot) type:

    +	s  (for Shell)
    +	ifconfig mec0 10.0.0.1; route add default 10.0.0.254
    +	mount -v 10.0.0.2:/tftpboot /mnt
    +	cd /mnt; usr/sbin/chroot .
    +	sh etc/rc
    +
    + +

    This will not cause OpenBSD to be booted +normally, but at least a few basic things will work. +By the way, the emulator performs so poorly, that you will have time to +fetch several cups of coffee for each of the steps above. + + +