--- trunk/doc/guestoses.html 2007/10/08 16:18:00 4 +++ trunk/doc/guestoses.html 2007/10/08 16:19:01 16 @@ -1,19 +1,16 @@ - -
|
- - + Back to the index
@@ -50,23 +48,28 @@
In addition to the "working" guest operating systems listed above, +you might find the following information interesting: +
@@ -97,21 +100,19 @@-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: -
-
- $ dd if=/dev/zero of=nbsd_pmax.img bs=1 count=512 seek=1900000000 + dd if=/dev/zero of=nbsd_pmax.img bs=1 count=512 seek=1900000000
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
- $ gxemul -X -b -E dec -e 3max -d nbsd_pmax.img -d bc:pmaxcd.iso + gxemul -e 3max -A -d nbsd_pmax.img -d bc:pmaxcd.iso+ and proceed like you would do if you were installing NetBSD on a real + DECstation. Remember to choose vt100 as your terminal + type, and not rcons.
For an ftp install, substitute steps 2 and 3 above with these:
+
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
- $ gxemul -X -b -E dec -e 3max -d nbsd_pmax.img -O netbsd-INSTALL + gxemul -e 3max -A -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. Remember to choose vt100 as your terminal + type, and not rcons. Suitable networking parameters are as + follows:Which device shall I use? [le0]: le0 .. Your DNS domain: mydomain.com @@ -172,29 +166,31 @@ 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 want to use a graphical framebuffer during the install, you can +add -X -Y2 to the command line, and choose rcons +instead of vt100 when prompted with which terminal type to use. +(By just using -X, you will get a full-size framebuffer +window.) -
-When the installation is completed, the following command should start +
When the installation is finished, the following command should start NetBSD from the harddisk image:
- $ gxemul -X -b -M64 -E dec -e 3max -d nbsd_pmax.img + gxemul -e 3max -d nbsd_pmax.img--Use startx to start X windows. +
NOTE: For some reason, NetBSD 2.0.2 +doesn't work with X out-of-the-box on pmax. It seems that this has to do +with NetBSD switching console system to "WSCONS" somewhere between 1.6.2 +and 2.0. For now, if you want X, then try NetBSD 1.6.2. -
-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. - -
-If you want to run without the X framebuffer, use this instead:
- $ gxemul -E dec -e 3max -b -d nbsd_pmax.img +With NetBSD/pmax 1.6.2, try the following to start with a framebuffer:
+ gxemul -X -e 3max -d nbsd_pmax.img+and log in as root and type startx to start X windows. + @@ -204,9 +200,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 install and run NetBSD/arc +on an emulated Acer PICA-61 in the emulator.@@ -220,62 +218,51 @@
-
- Create an empty harddisk image, which will be the root disk that NetBSD installs itself onto:
- $ dd if=/dev/zero of=nbsd_arc.img bs=1024 count=1 seek=900000 + dd if=/dev/zero of=nbsd_arc.img bs=1024 count=1 seek=900000-- Download a NetBSD/arc CDROM image from ftp:
+- Download a NetBSD/arc 1.6.2 CDROM image, and a generic NetBSD/arc + kernel:
ftp://ftp.netbsd.org/pub/NetBSD/iso/1.6.2/arccd.iso --- Download a NetBSD/arc installation (ramdisk) kernel, - and gunzip it:
- ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6.2/arc/binary/kernel/netbsd.RAMDISK.gz - + ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6.2/arc/binary/kernel/netbsd-GENERIC.gz- Start the emulator using this command line:
- $ gxemul -E arc -e pica -b -d nbsd_arc.img -d arccd.iso netbsd.RAMDISK + gxemul -e pica -x -d nbsd_arc.img -d bc:arccd.iso \ + -j arc/binary/kernel/netbsd.RAMDISK.gz+ (Try removing -x if you have problems with the xterm.) +
- 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 tar xvzpf $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 - --- 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 - -+ 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 -b -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--Using -b (enabling dynamic binary translation), as in the instructions -above, is not 100% stable. If you experiment weird crashes, try removing that -option and try again. +
When asked for "root device: ", enter sd0. @@ -285,15 +272,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. --
Model: | @@ -354,51 +341,48 @@
+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.gzNote that the installation instructions above create a filesystem @@ -473,6 +457,7 @@ root device (default wd0a): wd0d dump device (default wd0b): none file system (default generic): ffs + init path (default /sbin/init): (just press enter here) @@ -481,54 +466,339 @@ - +
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. +
+To install NetBSD/cats onto a disk image, follow these instructions: + +
+
+ dd if=/dev/zero of=nbsd_cats.img bs=1024 count=1 seek=1990000 + ++
+ ftp://ftp.netbsd.org/pub/NetBSD/iso/2.0.2/catscd.iso + ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0.2/cats/binary/kernel/netbsd.aout-GENERIC.gz + ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0.2/cats/binary/kernel/netbsd.aout-INSTALL.gz + ++
+
+ gxemul -XEcats -d nbsd_cats.img -d catscd.iso netbsd.aout-INSTALL.gz + ++ and proceed like you would do if you were installing NetBSD on a real + CATS from CDROM. (Install onto wd0, and choose wd1c (not cd0c) as the + CDROM device to install from.) +
If everything worked, NetBSD should now be installed on the disk image. +Use the following command line to boot the emulated CATS machine:
+ gxemul -XEcats -d nbsd_cats.img netbsd.aout-GENERIC.gz + ++ +
When asked for root device, enter wd0. + + + + +
@@ -549,33 +819,34 @@
- $ 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
- $ wget -r ftp://ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax/ + wget -r ftp://ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax/-
- $ mv ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax/simpleroot28.fs.gz . - $ gunzip simpleroot28.fs.gz - $ chmod +w simpleroot28.fs <--- make sure - -+
+mv ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax/simpleroot28.fs.gz . +gunzip simpleroot28.fs.gz +chmod +w simpleroot28.fs <--- make sure + |
- $ mkisofs -o openbsd_pmax_2.8.iso ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax + (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
- $ 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 -A -M64 -d obsd_pmax.img -d b:simpleroot28.fs -j bsd -d c:openbsd_pmax_2.8.iso- (If you add -X, you will run with the graphical framebuffer. This is REALLY slow - because the console has to scroll a lot during the install. I don't recommend it.) + (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.)
- $ fsck /dev/rz1a (and mark the filesystem as clean) - $ mount /dev/rz1a / - $ mount -t kernfs kern kern - $ ./install + fsck /dev/rz1a (and mark the filesystem as clean) + mount /dev/rz1a / + mount -t kernfs kern kern + ./installand proceed with the install. Good luck. :-) @@ -601,36 +872,32 @@ the directory containing the install sets.
-
- $ gxemul -E dec -e 3max -b -d obsd_pmax.img -d 2c:openbsd_pmax_2.8.iso -j bsd -o '-s' +
+ gxemul -e 3max -A -d obsd_pmax.img -d 2c:openbsd_pmax_2.8.iso -j bsd -o '-s'While you are at it, you might want to extract the X11 install sets as well, as the installer seems to ignore them too. (Perhaps due to a bug in the installer, perhaps because of the way I used mkisofs.)
Execute the following commands in the emulator: -
- # fsck /dev/rz0a - # mount / - # passwd root - - # cd / - # mount -t cd9660 /dev/rz2c /mnt - # sh - # for a in /mnt/[xX]*; do tar zxvf $a; done - # ln -s /usr/X11R6/bin/Xcfbpmax /usr/X11R6/bin/X - # ln -s /dev/fb0 /dev/mouse - # echo /usr/X11R6/lib >> /etc/ld.so.conf - # ldconfig - - # 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 + |
@@ -643,21 +910,19 @@ 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 -M64 -o '-aN' -d obsd_pmax.img -j bsd
-OpenBSD/pmax seems to work fine with dynamic binary translation (enabled -by the -b command line option). +(Normally, you would be asked about which root device to use (rz0), +but using -o '-aN' supresses that.)
-(Normally, you would be asked about which root device to use (rz0), but -using -o '-aN' supresses that.) -
When asked for which terminal type to use, when logging in as root,
-enter rcons if you are using the graphical framebuffer,
-vt100 for text-mode.
-
Use startx to start X windows.
+enter rcons if you are using the graphical framebuffer,
+vt100 for text-mode.
+
Use startx to start X windows.
+
@@ -666,10 +931,10 @@
@@ -690,24 +955,23 @@
- $ dd if=/dev/zero of=obsd_arc.img bs=1024 count=1 seek=700000 + dd if=/dev/zero of=obsd_arc.img bs=1024 count=1 seek=700000
- $ wget -np -l 0 -r ftp://ftp.se.openbsd.org/pub/OpenBSD/2.3/arc/ + wget -np -l 0 -r ftp://ftp.se.openbsd.org/pub/OpenBSD/2.3/arc/
- $ mkisofs -o openbsd_arc_2.3.iso ftp.se.openbsd.org/pub/OpenBSD/ + (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/
- $ gxemul -X -b -E arc -e pica -d obsd_arc.img -d openbsd_arc_2.3.iso \ - ftp.se.openbsd.org/pub/OpenBSD/2.3/arc/bsd.rd.elf + gxemul -e pica -X -A -d obsd_arc.img -d b:openbsd_arc_2.3.iso -j 2.3/arc/bsd.rdand proceed like you would do if you were installing OpenBSD @@ -720,125 +984,75 @@ 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 pica -d obsd_arc.img ftp.se.openbsd.org/pub/OpenBSD/2.3/arc/bsd-
-(The -b command line option enables dynamic binary translation, -which isn't always 100% stable, so if things seem buggy you might want -to try to remove that from the command line.) - @@ -847,9 +1061,11 @@
@@ -863,22 +1079,22 @@
- $ 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-
- $ gxemul -X -b -M64 -E dec -e 3max -d rootdisk.img -d bc:/dev/cd0c -j vmunix +
+ gxemul -X -A -M64 -e 3max -d rootdisk.img -d bc:/dev/cd0c -j vmunix
- $ gxemul -X -b -M64 -E dec -e 3max -d rootdisk.img -d c:/dev/cd0c -j vmunix + gxemul -X -A -M64 -e 3max -d rootdisk.img -d c:/dev/cd0c -j vmunix
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 -A -M64 -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.) - -
-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. -There is also a -z option for supplying names of X11 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 \ - -XZ3 -z remote1:0.0 -z localhost -z remote2:0.0 +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 +dual-headed workstation) or even -Z3 (tripple-headed), and +also the -Y2 option for scaling down the framebuffer +windows by a factor 2x2. +There is also a -z option for supplying names of X11 +displays to use. The following example starts Ultrix on an emulated +tripple-headed workstation, on three different displays (remote1:0.0, +localhost:0.0, and remote2:0.0), using no scaledown:
+ gxemul -M64 -N -e 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 +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, 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 -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.) +(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 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 -contents of that SCSI disk into a file (using dd(1)), and use +contents of that SCSI disk into a file (using dd(1)), and use that file as a disk image file in the emulator. @@ -938,7 +1165,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) @@ -958,14 +1185,13 @@
-
@@ -977,7 +1203,7 @@- 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 +- Download the Sprite harddisk image:
+ ftp://ftp.es.embnet.org/pub/misc/TUHS/other_os/Sprite/ds5000.bt 83973120 bytes, MD5 = ec84eeeb20fe77b758370d5e312e4a5e- 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 ''
- 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 @@ -985,22 +1211,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. -
-Sprite works fine with dynamic binary translation (enabled by -adding -b to the command line options). @@ -1008,16 +1229,22 @@
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.) +(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!
@@ -1038,77 +1265,53 @@
- -
- Create an empty harddisk image, which will be the root disk that Debian installs itself onto:
- $ dd if=/dev/zero of=debian.img bs=1024 count=1 seek=2000000 + dd if=/dev/zero of=debian.img bs=1024 count=1 seek=3000000- 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 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- --
- -
- 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 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: - -
-
-
@@ -1126,7 +1330,7 @@- 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. ++
- 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 --- 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 3max -U -M64 -o \ 'console=ttyS3 root=/dev/sda1 rw init=/bin/sh' \ -d debian.img vmlinux-2.4.27-r3k-kn02 @@ -1118,6 +1321,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# haltUse 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 3max -U -M64 -o 'console=ttyS3' -d debian.img@@ -1136,10 +1340,9 @@ 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/patches/vmlinux-2.4.29-rc2-r3k-mipsel-decstation +(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. ] @@ -1150,11 +1353,11 @@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. +unstable. Read the note about -U in the section on how to +install Debian.@@ -1167,8 +1370,8 @@
- 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- Download a root filesystem tree:
@@ -1197,7 +1400,7 @@(Note sda1 instead of sdc1.)
- To boot Linux, start the emulator like this:
- $ gxemul -E dec -e 3max -U -b -M128 -o \ + gxemul -e 3max -U -M128 -o \ "console=ttyS3 root=/dev/sda1 ro" -d redhat.img vmlinux-2.4.27-r3k-kn02@@ -1205,14 +1408,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 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 @@ -1225,8 +1428,7 @@ 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 +http://home.tal.org/~milang/o2/kernels/vmlinux-2.4.29-rc2-r3k-mipsel-decstation It should work with framebuffer/keyboard. ] @@ -1235,8 +1437,17 @@
+
+ + + + + + + +Running Mach/PMAX in GXemul:
+Mach/PMAX:
Read the following link if you want to know more about Mach in general: @@ -1260,20 +1471,21 @@
- Compile gxemul with cache emulation: (NOTE: --enable-caches)
- $ ./configure --enable-caches; make + ./configure --enable-caches; make- Download the pmax binary distribution for Mach 3.0:
- http://lost-contact.mit.edu/afs/athena/user/d/a/daveg/Info/Links/Mach/src/release/pmax.tar.Z + http://lost-contact.mit.edu/afs/athena/user/d/a/ + daveg/Info/Links/Mach/src/release/pmax.tar.Z 7263343 bytes, md5 = f9d76c240a6e169921a1df99ad560cc0- Extract the Mach kernel:
- $ tar xfvz pmax.tar.Z pmax_mach/special/mach.boot.MK83.STD+ANY + tar xfvz pmax.tar.Z pmax_mach/special/mach.boot.MK83.STD+ANY- Create an empty disk image:
- $ dd if=/dev/zero of=disk.img bs=1 count=512 seek=400000000 + dd if=/dev/zero of=disk.img bs=1 count=512 seek=400000000- Load the contents of pmax.tar.Z onto the disk image. This is @@ -1290,7 +1502,7 @@ cd /; sync; umount /mnt)
- Start the emulator with the following command:
- $ gxemul -E dec -e 3max -X -d disk.img \ + gxemul -e 3max -X -d disk.img \ pmax_mach/special/mach.boot.MK83.STD+ANY@@ -1298,6 +1510,256 @@ + + + + +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 in the emulator, as long as it doesn't +use SCSI. For a simple test with the ramdisk (install) kernel, try dowloading
+ ftp://ftp.se.openbsd.org/pub/OpenBSD/3.7/sgi/bsd.rd + +and run gxemul -e 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: + +
+
+
+ + +- 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. + (Don't forget to add the extra partition!) +
+
- Configure the nfs server machine to act as an nfs server. + Start up the emulated DECstation:
+ gxemul -e 3max -A -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 +- Start the DECstation emulation again, and enter the following + commands to download the OpenBSD/sgi distribution:
(NOTE: This + takes quite some time, even if you have a fast network connection.) ++
+cd /tftpboot; ftp -i ftp.se.openbsd.org +(log in as anonymous...) +cd pub/OpenBSD/3.7/sgi +mget b*tgz c* e* g* m* +quit +sh +for a in *.tgz; do echo $a; tar zxfp $a; done +echo 10.0.0.2:/tftpboot / nfs rw 0 0 > /tftpboot/etc/fstab +rm *.tgz +dd if=/dev/zero of=swap bs=1024 count=32768 +halt +- 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: +
+ ... and another configuration file for the server, + config_server: +
+!!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("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") + ) +) ++
+!!gxemul +emul( + 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") + ) +) +- 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: +
+ 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. +
+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 +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. + + + + + + + + +
NetBSD/netwinder:
+ +NetBSD/netwinder +could possibly run in GXemul. IT DOES NOT WORK YET! + +It is tricky to install, because there is (as far as I know) no INSTALL +kernel. 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: + +
+
+
+ +- Install NetBSD/pmax 2.0.2 according to instructions + further up on this page. +
+
- 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 + ++- Download the generic kernel and the 2.0.2 ISO image:
+ ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0.2/netwinder/binary/kernel/netbsd-GENERIC.gz + ftp://ftp.netbsd.org/pub/NetBSD/iso/2.0.2/netwindercd.iso + +++
- Start NetBSD/pmax like this:
+ gxemul -e 3max -A -d nbsd_pmax.img -d nbsd_netwinder.img -d netwinder.iso + +and execute the following commands as root: ++
+newfs /dev/sd1c +mount /dev/cd0c /mnt +mkdir /mnt2; mount /dev/sd1c /mnt2 +cd /mnt2; sh +for a in /mnt/netwinder/binary/sets/*.tgz; do echo $a; tar zxfp $a; done +exit +cd dev; sh ./MAKEDEV all; cd ../etc +echo rc_configured=YES >> rc.conf +echo "/dev/wd0c / ffs rw 1 1" > fstab +cd /; umount /mnt; umount /mnt2; halt +You should now be able to boot NetBSD/evbmips using this command:
+ gxemul -E netwinder -d nbsd_netwinder.img netbsd-GENERIC.gz ++ +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): none + file system (default generic): (just press enter) + init path (default /sbin/init): (just press enter) ++ + +