--- trunk/doc/guestoses.html 2007/10/08 16:18:11 6 +++ trunk/doc/guestoses.html 2007/10/08 16:22:56 44 @@ -1,21 +1,18 @@ - -GXemul documentation: Installing and running "guest OSes" - +Gavare's eXperimental Emulator:   Installing and running "guest OSes" +
-GXemul documentation:        +GXemul:   Installing and running "guest OSes"

- - + Back to the index


@@ -50,23 +48,27 @@

@@ -79,15 +81,46 @@

General notes on running "guest OSes":

The emulator works well enough to run complete operating systems. These -are often refered to as "guest" operating systems. +are often refered to as guest operating systems, in contrast to the +host operating system which the emulator is running under. -

-Although it is possible to let a guest OS access real hardware, such as -harddisks, it is much more flexible and attractive to simulate harddisks -using files residing in the host's filesystem. On Unix-like systems, files -may contain holes, which makes this really simple. To the guest operating +

Although it is possible to let a guest OS access real hardware, such as +harddisks, it is much more flexible and attractive to simulate harddisks +using files residing in the host's filesystem. On Unix-like systems, files +may contain holes, which makes this really simple. To the guest operating system, the harddisk image looks and acts like a real disk. +

The version numbers of the various operating systems were the latest +versions that worked satisfactory with GXemul at the time this page was +updated; if new versions have been released since then, they might work as +well. + +

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

+ +

NOTE: +Some of these sections may not be relevant to this +specific release of GXemul, for example some of these +modes may be legacy modes that worked before but not any longer, +or are not yet working but could be in the future. + +

Some operating systems are listed with a version number less +than what was available at the time of this GXemul release (e.g. +NetBSD/prep). The reasons for this is because of incompleteness in +GXemul's machine, device, and/or processor implementations. @@ -96,105 +129,54 @@


- -

Installing NetBSD/pmax in GXemul:

+ +

NetBSD/pmax:

-

-         +

NetBSD/pmax was the +first guest OS that could be +installed +onto a disk image in GXemul. The device emulation of the DECstation +5000/200 is reasonably complete; it should be enough to emulate a +networked X-windows-capable workstation. + +

         -

-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
      +	dd if=/dev/zero of=nbsd_pmax.img bs=1024 count=1 seek=3000000
       
       
      -
    - -

    -From this point, there are two separate ways to continue the installation. -You can either download a CD-ROM iso image (and let the installation -program copy files from the CD-ROM image to the harddisk image), or you -can install via ftp. For an installation from a CD-ROM image, follow these -steps: -

    -

      -
    1. 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
      -
      -
      -
    2. Start the emulator like this:
      -	$ gxemul -X -b -E dec -e 3max -d nbsd_pmax.img -d bc:pmaxcd.iso
      -
      -
    -

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

    -

      - -
    1. Download a NetBSD pmax INSTALL kernel, and gunzip it:
      -	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/iso/4.0/pmaxcd-4.0.iso
       
       
    2. Start the emulator like this:
      -	$ gxemul -X -b -E dec -e 3max -d nbsd_pmax.img -O netbsd-INSTALL
      +	gxemul -X -e 3max -d nbsd_pmax.img -d b:pmaxcd-4.0.iso
       
    -

    -(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:

    -	Which device shall I use? [le0]: le0
    -	..
    -	Your DNS domain: mydomain.com
    -	Your host name: foo
    -	Your IPv4 number: 10.0.0.1
    -	IPv4 Netmask [0xff000000]: 0xff000000
    -	IPv4 gateway: 10.0.0.254
    -	IPv4 name server: 10.0.0.254
    -
    +

    If you do not want to use the graphical framebuffer during the +install, you can skip the -X command line option. +Remember to enter xterm instead of vt100 when asked +about your terminal type, if you do this. -

    -(If using 10.0.0.254 as the nameserver fails, then try entering the -IP number of a real-world nameserver instead.) +

    You can also add -Y 2 to the command line options, if +you feel that the default framebuffer window is too large. -

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

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

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

    -Use startx to start X windows. +and log in as root. Type startx to start X windows. -

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

    (Remove -X if you only want a serial console.) -

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

    -	$ gxemul -E dec -e 3max -b -d nbsd_pmax.img
    -
    @@ -204,72 +186,70 @@


    -

    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 install and run NetBSD/arc +on an emulated Acer PICA-61 in the emulator.

            

    -To install NetBSD/arc from a CDROM image onto an emulated harddisk image, -follow these instructions: +To install NetBSD/arc from a CDROM image onto an emulated +harddisk image, 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_arc.img bs=1024 count=1 seek=900000
      +	dd if=/dev/zero of=nbsd_arc.img bs=1024 count=1 seek=1000000
       
       
      -
    2. Download a NetBSD/arc 1.6.2 CDROM image from ftp:
      -	ftp://ftp.netbsd.org/pub/NetBSD/iso/1.6.2/arccd.iso
      +  
    3. Download a NetBSD/arc 4.0 CDROM image, and a generic NetBSD/arc + kernel:
      +	ftp://ftp.netbsd.org/pub/NetBSD/iso/4.0/arccd-4.0.iso
      +	TODO:
      +	ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-archive/NetBSD-1.6.2/arc/binary/kernel/netbsd-GENERIC.gz
      +	ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-archive/NetBSD-1.6.2/arc/binary/kernel/netbsd-RAMDISK.gz
       
       
    4. Start the emulator using this command line:
      -	$ gxemul -E arc -e pica -x -b -d nbsd_arc.img -d bc:arccd.iso \
      -	  -j arc/binary/kernel/netbsd.RAMDISK.gz
      +	gxemul -e pica -x -d nbsd_arc.img -d b:arccd.iso netbsd-RAMDISK.gz
       
       
      (Try removing -x if you have problems with the xterm.)

    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, - and gunzip it:
      -	ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6.2/arc/binary/kernel/netbsd-GENERIC.gz
      -
      -
      + automatic installation program for NetBSD/arc 4.0. 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
      +(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 -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 pica -x -d nbsd_arc.img netbsd-GENERIC.gz
     
     
    +

    When asked for "root device: ", enter sd0. @@ -279,66 +259,13 @@


    -

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

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     Model:     Framebuffer size/depth:     Framebuffer address:
    MobilePro 770 (*2)640 x 240, 16 bits0xa000000
    MobilePro 780640 x 240, 16 bits0xa180100 (*)
    MobilePro 800800 x 600, 16 bits0xa000000
    MobilePro 880800 x 600, 16 bits0xa0ea600 (*)
    - -

    -(*) = not aligned at a 4 KB boundary, so it will not work -efficiently with the current bintrans system. Using this mode will still -work, but each load and store will be emulated much more slowly than is -possible with an aligned framebuffer. - -

    -(*2) = The MobilePro 770's cursor keys work differently -than the other models, for some reason. (This is a known bug.) +It is possible to install NetBSD/hpcmips onto a disk +image, on an an emulated MobilePro 770 or 800. (MobilePro 780 and 880 might +work too, but I don't test those for every release of the emulator. They +have unaligned framebuffers, and run a bit slower.)

             @@ -348,50 +275,40 @@

    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=3000000
       
       
      -
    2. Download the NetBSD 2.0 for hpcmips ISO image:
      -	ftp://ftp.se.netbsd.org/pub/NetBSD/iso/2.0/hpcmipscd.iso
      +  
    3. Download the NetBSD/hpcmips 3.1 ISO image, and a generic kernel:
      +	ftp://ftp.netbsd.org/pub/NetBSD/iso/3.1/hpcmipscd-3.1.iso
      +	ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/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 -b -X -d nbsd_hpcmips.img  \
      -	  -d b:hpcmipscd.iso -j hpcmips/installation/netbsd.gz
      +	gxemul -e mobilepro770 -X -d nbsd_hpcmips.img -d b:hpcmipscd-3.1.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 - doing the MBR partitioning, and choose wd1d (not cd0c) as the - CDROM device to install from.) + MobilePro 770. (Install onto wd0, choose "Use entire disk" when + doing the MBR partitioning, and choose to install from CD-ROM.)

    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
    +Use the following command line to boot the emulated hpcmips machine:
    +	gxemul -e mobilepro770 -X -d nbsd_hpcmips.img 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
    -
    -
    - -

    -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. @@ -402,17 +319,17 @@


    -

    Installing NetBSD/cobalt in GXemul:

    +

    NetBSD/cobalt:

    -NetBSD/cobalt is tricky +NetBSD/cobalt is tricky to install, because the Cobalt machines were designed for Linux, and not -very flexible. There is no INSTALL kernel for NetBSD/cobalt. One way to -install the NetBSD/cobalt distribution onto a disk image is to do it from -another (emulated) machine. +very flexible. There is no traditional INSTALL kernel for NetBSD/cobalt. +One way to install the NetBSD/cobalt distribution onto a disk image is to +do it from another (emulated) machine.

             - +

    The following instructions will let you install NetBSD/cobalt onto a disk @@ -420,43 +337,43 @@

      +
    1. Download a NetBSD/pmax (DECstation) install RAMDISK kernel:
      +	ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/pmax/binary/kernel/netbsd-INSTALL.gz
      +
      +

    2. 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=700000
      +
      +
      +
    3. Download the generic kernel for Cobalt and the 3.1 ISO image:
      +	ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/cobalt/binary/kernel/netbsd-GENERIC.gz
      +	ftp://ftp.netbsd.org/pub/NetBSD/iso/3.1/cobaltcd-3.1.iso
       
       
      -
    4. 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
      -
      -
      (You may want to choose a mirror closer to you, if .se is slow.) -

      -

    5. Install NetBSD/pmax 2.0 according to instructions further up - on this page. -

      -

    6. Start NetBSD/pmax like this:
      -	$ gxemul -b -Edec -e3max -d nbsd_pmax.img -d cobaltcd.iso -d nbsd_cobalt.img
      -
      -
      -
    7. 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
      +  
    8. Start the emulated DECstation machine like this:
      +	gxemul -e 3max -d nbsd_cobalt.img -d cobaltcd-3.1.iso netbsd-INSTALL.gz
      +
       
      +
    9. At the Terminal type? [rcons] prompt, type CTRL-B +to simulate a CTRL-C sent to NetBSD/pmax. Then execute the following commands: +

             
      +newfs /dev/sd0c
      +mount /dev/cd0c /mnt
      +mkdir /mnt2; mount /dev/sd0c /mnt2
      +cd /mnt2; sh
      +for a in /mnt/*/binary/sets/[bcekmt]*.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 -E cobalt -d nbsd_cobalt.img netbsd-GENERIC.gz
     
    Note that the installation instructions above create a filesystem @@ -475,37 +392,573 @@ - + + + + + + + + +


    + +

    NetBSD/netwinder:

    + +It is possible to run NetBSD/netwinder +in GXemul. + +

             + +    + +

    There is no INSTALL ramdisk kernel, so one way to install the +NetBSD/netwinder distribution onto a disk image is to install the files +using another (emulated) machine. The following instructions will let you +install the NetBSD/netwinder distribution onto a disk image, from an +emulated DECstation 3MAX machine: + +

    +

      +
    1. Download a NetBSD/pmax (DECstation) install RAMDISK kernel:
      +	ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/pmax/binary/kernel/netbsd-INSTALL.gz
      +
      +

      +

    2. Create an empty harddisk image, which will be the disk image + that you will install NetBSD onto:
      +	dd if=/dev/zero of=nbsd_netwinder.img bs=1024 count=1 seek=999000
      +
      +
      +
    3. Download the generic kernel and the 3.1 ISO image:
      +	ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/netwinder/binary/kernel/netbsd-GENERIC.gz
      +	ftp://ftp.netbsd.org/pub/NetBSD/iso/3.1/netwindercd-3.1.iso
      +
      +
      +

      +

    4. Start the emulated DECstation machine like this:
      +	gxemul -e 3max -d nbsd_netwinder.img -d netwindercd-3.1.iso netbsd-INSTALL.gz
      +
      +
      +
    5. At the Terminal type? [rcons] prompt, type CTRL-B +to simulate a CTRL-C sent to NetBSD/pmax. Then execute the following commands: +

             
      +newfs /dev/sd0c
      +mount /dev/cd0c /mnt
      +mkdir /mnt2; mount /dev/sd0c /mnt2
      +cd /mnt2; sh
      +for a in /mnt/*/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
      +
      +

    + +

    NetBSD/netwinder is now installed on the disk image. The following command +line can be used to start NetBSD/netwinder:

    +	gxemul -X -E netwinder -d nbsd_netwinder.img netbsd-GENERIC.gz
    +
    + +

    This will result in a 1024x768 framebuffer. Add -Y2 to the +command line if you want to scale it down to 512x384. + +

    Note: The installation instructions above create a filesystem +without a disklabel, so there is only one ffs partition and no +swap. You will need to enter the following things when booting with the +generic kernel:

    +	root device (default wd0a): wd0c
    +	dump device (default wd0b): (just press enter)
    +	file system (default generic):    (just press enter)
    +	init path (default /sbin/init):   (just press enter)
    +
    + +

    Known bugs/problems: + +

      +
    • There is a long delay when starting up NetBSD/netwinder + (several seconds even on a very fast host machine), + so you need to be patient. +
    • There is a minor bug in the keyboard device, so you need to + press a key (any key) before typing wd0c. +
    • When halting/rebooting NetBSD/netwinder, the emulator + prints a message saying something about an internal + error. This doesn't matter; ignore the message. +
    + + + + + @@ -514,15 +967,330 @@


    - -

    Installing OpenBSD/pmax in GXemul:

    + +

    NetBSD/prep:

    + +It is possible to install and run NetBSD/prep 2.1 in GXemul on +an emulated IBM 6050 (PowerPC) machine. (Newer versions of NetBSD/prep use +the wdc controller in a way which isn't implemented in GXemul yet, or +there are bugs in GXemul's PowerPC CPU emulation.) + +

             + + +

    To install NetBSD/prep onto a disk image, follow these instructions: + +

    +

      +
    1. Create an empty harddisk image, which will be the root disk + that you will install NetBSD/prep onto:
      +    dd if=/dev/zero of=nbsd_prep.img bs=1024 count=1 seek=1000000
      +
      +
      +
    2. Download the NetBSD/prep 2.1 ISO image and the generic kernel:
      +    ftp://ftp.netbsd.org/pub/NetBSD/iso/2.1/prepcd.iso
      +    ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.1/prep/binary/kernel/netbsd-GENERIC.gz
      +
      +
      +

      +

    3. Start the installation like this:
      +    gxemul -X -e ibm6050 -d nbsd_prep.img -d rdb:prepcd.iso -j prep/binary/kernel/netbsd-INSTALL.gz
      +
      +
      +

      +

    4. Installation is a bit unsmooth, possibly due to bugs in GXemul, + possibly due to bugs in NetBSD itself; others have been having + problems on real hardware: http://mail-index.NetBSD.org/port-prep/2005/11/25/0004.html. + Creating an MBR slice and a disklabel with sysinst bugs out, so + some things have to be done manually:

      + At "(I)nstall, (S)hell, or (H)alt", choose + s. +
      # fdisk -u wd0 +
      Do you want to change our idea of what BIOS thinks? [n] + (just press ENTER) +
      Which partition do you want to change?: [none] 0 +
      sysid: ... (just press ENTER) +
      start: ... 1cyl +
      size: ... (just press ENTER) +
      Which partition do you want to change?: [none] (press ENTER) +
      Should we write new partition table? [n] y +
      # disklabel -I -i wd0 +
      partition> a +
      Filesystem type [?] [unused]: 4.2BSD +
      Start offset ('x' to start after partition 'x') [0c, 0s, 0M]: 1c +
      Partition size ('$' for all remaining) [0c, 0s, 0M]: 900M +
      partition> b +
      Filesystem type [?] [unused]: swap +
      Start offset ('x' to start after partition 'x') [0c, 0s, 0M]: a +
      Partition size ('$' for all remaining) [0c, 0s, 0M]: $ +
      partition> W +
      Label disk [n]? y +
      partition> Q +
      # newfs wd0a +
      # sysinst +
      Choose to install onto wd0. Choose + "a: Edit the MBR partition table" + when presented with that option. +
      Choose the 'a' partition/slice, + set the 'e' ("active") and 'f' ("install") fields to Yes, + and then choose "x: Partition table OK". +
      Choose "b: Use existing partition sizes" in the next + menu. +
      Select partition 'a' and press ENTER. Set field 'k' (mount point) + to '/'. +
      Get out of the partitioner by selecting + "x: Partition sizes ok" twice. +
      At "Write outside MBR partition? [n]:", just press + ENTER. +
      Install from CD-ROM, device wd1c. +

    + +

    If everything worked, NetBSD should now be installed on the disk image. +Use the following command line to boot the emulated machine:

    +	gxemul -X -e ibm6050 -d nbsd_prep.img netbsd-GENERIC.gz
    +
    +
    + +

    When asked which the root device is, type wd0 and +just press ENTER to select the default values for dump device, file +system type, and init path. + + + + + + + + + + + -Installing OpenBSD/pmax is a bit harder than installing NetBSD/pmax. -You should first read the section above on how to install NetBSD/pmax, +


    + +

    NetBSD/macppc:

    + +It is possible to install and run NetBSD/macppc in GXemul on +an emulated generic PowerPC machine. No specific Machintosh model is +emulated, but it is enough to for NetBSD to recognize it. + +

             + + +

    To install NetBSD/macppc onto a disk image, follow these instructions: + +

    +

      +
    1. Create an empty harddisk image, which will be the root disk + that you will install NetBSD/macppc onto:
      +    dd if=/dev/zero of=nbsd_macppc.img bs=1024 count=1 seek=3000000
      +
      +
      +
    2. Download the NetBSD/macppc 4.0 ISO image and a generic kernel:
      +    ftp://ftp.netbsd.org/pub/NetBSD/iso/4.0/macppccd-4.0.iso
      +    ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-4.0/macppc/binary/kernel/netbsd-GENERIC.MP.gz
      +
      +
      +

      +

    3. Start the installation like this:
      +    gxemul -x -e g4 -d nbsd_macppc.img -d b:macppccd-4.0.iso -j macppc/binary/kernel/netbsd-INSTALL
      +
      +
      + and continue as you would do when installing NetBSD on a real + machine. +
    + +

    If everything worked, NetBSD/macppc should now be installed on +the disk image. + +

    Use the following command line to boot the emulated machine:

    +	gxemul -x -e g4 -d nbsd_macppc.img netbsd-GENERIC.MP.gz
    +
    +
    + +

    If asked about root device, enter wd0. + + + + + + + + + + + +


    + +

    NetBSD/pmppc:

    + +

    NetBSD/pmppc can +run in GXemul on an emulated Artesyn PM/PPC board. Currently, no SCSI or other +disk controller is emulated for this machine type, but it is possible to run +NetBSD with root-on-nfs. + +

             + + +

    These setup steps will let you run NetBSD/pmppc with root-on-nfs: + +

    +

      +
    1. First of all, the "nfs server" machine must be set up. + This needs to have a 750 MB /tftpboot partition. + Install NetBSD/pmax 3.1 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 -e 3max -d nbsd_pmax.img
      +
      and enter the following commands as root + inside the emulator: +

             
      +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 "bootps dgram udp wait root /usr/sbin/bootpd bootpd -d 4 -h 10.0.0.2" >> /etc/inetd.conf
      +cat >> /etc/bootptab
      +client:\
      +        :ht=ether:\
      +        :ha=102030000010:\
      +        :sm=255.0.0.0:\
      +        :lg=10.0.0.254:\
      +        :ip=10.0.0.1:\
      +        :rp=/tftpboot:
      +(press CTRL-D)
      +echo "10:20:30:00:00:10 client" > /etc/ethers
      +echo 10.0.0.1 client > /etc/hosts
      +reboot
      +
      +

      +

    3. Download the NetBSD/pmppc CD-ROM iso image, and the GENERIC kernel:
      +	ftp://ftp.netbsd.org/pub/NetBSD/iso/3.1/pmppccd-3.1.iso
      +	ftp://ftp.NetBSD.org/pub/NetBSD/NetBSD-3.1/pmppc/binary/kernel/netbsd-PMPPC.gz
      +
      +
      +
    4. Start the DECstation emulation again:
      +	gxemul -e 3max -d nbsd_pmax.img -d pmppccd-3.1.iso
      +
      +
      and extract the files from the PM/PPC CD-ROM image to the + DECstation disk image: +

             
      +cd /tftpboot; mount /dev/cd0a /mnt
      +for a in /mnt/*/binary/sets/[bcemt]*; do echo $a; tar zxfp $a; done
      +echo 10.0.0.2:/tftpboot / nfs rw 0 0 > /tftpboot/etc/fstab
      +echo rc_configured=YES >> /tftpboot/etc/rc.conf
      +echo 10.0.0.254 >> /tftpboot/etc/mygate
      +echo nameserver 10.0.0.254 >> /tftpboot/etc/resolv.conf
      +echo rc_configured=YES >> /tftpboot/etc/rc.conf
      +dd if=/dev/zero of=swap bs=1024 count=65536
      +cd /tftpboot/dev; sh MAKEDEV all
      +cd /; umount /mnt; halt
      +
      +

      +

    5. Create a configuration file called config_client: +
             
      +!  Configuration file for running NetBSD/pmppc diskless with
      +!  a NetBSD/pmax machine as the nfs server.
      +
      +net(
      +	add_remote("localhost:12444")   ! the server
      +	local_port(12445)               ! the client
      +)
      +
      +machine(
      +	name("client machine")
      +	serial_nr(1)
      +
      +        type("pmppc")
      +
      +        load("netbsd-PMPPC.gz")
      +)
      +
      +
      + ... and another configuration file for the server, + config_server: +
             
      +net(
      +	local_port(12444)               ! the server
      +	add_remote("localhost:12445")   ! the client
      +)
      +
      +machine(
      +	name("nfs server")
      +	serial_nr(2)
      +
      +        type("dec")
      +        subtype("5000/200")
      +
      +        disk("nbsd_pmax.img")
      +)
      +
      +
      +
    + +

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

    +	gxemul @config_server
    +	gxemul @config_client
    +
    + +

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

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

    +	root device: tlp0
    +	dump device: 				(leave blank)
    +	file system (default generic): 		(leave blank)
    +	..
    +	init path (default /sbin/init):		(leave blank)
    +
    + + + + + + + + + +


    + +

    NetBSD/dreamcast:

    + +Moved here. + + + + + + + + + +


    + +

    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, 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.

             @@ -543,32 +1311,33 @@

    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 + (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
      +	to install it in order to do this.)
      +	mkisofs -o openbsd_pmax_2.8.iso ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax
      +	rm -rf ftp.se.openbsd.org      (this directory is not needed anymore)
       
       
    6. 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 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 + (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.)

      @@ -582,10 +1351,12 @@

    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 /
      +	mkdir /kern
      +	mkdir /mnt2
      +	mount -t kernfs kern kern
      +	./install
       
       
      and proceed with the install. Good luck. :-) @@ -596,34 +1367,32 @@ the directory containing the install sets.

      -

    10. -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'
      +  
    11. 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 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 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
      -
      -	# sync
      -	# halt
      -
      +

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

    @@ -636,7 +1405,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 3max -X -o '-aN' -d obsd_pmax.img -j bsd
     

    @@ -654,62 +1423,73 @@ -


    - -

    Installing OpenBSD/arc in GXemul:

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

    -         - -

    -(You should be aware of the fact that OpenBSD for the ARC platform died at -release 2.3, so this will not give you an up-to-date OpenBSD system. -See -http://www.openbsd.org/arc.html -for more information.) +


    + +

    OpenBSD/cats:

    -

    -To install OpenBSD/arc onto an emulated harddisk image, follow these -instructions: +It is possible to install and run +OpenBSD/cats +in GXemul. Unfortunately, "The OpenBSD/cats port has been discontinued +after the 4.0 release." according to +http://www.openbsd.org/cats.html, +but 4.0 should run fine. + +

             + + +

    To install OpenBSD/cats onto an emulated harddisk image, +follow these instructions:

    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_cats.img bs=1024 count=1 seek=1900000
       
       
      -
    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/
      +  
    3. Download the entire cats directory from the ftp server:
      +	wget -np -l 0 -r ftp://ftp.se.openbsd.org/pub/OpenBSD/4.0/cats/
      +	cp ftp.se.openbsd.org/pub/OpenBSD/4.0/cats/bsd .
      +	cp ftp.se.openbsd.org/pub/OpenBSD/4.0/cats/bsd.rd .
       
       
      - + (Replace ftp.se.openbsd.org with a server closer to you, for + increased download speed.) +

    4. 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.
      -	$ mkisofs -o openbsd_arc_2.3.iso ftp.se.openbsd.org/pub/OpenBSD/
      +	to install it in order to do this.)
      +	mkisofs -allow-lowercase -o openbsd_cats_4.0.iso ftp.se.openbsd.org/pub/OpenBSD/
      +	rm -rf ftp.se.openbsd.org      (this directory is not needed anymore)
       
       
    5. 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 -XEcats -d obsd_cats.img -d openbsd_cats_4.0.iso bsd.rd
       
       
      and proceed like you would do if you were installing OpenBSD - on a real Acer PICA-61. (Answer 'no' when asked if you want to - configure networking, and then install from CD-ROM.) + on a real CATS. (Install onto wd0, don't configure the + network, install from CD.)
    -

    -Once the install has finished, the following command should let you +

    (Although it is possible to configure the network, IPv4 address +10.0.0.1, netmask 255.0.0.0, gateway/default route 10.0.0.254, and +nameserver 10.0.0.254, the userland NAT-like networking layer is not +stable enough yet to support a full install via ftp.) + +

    NOTE: Make sure that you sync and reboot +correctly once the installation is finished, or the /dev nodes +may not have been written correctly to disk. + +

    Once the install has finished, the following command should let you 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 -XEcats -d obsd_cats.img bsd
     
     
    @@ -717,110 +1497,82 @@ - @@ -828,15 +1580,17 @@


    -

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

             - +     - +

    The following instructions should let you install Ultrix onto a disk image: @@ -844,14 +1598,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 -b -M64 -E dec -e 3max -d rootdisk.img -d bc:/dev/cd0c -j vmunix
      +        gxemul -X -e 3max -d rootdisk.img -d bc:/dev/cd0c -j vmunix
       
       
    3. Once the first stage of the installation is done (restoring the root @@ -859,7 +1613,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 -e 3max -d rootdisk.img -d c:/dev/cd0c -j vmunix
       
       
    @@ -867,22 +1621,22 @@

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

    If you have a very fast host machine, 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. + +

    If the workaround above doesn't work, you can also start up other +processes on the host, apart from the emulator, so that the emulator runs +more slowly. This is an ugly workaround, but seems to work. Once you have +logged in into Ultrix, you can kill the extra processes. -

    -You can experiment with adding -Z2 (for emulating a +

    You can experiment with adding -Z2 (for emulating a dual-headed workstation) or even -Z3 (tripple-headed), and also the -Y2 option for scaling down the framebuffer windows by a factor 2x2. @@ -890,34 +1644,29 @@ 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 -N -e 3max -jgenvmunix -d rootdisk.img \
                 -XZ3 -z remote1:0.0 -z localhost:0.0 -z remote2:0.0
     
    -

    -The photo below shows a single Ultrix session running tripple-headed in +

    The photo below shows a single Ultrix session running tripple-headed in GXemul on an Alpha 21164PC, with displays on a Sun Ultra1 (to the left), on the Alpha itself (in the middle), and on an HP700/RX X-terminal (8-bit color depth, running off the Alpha) to the right. -

    -         +

             -

    -The X11 displays may differ in bit depth and endianness. Unfortunately, +

    The X11 displays may differ in bit depth and endianness. Unfortunately, there is no way yet to set the scaledown factor on a per-window basis, so the scaledown factor affects all windows. -

    -(If you didn't use -Zn during the installation, and +

    (If you didn't use -Zn during the installation, and compiled your own /vmunix, then it will not contain support for multiple graphics cards. To overcome this problem, use the generic kernel, -j genvmunix, whenever you are running the emulator with a different setup than the one you used when Ultrix was installed.) -

    -A note for the historically interested: OSF/1 for MIPS was quite similar +

    A note for the historically interested: OSF/1 for MIPS was quite similar to Ultrix, so that is possible to run as well. If you are unsuccessful in installing Ultrix or OSF/1 directly in the emulator, you can always install it on your real machine onto a real SCSI disk, and then copy the @@ -931,7 +1680,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) @@ -951,14 +1700,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/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 3max -M128 -d ds5000.bt -j vmsprite -o ''
       
       
    @@ -970,7 +1718,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
    @@ -978,18 +1726,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. + @@ -997,140 +1744,224 @@


    -

    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. -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.) - +It is possible to run Debian GNU/Linux for DECstation in the emulator, +on an emulated 5000/200 ("3max"). However, just choosing any +Linux/DECstation kernel at random for the installation will not work. + +

      +
    • Linux 2.4/DECstation DZ serial console output doesn't work too well in + GXemul. Linux oopses randomly, which may be due to bugs in GXemul, + but may also be due to bugs in the serial controller code in Linux. + (The speed at which serial interrupts are generated can be + lowered with the -U command line option, but it only + reduces the risk, it doesn't take away the oopses completely.) +
    • The Linux 2.6/DECstation DZ serial console driver doesn't work at + all in the emulator, and I'm not really sure it would work on a + real 5000/200 either. Hopefully this will be fixed in Linux in + the future. +
    • To get around the serial console problem, the obvious solution is to + use a graphical framebuffer instead. Old Debian install kernels + supported the graphical framebuffer on the 3max, but not the + keyboard. (This has been fixed now, it seems.) +
    • For quite some time, the MIPS linux cvs tree has had support for the + framebuffer and keyboard, but it did not include Debian's + patches for networking, which made it unusable for network + installs. (Possibly fixed now.) +
    • The kernel has to be for 5000/200. This rules out using + the default kernel on netinst ISO images provided by Debian. + These ISO images boot directly into a kernel which is meant + for a different DECstation model. +
    • The kernel has to have an initrd which more or less matches the + version of Debian that will be installed. +
    -

    -         - -    - -    - -    - +

    Luckily, a precompiled install kernel has been made available by David +Muse, for Debian for R3000 DECstations, which has support for framebuffer, +keyboard, and networking, which works pretty well. Thanks David. :-) -

    -The following steps should let you install Debian GNU/Linux for DECstation -onto a harddisk image: +

    The following steps should let you install Debian GNU/Linux for +DECstation onto a harddisk image in the emulator:

    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_pmax.img bs=1024 count=1 seek=6000000
       
       
      -
    2. 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
      +  
    3. Download David Muse' install kernel, and a Debian Netinstall CD-ROM:
      +	http://www.firstworks.com/mips-linux-2.4.31/vmlinux-2.4.31
      +	http://cdimage.debian.org/cdimage/archive/3.1_r6a/mipsel/iso-cd/debian-31r6a-mipsel-netinst.iso
       
       
      - depending on whether you want to install Debian "Testing" or - "Unstable".

      -

    4. 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
      -
      +  
    5. Start the installation like this:
      +	gxemul -X -e3max -d debian_pmax.img -d debian-31r6a-mipsel-netinst.iso vmlinux-2.4.31
       
      -
    -

    -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 everything goes well, you will see Linux' boot messages, and then + arrive at the language chooser.

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

    There will be a warning about the keyboard + layout. Don't mind this. Continue, and then select Detect + and mount CD-ROM in the next menu.

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

    + There will also be a warning about lack of loadable modules. Don't + mind this either, continue anyway by choosing Yes. +

    + When you reach the network configuration part of the install, choose + Configure network manually and enter the following values:

    +	IP address:                 10.0.0.1
    +	Netmask:                    255.0.0.0
    +	Gateway:                    10.0.0.254
    +	Name server addresses:      10.0.0.254
    +
     
    +

    Choose Erase entire disk in the partitioner. + +

    Wait for the base system to be installed. This takes almost forever, + so you can go fetch several Jolts + or cups of coffee in the meanwhile.

    -

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

      Congratulations! The first phase of the installation is now completed. + Reboot using the following command line:

      +	gxemul -X -e3max -o 'root=/dev/sda1' -d debian_pmax.img vmlinux-2.4.31
       
       
      +

      The post-install step takes quite some time as well. A perfect opportunity + for more coffee. + +

      When asked about whether the hardware clock is set to GMT or + not, answer Yes. + +

      When asked about "Apt configuration", choose http as the method + to use for accessing the Debian archive. + +

      +         +         +         + +

      Downloading the packages takes almost forever. Be patient. + +

      Congratulations (again)! You are now fully done with the installation. +

    +


    Debian GNU/Linux for DECstation is now installed and ready to be used. +Use this command to boot from the installed disk image:

    +	gxemul -X -e3max -o 'root=/dev/sda1' -d debian_pmax.img vmlinux-2.4.31
    +
    +
    + + + + + + + +


    +


    + + + + + + + +


    + +

    Mach/PMAX:

    + +Read the following link if you want to know more about Mach in general: + +http://www-2.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html + +

    +NOTE: Mach for DECstation requires some files +(called 'startup' and 'emulator') which I haven't been able to find +on the web. Without these, Mach will not get very far. These +installation instructions are preliminary. + + +

    +         + +

    -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: +The following steps should let you experiment with running Mach +for DECstation in the emulator:

    -

      -
    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
      +
        +
      1. 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
        +	7263343 bytes, md5 = f9d76c240a6e169921a1df99ad560cc0
        +
        +
        +
      2. Extract the Mach kernel:
        +        tar xfvz pmax.tar.Z pmax_mach/special/mach.boot.MK83.STD+ANY
         
         
        -
      3. Boot Debian using the following command line:
        -	$ gxemul -E dec -e 3max -U -b -M64 -o \
        -	    'console=ttyS3 root=/dev/sda1 rw init=/bin/sh' \
        -	    -d debian.img vmlinux-2.4.27-r3k-kn02
        +  
      4. Create an empty disk image:
        +	dd if=/dev/zero of=disk.img bs=1 count=512 seek=400000000
         
         
        - You'll enter single-user mode. You need to add a line to - /etc/inittab, to enable logins via serial console.
        -	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 /
        +  
      5. Load the contents of pmax.tar.Z onto the disk image. This is + complicated, and should be described in more detail some time. + For now, use your imagination. (For example using OpenBSD/pmax: + disklabel -E rz1; newfs -O /dev/rz1a; + mount /dev/rz1a /mnt; cd /mnt; download pmax.tar.Z using ftp; + tar xzvf pmax.tar.Z; mv pmax_mach/* .; rmdir pmax_mach; + mkdir mach_servers; + cd mach_servers; + cp ../etc/mach_init .; + cp ../tests/test_service startup; + dd if=/dev/zero of=paging_file bs=65536 count=400; + cd /; sync; umount /mnt) +

        +

      6. Start the emulator with the following command:
        +	gxemul -c 'put w 0x800990e0, 0' -c 'put w 0x80099144, 0' \
        +	    -c 'put w 0x8004aae8, 0' -e 3max -X -d disk.img \
        +	    pmax_mach/special/mach.boot.MK83.STD+ANY
        +
         
      -

      -The system should now be ready for everyday use. +

      Earlier versions of GXemul had a configure option to enable better +R3000 cache emulation, but since Mach was more or less the only thing that +used it, I removed it. Today's version of GXemul can thus not boot +mach.boot.MK83.STD+ANY straight off, it has to be patched to skip the +cache detection. -

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

      The -c commands above patch the kernel to get past the cache detection. +Thanks to Artur Bujdoso for these values. -

      +

      TODO: Better instructions on how to create the old-style UFS disk +image. -

      -[ UPDATE 2005-01-19:  -Kaj-Michael Lang noticed that the current CVS-version of -linux-mips has -support for keyboards now, on DECstation 5000/200, so it is -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 -It has other problems (ethernet doesn't seem to work, for -example), but at least it doesn't Oops that often. ] @@ -1139,12 +1970,8 @@


      -

      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 -install Debian. -

               @@ -1155,22 +1982,38 @@

        -
      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
        +  
      2. Download a kernel. David Muse' Debian-install kernel works fine:
        +	http://www.firstworks.com/mips-linux-2.4.31/vmlinux-2.4.31
         
         
      3. Download a root filesystem tree:
        -	ftp://ftp.uni-wuppertal.de/pub/linux/mips/
        -	 mipsel-linux/root/mipsel-root-20011216.tgz
        +	ftp://ftp.linux-mips.org/pub/linux/mips/mipsel-linux/root/mipsel-root-20011216.tgz
         	19486676 bytes, md5 = 5bcb725c90209479cd7ead8ad0c4a414
         
         
        -
      4. This is the tricky part: Create an ext2 filesystem image called redhat.img using - the filesystem tree you just downloaded. The disk image should have a MS-DOS - partition table (!), and then one or more ext2 partitions. - (Use loopback mount, or similar. This is probably easiest to do on a Linux host.) - However, in order to actually boot the system you need to modify /etc/fstab. +
      5. Create a disk image which will contain the Redhat filesystem:
        +	dd if=/dev/zero of=redhat_mips.img bs=1024 count=1 seek=2000000
        +
        +
        + +
      6. This is the tricky part: on redhat_mips.img, you need to create an MS-DOS + (!) partition table, and then an ext2 partition. This is what Linux + will then see as /dev/sda1. +

        I recommend you run fdisk and mke2fs and untar the archive from within + Debian/DECstation or Debian/CATS running + inside the emulator. (Alternatively, if you are on a Linux host, + you could use a loopback mount, or similar. This might require + root access. See e.g. + http://www.mega-tokyo.com/osfaq2/index.php/Disk%20Images%20Under%20Linux.) +

        + In order to actually boot the system you need to modify /etc/fstab. Change

         	/dev/root               /               nfs     defaults        1 1
         	#/dev/sdc1              /               ext2    defaults        1 1
        @@ -1184,39 +2027,193 @@
         	none                    /dev/pts        devpts  mode=0622       0 0
         
         
        (Note sda1 instead of sdc1.) -

        -

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

      -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" \
      -	    -d redhat.img vmlinux-2.4.27-r3k-kn02
      +

      To boot Redhat linux from the disk image, use the following command line:

      +	gxemul -X -e3max -o "root=/dev/sda1 ro" -d redhat_mips.img vmlinux-2.4.31
       
       
      +If you need to boot into single user mode, change options to +-o "root=/dev/sda1 rw init=/bin/sh". + + + + + + + + -

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


      + +

      OpenBSD/sgi:

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

      -NOTE: You can add -X and remove console=ttyS3 from the command -line, if you want to use a graphical framebuffer. Unfortunately, Linux -doesn't have support for keyboards on DECstation 5000/200 yet, so you cannot -actually interact with the sytem. :-( +         + + +

      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 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/4.0/sgi/bsd.rd
      +
      +
      and run gxemul -xeo2 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:

      -[ UPDATE 2005-01-22:  -Read the 2005-01-19 update in the Debian section above, and then, if -you do not need ethernet support, try Kaj-Michael Lang's kernel compiled -from linux-mips' CVS. - -http://home.tal.org/~milang/o2/patches/vmlinux-2.4.29-rc2-r3k-mipsel-decstation -It should work with framebuffer/keyboard. ] +

        +
      1. First of all, the "nfs server" machine must be set up. + This needs to have a 800 MB /tftpboot partition. + Install NetBSD/pmax 3.1 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 -e 3max -d nbsd_pmax.img
        +
        and enter the following commands as root + inside the emulator: +
               
        +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
        +
        +
      3. 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/4.0/sgi
        +mget b*tgz c*tgz 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
        +
        +
      4. Download the OpenBSD/sgi GENERIC and RAMDISK kernels:
        +	ftp://ftp.se.openbsd.org/pub/OpenBSD/4.0/sgi/bsd
        +	ftp://ftp.se.openbsd.org/pub/OpenBSD/4.0/sgi/bsd.rd
        +
        +
        +
      5. Create a configuration file called config_client: +
               
        +!  Configuration file for running OpenBSD/sgi diskless with
        +!  a NetBSD/pmax machine as the nfs server.
        +!
        +!  This config file is for the client.
        +
        +net(
        +	add_remote("localhost: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: +
               
        +net(
        +	local_port(12444)               ! the server
        +	add_remote("localhost:12445")   ! the client
        +)
        +
        +machine(
        +	name("nfs server")
        +	serial_nr(2)
        +
        +        type("dec")
        +        subtype("5000/200")
        +
        +        disk("nbsd_pmax.img")
        +)
        +
        +
        +
      6. 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
        +
        +
        +
      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. +
      + + +

      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. + + + @@ -1224,67 +2221,448 @@


      - -

      Running Mach/PMAX in GXemul:

      + +

      OpenBSD/arc:

      -Read the following link if you want to know more about Mach in general: - -http://www-2.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html +It is (almost) possible to install and run OpenBSD/arc on an emulated Acer +PICA-61 in the emulator. + +

      Earlier, I had this guest OS listed as +officially working in the emulator, but for several reasons, it has +been moved down here to the "informative-but-not-really-working" +section.

      -NOTE: Mach for DECstation requires some files -(called 'startup' and 'emulator') which I haven't been able to find -on the web. Without these, Mach will not get very far. These -installation instructions are preliminary. - +

        +
      • The last OpenBSD/arc release was 2.3. This means that it is very + old, it would not give a fair picture of what OpenBSD is (if you + are just looking to find out what it is like), and it is not + worth experimenting with it. See + http://www.openbsd.org/arc.html + for more information. +
      • OpenBSD/arc was (if I understood things correctly) never really + stable, even on real hardare. Problems with too small an interrupt + stack. Bugs are triggered in the emulator that have to do with + issues such as this. +

               - +

      -The following steps should let you experiment with running Mach -for DECstation in the emulator: +Currently, I don't test for every release whether +or not OpenBSD/arc can be installed. Releases prior to 0.3.7 +(but probably not 0.3.7) should work. Anyway, here are the +old installation instructions: + +

      To install OpenBSD/arc onto an emulated harddisk image, follow these +instructions:

        -
      1. Compile gxemul with cache emulation: (NOTE: --enable-caches)
        -	$ ./configure --enable-caches; make
        +  
      2. 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
         
         
        -
      3. 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
        -	7263343 bytes, md5 = f9d76c240a6e169921a1df99ad560cc0
        +  
      4. 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/
         
         
        -
      5. Extract the Mach kernel:
        -        $ tar xfvz pmax.tar.Z pmax_mach/special/mach.boot.MK83.STD+ANY
        +
        +  
      6. 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_arc_2.3.iso ftp.se.openbsd.org/pub/OpenBSD/
         
         
        -
      7. Create an empty disk image:
        -	$ dd if=/dev/zero of=disk.img bs=1 count=512 seek=400000000
        +  
      8. Start the emulator using this command line:
        +	gxemul -e pica -X -d obsd_arc.img -d b:openbsd_arc_2.3.iso -j 2.3/arc/bsd.rd
         
         
        -
      9. Load the contents of pmax.tar.Z onto the disk image. This is - complicated, and should be described in more detail some time. - For now, use your imagination. (For example using OpenBSD/pmax: - disklabel -E rz1; newfs -O /dev/rz1a; - mount /dev/rz1a /mnt; cd /mnt; download pmax.tar.Z using ftp; - tar xzvf pmax.tar.Z; mv pmax_mach/* .; rmdir pmax_mach; - mkdir mach_servers; - cd mach_servers; - cp ../etc/mach_init .; - cp ../tests/test_service startup; - dd if=/dev/zero of=paging_file bs=65536 count=400; - cd /; sync; umount /mnt) + and proceed like you would do if you were installing OpenBSD + on a real Acer PICA-61. (Answer 'no' when asked if you want to + configure networking, and then install from CD-ROM.) +
      + +

      +Once the install has finished, the following command should let you +boot from the harddisk image: +

      +

      +	gxemul -X -e pica -d obsd_arc.img ftp.se.openbsd.org/pub/OpenBSD/2.3/arc/bsd
      +
      +
      + +The system is very sensitive to (I think) kernel stack overflow, so it +crashes easily. If I remember correctly from mailing lists, this also +happened on real hardware. + + + + + + + + + + + +


      + +

      Debian GNU/Linux for CATS:

      + +Debian GNU/Linux for CATS (ARM) could theoretically run in GXemul, +however: + +
        +
      • The DEC 21143 NIC is not emulated well enough for Linux to accept it. +
      • Development of Debian for CATS seems to have died? The latest + install kernel is quite old. +
      + +

      IT DOES NOT WORK YET! + +

      The following installation instructions would theoretically work: + +

      +

        +
      1. Create an empty harddisk image, which will be the root disk + that Debian installs itself onto:
        +	dd if=/dev/zero of=debian_cats.img bs=1024 count=1 seek=3300000
        +
        +
        +
      2. Download the tftpboot install kernel:
        +	http://ftp.debian.org/debian/dists/oldstable/main/disks-arm/current/cats/tftpboot.img
        +
        +
        +
      3. Start the installation using the following command line:
        +	gxemul -XEcats -d debian_cats.img tftpboot.img
        +
        +
        +
      + +

      It doesn't work, though, because the NIC isn't working well enough. + +

      The only use of Debian/CATS in the emulator right now is as a way to +manipulate Linux disk images, if you are on a non-Linux host. By choosing +"Execute a shell" in the installer's menu, you can have access to tools such as +fdisk and mke2fs, which are useful for creating Linux paritions on disk images. + + + + + + + + + + + + + + +


      + +

      Linux/QEMU_MIPS:

      + +I've added a machine mode which emulates the MIPS machine mode used +in Fabrice Bellard's QEMU. +Starting with QEMU 0.9.0, there are other MIPS modes in QEMU (i.e. Malta); +the QEMU_MIPS mode in GXemul refers to the old QEMU-specific MIPS machine. + +

      The following steps should let you boot into the Linux/QEMU_MIPS +kernel, in way similar to the run-qemu script: + +

      +

        +
      1. Download the archive from + http://fabrice.bellard.free.fr/qemu/download.html and extract it:
        +	wget http://fabrice.bellard.free.fr/qemu/mips-test-0.2.tar.gz
        +	tar zxvf mips-test-0.2.tar.gz
        +
        +
        +
      2. Start GXemul using the following command line:
        +	gxemul -E qemu_mips -x -M 128 -o 'console=ttyS0
        +		rd_start=0x80800000 rd_size=10000000 init=/bin/sh'
        +		0x80800000:mips-test/initrd.gz mips-test/vmlinux-2.6.18-3-qemu
        +
        +
        +
      + + + + + + + + +


      + +

      Windows NT/MIPS:

      + +Old versions of Windows NT could run on MIPS hardware, e.g. +the PICA 61. It is theoretically possible that the emulation provided by +GXemul some day could be stable/complete enough to emulate +such hardware well enough to fool Windows NT into thinking +that it is running on a real machine. +IT DOES NOT WORK YET! + +

      Installation steps similar to these would be required to install +Windows NT onto a disk image: + +

        +
      1. Put a "Windows NT 4.0 for MIPS" CDROM (or similar) into + your CDROM drive. (On FreeBSD systems, it is + usually called /dev/cd0c or similar. Change + that to whatever the CDROM is called on your system, + or the name of a raw .iso image. I have tried this + with the Swedish version, but it might work with + other versions too.)

        -

      2. Start the emulator with the following command:
        -	$ gxemul -E dec -e 3max -X -d disk.img \
        -	    pmax_mach/special/mach.boot.MK83.STD+ANY
        +	
      3. Create an empty harddisk image, which will be the disk image + that you will install Windows NT onto:
        +	dd if=/dev/zero of=winnt_test.img bs=1024 count=1 seek=999000
         
         
        +
      4. Run the ARC installer, to partition the disk image:
        +	gxemul -X -e pica -d winnt_test.img -d bc6:/dev/cd0c -j MIPS\\ARCINST
        +
        + Note that ARCINST almost works, but not quite. +

        +

      5. Run the SETUP program:
        +	gxemul -X -e pica -d winnt_test.img -d bc6:/dev/cd0c -j MIPS\\SETUPLDR
        +
      +

      SETUPLDR manages to load some drivers from the cdrom, +but then it crashes because of incomplete emulation of some hardware devices. + + + + + + + + +


      + +

      NetBSD/bebox:

      + +There is an old snapshot of +NetBSD/bebox +from 1998-11-19 available at NetBSD's ftp server. NetBSD/bebox +could theoretically run in GXemul. +IT DOES NOT WORK RIGHT NOW! + +

      The following instructions will let you install NetBSD/bebox onto a +disk image, using a NetBSD/prep kernel temporarily during the install: + +

      +

        +
      1. Download a NetBSD/prep 2.1 install ramdisk kernel:
        +	ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.1/prep/binary/kernel/netbsd-INSTALL.gz
        +
        +

        +

      2. Create an empty harddisk image, which will be the disk image + that you will install NetBSD onto:
        +	dd if=/dev/zero of=nbsd_bebox.img bs=1024 count=1 seek=999000
        +
        +

        +

      3. Download the NetBSD/bebox snapshot, and create a suitable .iso + image of the files: +

               
        +wget -np -l 0 -r ftp://ftp.netbsd.org/pub/NetBSD/arch/bebox/snapshot/19981119/
        +mv ftp.netbsd.org/pub/NetBSD/arch/bebox/snapshot/19981119/kern.tgz .
        +tar zxvf kern.tgz
        +rm -f kern.tgz
        +mkisofs -o netbsd-bebox-19981119.iso ftp.netbsd.org/pub/NetBSD/arch/bebox/snapshot/19981119
        +
        +

        +

      4. Now let's extract the files onto the Bebox disk image. Start NetBSD/prep + with the following command line:
        +	gxemul -x -e ibm6050 -d d:netbsd-bebox-19981119.iso -d nbsd_bebox.img netbsd-INSTALL.gz
        +
        +
        Choose (S) for Shell, and execute the following commands: +

               
        +disklabel -I -i wd1
        +a
        +4.2BSD
        +1c
        +750M
        +b
        +swap
        +a
        +200M
        +W
        +y
        +Q
        +newfs /dev/wd1a
        +mount_cd9660 /dev/wd0c /mnt
        +mount /dev/wd1a /mnt2
        +cd mnt2
        +for a in /mnt/*.tgz; do echo $a; tar zxfp $a; done
        +cd dev; sh ./MAKEDEV all; cd ../etc
        +echo rc_configured=YES >> rc.conf
        +echo "/dev/wd0a / ffs rw 1 1" > fstab
        +echo "/dev/wd0b none swap sw 0 0" >> fstab
        +cd /; umount /mnt; umount /mnt2
        +sync; halt
        +
        +

      + +

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

      +	gxemul -X -E bebox -d nbsd_bebox.img netbsd
      +
      + +

      When asked for the root device, enter wd0a. + +

      IT DOES NOT WORK YET, there are +errors while uncompressing the tgz files, and the machine crashes when +trying to run /sbin/init. + + + + + + + + + + +


      + +

      NetBSD/landisk:

      + +NetBSD/landisk can +run in GXemul. + +

      NOTE: This is still too +unstable to be considered really working! Snapshots from April 2007 +or so will probably not work, unless an #if 0 is changed to +#if 1 in the implementation of the 'LDC Rm,SR' instruction +(in src/cpus/cpu_sh_instr.c). + +

               + + +

      At the time of writing this, there are not yet any formal releases +of NetBSD/landisk, only daily snapshot builds. + +

      The NetBSD/landisk distribution does not include any INSTALL kernel, +so it must be installed using another (emulated) machine. + +

      The following instructions will let you install NetBSD/landisk onto a disk +image, using an emulated CATS machine: + +

      +

        +
      1. Download a NetBSD/cats install kernel:
        +	ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.1/cats/binary/kernel/netbsd.aout-INSTALL.gz
        +
        +

        +

      2. Create an empty harddisk image, which will be the disk image + that you will install NetBSD/landisk onto:
        +	dd if=/dev/zero of=nbsd_landisk.img bs=1024 count=1 seek=900000
        +
        +
        +

        +

      3. Download the latest netbsd-4 (pre-release) snapshot, and make an iso image + of it: (replace 200704110002Z with whatever is the latest one)
        +	wget -np -l 0 -r ftp://ftp.netbsd.org/pub/NetBSD-daily/netbsd-4/200704110002Z/landisk
        +	cp ftp.netbsd.org/pub/NetBSD-daily/*/*/landisk/binary/kernel/netbsd-GENERIC.gz .
        +	mkisofs -U -o landisk.iso ftp.netbsd.org/pub/NetBSD-daily/netbsd-4/*
        +
        + +

        +

      4. Start the emulated CATS machine like this:
        +	gxemul -XEcats -d nbsd_landisk.img -d landisk.iso netbsd.aout-INSTALL.gz
        +
        +
        +
      5. Exit the installer, then execute the following commands: +

               
        +disklabel -i -I wd0    (for example 'a', '4.2BSD', '1c',
        +    '700M', 'b', 'swap', '701M', '$', 'P', 'W', 'y', and 'Q')
        +newfs /dev/wd0a
        +mount /dev/cd0c /mnt
        +mkdir /mnt2; mount /dev/wd0a /mnt2
        +cd /mnt2; sh
        +for a in /mnt/*/binary/sets/[bcekmt]*.tgz; do echo $a; tar zxfp $a; done
        +exit
        +cd dev; sh ./MAKEDEV all; cd ../etc
        +echo rc_configured=YES >> rc.conf
        +echo "/dev/wd0a / ffs rw 1 1" > fstab
        +echo "/dev/wd0b none swap sw 0 0" >> fstab
        +cd /; umount /mnt; umount /mnt2; halt
        +
        +

      + +

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

      +	gxemul -x -E landisk -d nbsd_landisk.img netbsd-GENERIC.gz
      +