GXemul: Artesyn PM/PPC emulation

Back to the index.

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.


NetBSD/pmppc:

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 client.json:
           
    {
      "gxemul": 1,
      "name": "client machine",
      "machine": { "serial_nr": 1, "type": "pmppc" },
      "boot": { "load": [ "netbsd-PMPPC.gz" ] },
      "network": { "remotes": [ "localhost:12444" ], "local_port": 12445 }
    }
    
    ... and another configuration file for the server, server.json:
           
    {
      "gxemul": 1,
      "name": "nfs server",
      "machine": { "serial_nr": 2, "type": "decstation", "model": "3max" },
      "drives": [ { "file": "nbsd_pmax.img" } ],
      "network": { "local_port": 12444, "remotes": [ "localhost:12445" ] }
    }
    

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 server.json
	gxemul client.json

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)