It really doesn't make much difference which one you use. It just needs to run at 100 Mbit, so you don't even need one of the newer USB 3 units that support gigabit. I have a rocketfish one that gets the job done just fine. Also, the mainframes have two network ports on the back. One is normal, the other is wired with the TX and RX pairs swapped to eliminate the need for a crossover cable. It is possible to daisy-chain multiple mainframes by connecting the ports together, MDI to MDI-X, with a connection to the controller on one end of the chain. If you get a good quality adapter, it should support auto MDI-X, so it should not matter which port you connect it to as it will figure out the proper configuration.
As far as the bootup sequence, the the display cycles through a few states while the unit boots up. Bxx is the bootloader, and Kxx is the actual software. It should display CRC, OK, INIT, BHW1, BHW2, BNET, BIP. At that point, it will try to get an IP address, periodically displaying "Connect Ethernet and enable DHCP". If that times out, it will reset and display BOOT, CRC, OK, INIT, etc. After getting an IP, it will display BAPP and load the firmware via PXE. Sometimes it will take a couple of tries. Then it will cycle KHW1, KHW2, KNET, KIP, KAPP. Once the unit is finished booting, each card will display a number - 101, 102, etc. - that you will use to select which card you want to use when you start up the control software.
Also, now that I have my SPT VM running, here's how to set up networking properly. You'll need to connect the USB ethernet adapter, forward it to the VM (if applicable) and install the driver, and assign it a static IP. I picked 192.168.250.1 with subnet mask 255.255.255.0. Then you need to edit C:\amp-dhcpd\dhcpd.conf to use the right address. Mine looks like this:
# @(#) amp-dhcpd.conf 01.04
ddns-update-style none;
ddns-updates off;
deny client-updates;
one-lease-per-client false;
allow bootp;
include "dhcpd-site.conf";
option T150 code 150 = string;
local-address 192.168.250.1;
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
#
option space PXE;
option PXE-encap-opts
code 175 = encapsulate PXE;
option PXE.bus-id
code 177 = string;
option PXE.cmd-line
code 130 = text;
option PXE.bootfilename
code 67 = string;
option PXE.mtftp-ip
code 1 = ip-address;
option PXE.mtftp-cport
code 2 = unsigned integer 16;
option PXE.mtftp-sport
code 3 = unsigned integer 16;
option PXE.mtftp-tmout
code 4 = unsigned integer 8;
option PXE.mtftp-delay
code 5 = unsigned integer 8;
option PXE.discovery-control
code 6 = unsigned integer 8;
option PXE.discovery-mcast-addr
code 7 = ip-address;
subnet 192.168.250.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option resource-location-servers 192.168.250.1;
option time-offset -3600;
option time-servers 192.168.250.1;
server-identifier 192.168.250.1;
option log-servers 192.168.250.1;
class "pxe-clients" {
match if substring (option
vendor-class-identifier, 0, 9) = "PXEClient";
option vendor-class-identifier "PXEClient";
vendor-option-space PXE;
# At least one of the vendor-specific PXE
# options must be set in order for the client
# boot ROMs to realize that this is a PXE-
# compliant server. We set the MCAST IP address
# to 0.0.0.0 to tell the boot ROM that we can't
# provide multicast TFTP.
option PXE.mtftp-ip 239.255.0.1;
option PXE.mtftp-cport 21531; #6996 decimal, Intel byte order
option PXE.mtftp-sport 21531;
option PXE.mtftp-tmout 1;
option PXE.mtftp-delay 2;
option PXE.discovery-control 9;
option PXE.cmd-line "console=ttyS0,115200n81";
#option PXE.discovery-mcast-addr 227.0.31.1;
# This is the name of the file the boot ROMs
# should download.
if not exists PXE.bus-id {
option PXE.mtftp-ip 239.255.0.1;
option bootfile-name "undionly.kpxe";
} else {
option PXE.mtftp-ip 239.255.0.2;
filename "mtftp://192.168.250.1:6997/n2xlinuz64";
}
# This is the name of the server they should
# get it from.
next-server 192.168.250.1;
}
class "n2x-clients" {
match if (client-port = 7902);
}
class "crm-clients" {
match if (option vendor-class-identifier = "Agilent_Shm") or
(option vendor-class-identifier = "Agilent-AMP-ShMM");
option log-servers 192.168.250.1;
#option vendor-encapsulated-options FD:2F:66:74:70:3a:2f:2f:31:30:2e:30:2e:30:2e:31:2f:63:72:6d:2f:73:69:67:6e:65:64:5f:73:63:72:69:70:74:5f:70:61:63:6b:61:67:65:2e:74:61:72:2e:67:7a;
if exists dhcp-parameter-request-list {
option dhcp-parameter-request-list = concat(option dhcp-parameter-request-list,7,2b);
}
}
pool {
max-lease-time 38880000;
default-lease-time 38880000;
range 192.168.250.3 192.168.250.254;
allow members of "n2x-clients";
allow members of "pxe-clients";
allow members of "crm-clients";
# If you include this, you must provide host
# entries for every client, optionally associating
# ethernet MAC addresses with IP addresses.
#deny unknown clients;
}
}
I don't have a copy of the original to tell you exactly what was changed. Anyway, you should be able to just drop that one in and be good to go. You'll probably have to restart the DHCP server or the whole VM after editing the file. After that, you should be good to go.