This emulation mode attempts to emulate a Luna 88K workstation. Note that these were based on Motorola 88000 processors, not 68000.
Emulated hardware:
NOT emulated yet:
OpenBSD/luna88k running as a guest OS can reach userland and be interacted with, using either serial console or a graphical framebuffer, when using root-on-nfs.
GXemul does not yet emulate the SCSI controller in the LUNA88K machine, so OpenBSD/luna88k needs to boot with root-on-nfs. Another emulated machine must then be used as the nfs root server, and the emulated LUNA88K machine must boot as a diskless client. To make matters even more complicated, the OpenBSD/luna88k 6.8 RAMDISK kernel has support for Ethernet, but it does not seem to have a driver for nfs included or at least it doesn't work in the emulator. Therefore, a separate OpenBSD ramdisk kernel, e.g. for OpenBSD/sgi, needs to be used to run the final step of the root-on-nfs installation.
Performing this setup is quite time consuming, but necessary.
Let's get started.
wget http://ftp.eu.openbsd.org/pub/OpenBSD/6.8/luna88k/base68.tgz wget http://ftp.eu.openbsd.org/pub/OpenBSD/6.8/luna88k/comp68.tgz wget http://ftp.eu.openbsd.org/pub/OpenBSD/6.8/luna88k/xbase68.tgz wget http://ftp.eu.openbsd.org/pub/OpenBSD/6.8/luna88k/xfont68.tgz wget http://ftp.eu.openbsd.org/pub/OpenBSD/6.8/luna88k/xserv68.tgz wget http://ftp.eu.openbsd.org/pub/OpenBSD/6.8/luna88k/xshare68.tgz |
gxemul -xe 3max -d nbsd_pmax.img -d base68.tgz -d comp68.tgz -d xbase68.tgz -d xfont68.tgz -d xserv68.tgz -d xshare68.tgz |
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.3 > /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 swap=10.0.0.2:/tftpboot/swap\n" > /etc/bootparams echo "00:00:0a:10:20:30 client" > /etc/ethers echo 10.0.0.3 client > /etc/hosts cd /tftpboot tar xzf /dev/sd1c tar xzf /dev/sd2c tar xzf /dev/sd3c tar xzf /dev/sd4c tar xzf /dev/sd5c tar xzf /dev/sd6c tar zxfv var/sysmerge/etc.tgz tar zxfv var/sysmerge/xetc.tgz dd if=/dev/zero of=swap bs=1024 count=262144 echo inet 10.0.0.3 > /tftpboot/etc/hostname.le0 echo 10.0.0.254 > /tftpboot/etc/mygate echo nameserver 10.0.0.254 > /tftpboot/etc/resolv.conf echo 127.0.0.1 client localhost > /tftpboot/etc/hosts echo 10.0.0.2:/tftpboot / nfs rw 0 0 > /tftpboot/etc/fstab echo 10.0.0.2:/tftpboot/swap none swap sw,nfsmntpt=/swap >> /tftpboot/etc/fstab halt |
http://ftp.eu.openbsd.org/pub/OpenBSD/6.8/luna88k/bsd http://ftp.eu.openbsd.org/pub/OpenBSD/6.8/luna88k/bsd.rd
! Configuration file for running OpenBSD/luna88k 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("luna88k") subtype("luna-88k") ! use_x11(1) ! load("bsd.rd") load("bsd") ) |
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") ) |
http://ftp.eu.openbsd.org/pub/OpenBSD/6.7/sgi/bsd.rd.IP32
! 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") use_x11(1) memory(1024) load("bsd.rd.IP32") ! load("bsd.IP32") ) |
in one xterm: gxemul @config_server and then, in another xterm: gxemul @config_client_sgi
ifconfig mec0 10.0.0.3; route add default 10.0.0.254 mount -v 10.0.0.2:/tftpboot /mnt cd /mnt/dev; ./MAKEDEV all; cd /; umount /mnt halt -p |
gxemul @config_clientWhen asked about root device, enter le0.
If you want to run with the graphical framebuffer, uncomment the
use_x11(1) line in config_client first.
Unfortunately, Xorg lacks a driver for wsfb in OpenBSD/luna88k
6.8, which is needed. A naive attempt at simply copying the driver from
OpenBSD/luna88k 6.7 randomly resulted in Xorg's gray default background being
visible for a second or so, when running startx.
(I also attempted to do the entire install using 6.7, but then logging in as root on the console was not possible.)
One can also experiment with the RAMDISK kernel (much easier than following the rather involved process above):
Start the emulator like this:
gxemul -e luna-88k bsd.rd (For older OpenBSD/luna88k kernels, 5.4 and below:) gxemul -e luna-88k 0x20000:0x20:bsd.rd
Add -X if you want to use the graphical framebuffer.
This is what can be expected of the RAMDISK kernel:
CPU0 is associated to 2 MC88200 CMMUs CPU1 is associated to 2 MC88200 CMMUs CPU2 is associated to 2 MC88200 CMMUs CPU3 is associated to 2 MC88200 CMMUs Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. Copyright (c) 1995-2020 OpenBSD. All rights reserved. https://www.OpenBSD.org OpenBSD 6.8 (RAMDISK) #0: Tue Oct 13 00:19:54 JST 2020 aoyama@aurora.in.nk-home.net:/w1/o/6.8/src/sys/arch/luna88k/compile/RAMDISK real mem = 117440512 (112MB) avail mem = 110452736 (105MB) random: boothowto does not indicate good seed mainbus0 at root: OMRON LUNA-88K, 25MHz cpu0: M88100 rev 0x3, 2 CMMU cpu0: M88200 (16K) rev 0x9, full Icache cpu0: M88200 (16K) rev 0x9, full Dcache clock0 at mainbus0: MK48T02 le0 at mainbus0: address 00:00:0a:10:20:30 le0: 32 receive buffers, 8 transmit buffers sio0 at mainbus0: 7201a siotty0 at sio0 channel 0 (console) ws0 at sio0 channel 1[ luna88k sio dev1 write data: TODO ] wskbd0 at ws0 fb at mainbus0 not configured spc0 at mainbus0 scsibus0 at spc0: 8 targets, initiator 7 spc0: SCSI bus reset spc0: SCSI bus reset spc0: SCSI bus reset spc0: SCSI bus reset spc0: SCSI bus reset spc0: SCSI bus reset spc0: SCSI bus reset spc0: SCSI bus reset spc0: SCSI bus reset spc0: SCSI bus reset spc0: SCSI bus reset spc0: SCSI bus reset spc0: SCSI bus reset spc0: SCSI bus reset boot device:root on rd0a swap on rd0b dump on rd0b WARNING: bad clock chip time WARNING: CHECK AND RESET THE DATE! erase ^?, werase ^W, kill ^U, intr ^C, status ^T Welcome to the OpenBSD/luna88k 6.8 installation program. (I)nstall, (U)pgrade, (A)utoinstall or (S)hell? s # set ARCH=luna88k DONEPROFILE=YES HOME IFS=' ' MAILCHECK=600 OBSD='OpenBSD/luna88k 6.8' OLDPWD OPTIND=1 PATH=/sbin:/bin:/usr/bin:/usr/sbin:/ PPID=1 PS1='\h\$ ' PS2='> ' PS3='#? ' PS4='+ ' PWD=/ RANDOM REPLY=s SECONDS=213 SHELL SH_VERSION='@(#)PD KSH v5.2.14 99/07/13.2' TMOUT=0 VERSION=68 VNAME=6.8 rootdisk=rd0a timeout=false timer_pid= # ls -l total 156 -rw-r--r-- 1 root wheel 1480 Oct 12 16:50 .profile lrwxr-xr-x 1 root wheel 11 Oct 12 16:50 autoinstall -> install.sub drwxr-xr-x 2 root wheel 512 Oct 12 16:45 bin drwxr-xr-x 2 root wheel 8192 Oct 12 16:46 dev drwxr-xr-x 5 root wheel 512 Oct 12 16:50 etc lrwxr-xr-x 1 root wheel 11 Oct 12 16:50 install -> install.sub -rw-r--r-- 1 root wheel 335 Oct 12 16:50 install.md -rwxr-xr-x 1 root wheel 59228 Oct 12 16:50 install.sub drwxr-xr-x 2 root wheel 512 Oct 12 16:45 mnt drwxr-xr-x 2 root wheel 512 Oct 12 16:45 mnt2 drwxr-xr-x 2 root wheel 512 Oct 12 16:45 sbin drwxrwxrwt 4 root wheel 512 Oct 12 16:50 tmp lrwxr-xr-x 1 root wheel 11 Oct 12 16:50 upgrade -> install.sub drwxr-xr-x 6 root wheel 512 Oct 12 16:45 usr drwxr-xr-x 6 root wheel 512 Oct 12 16:50 var # halt syncing disks... done halted
The following is not needed in order to experiment with booting OpenBSD, but can be interesting nonetheless: Download https://ftp.eu.openbsd.org/pub/OpenBSD/6.2/luna88k/boot and try
gxemul -v -e luna-88k 0x00700000:0x20:0x00700000:boot