Site Tools


Sidebar

hardwarerelated:sun_ultra_5

What?

Notes on lighting up a Sun Ultra 5. Dmesg outputs are here. Care and feeding of a Sun Ultra 5/10

  • 48x ide CD drive, might have to replace mine. IDE disks of up to 128GB capacity can be addressed.
  • I run NetBSD 9.3. Attempts to install Solaris failed, details are below. First issue is to find NFSv1 servers now in 2023, for that I run “Fedora core 1” in a VM and bridge a network interface directly to the link to the Sun Ultra5. Current issue: kernel/unix not found.

Setting up the serial connection

  • Commands: either “screen /dev/ttyUSB0 9600,cs8” or “minicom -b 9600 -D /dev/ttyUSB0”. The latter one is recommended, as you can press <ctrl>+<a>, then “z”, then “f” to send a break to the Sun, which gets you to the “OK-prompt”. Very handy.
  • Keyboard/screen should not be connected when turning on the system, so serial port gets used.
  • Which serial port? “serial port a” got used for me, the DB25 female port. Serial port b, the male DB9, was not active by default.
  • Which ports are used? I first used 2 usb-serial adapters “dsd-tech”, and adapter2) which only had ground/rx/tx pins. With these, I got _something_ (“y�J�”), and reactions to input, but that was not readable. I now use a usb-serial adapter which has DB9 female, a DB9 male/DB29 female adapter, that combination works.
  • serial port pin layout, from sunhelp.org:
Serial Port A (DB25)
Pin   Signal      Description
2     TxD output  Transmit Data
3     RxD input   Receive Data
4     RTS output  Request to Send
5     CTS input   Clear to Send 
6     DSR input   Data Set Ready
7     GND         Ground       
8     DCD input   Data Carrier Detect
9-14  none        Not connected     
15    TRxC input  Transmit Clock   
16    none        Not connected
17    RTxC input  Receive Clock
20    DTR output  Data Terminal Ready
21-23 none        Not connected
24    TxC output  Transmit Clock
25    none        Not Connected

Working around a dead nvram

“The IDPROM contents are invalid” hints at the nvram being dead:

ok banner
Sun Ultra 5/10 UPA/PCI (UltraSPARC-IIi 270MHz), No Keyboard
OpenBoot 3.15, 256 MB memory installed, Serial #16777215.
Ethernet address ff:ff:ff:ff:ff:ff, Host ID: ffffffff.


The IDPROM contents are invalid

ok 
ok boot net
Boot device: /pci@1f,0/pci@1,1/network@1,1  File and args: 
Internal loopback test -- Did not receive expected loopback packet.

Can't open boot device

ok 

The settings can be done on the fly (they are lost when power is turned off though):

# get the system into the "ok" prompt, for example issuing a break signal, then
set-defaults
 1 0 mkp
80 1 mkp
 8 2 mkp
 0 3 mkp
20 4 mkp
c0 5 mkp
ff 6 mkp
ee 7 mkp
 0 8 mkp
 0 9 mkp
 0 a mkp
 0 b mkp
c0 c mkp
ff d mkp
ee e mkp
0 f 0 do i idprom@ xor loop f mkp
banner
# should show Ethernet address: 8:0:20:c0:ff:ee, Host ID: 80c0ffee.
reset

Installing NetBSD

  • I booted via network. Direct cable connection to a Debian box, with mode 100/Fullduplex. Here are the setup instructions. My first setup was NetBSD 8.1, now I'm running 9.3.
  • NFSv2 had to be activated, on Debian I had to add RPCNFSDOPTS=“–nfs-version 2,3,4” to /etc/default/nfs-kernel-server. Activating NFSv2 gets increasingly harder. Fedora core 1 (from 2003) can serve also NFSv1.
  • I had to set the “next-server 10.0.0.1;” option in dhcpd.conf, I use isc-dhcpd
  • Netbsd has by default root login with password disabled, 'PermitRootLogin yes' in /etc/ssh/sshd_config changes this

Staring NetBSD after cold boot

This has quite some steps, as the prom gets reset, so also the MAC. These are the required steps:

# get the system into the "ok" prompt, for example issuing a break signal, then
set-defaults
 1 0 mkp
80 1 mkp
 8 2 mkp
 0 3 mkp
20 4 mkp
c0 5 mkp
ff 6 mkp
ee 7 mkp
 0 8 mkp
 0 9 mkp
 0 a mkp
 0 b mkp
c0 c mkp
ff d mkp
ee e mkp
0 f 0 do i idprom@ xor loop f mkp
banner
# should show Ethernet address: 8:0:20:c0:ff:ee, Host ID: 80c0ffee.

boot disk netbsd

Installing Solaris

I did not get Solaris installed, for further attempts I need to burn a cd (solaris8) or dvd (solaris10). Jumpstart did not work for me so far.

  • several Solaris versions: winworldpc.com
  • Solaris network installation needs NFSv2
    • Linux: does kernel side offer v2? 'rpcinfo -p|grep nfs'
    • Test mount: mount -t nfs -o nfsvers=2 192.168.10.1:/mnt/nfs /mnt/tmp/
  • Solaris 8/9 notes:
    • These iso files can be mounted as iso9669 on a linux system (mount -o loop sol.iso /mnt/tmp), but just a 192kb filesystem becomes available. One could burn the image and try to boot it.
  • Solaris 10 notes:
    • The iso files are mountable, contents can be copied.
    • Tried setting up a Jumpstart server. The sun gets an IP via rarpd, but then sends requests to RPC (port 111), when it is supposed to ask for further data from bootparamd:
[tftp transfer ending]
14:17:55.577445 IP 10.0.0.1.41667 > 10.0.0.2.24661: UDP, length 516
14:17:55.588661 IP 10.0.0.2.24661 > 10.0.0.1.41667: UDP, length 4
14:17:55.588773 IP 10.0.0.1.41667 > 10.0.0.2.24661: UDP, length 404
14:17:55.594455 IP 10.0.0.2.24661 > 10.0.0.1.41667: UDP, length 4
14:17:55.971800 ARP, Request who-has 10.0.0.2 tell 10.0.0.1, length 28
14:17:56.995783 ARP, Request who-has 10.0.0.2 tell 10.0.0.1, length 28
14:17:57.940897 ARP, Reverse Request who-is 08:00:20:c0:ff:ee tell 08:00:20:c0:ff:ee, length 60
14:17:57.941256 ARP, Reverse Reply 08:00:20:c0:ff:ee at 10.0.0.2, length 28
14:17:57.977524 IP 10.0.0.2.512 > 255.255.255.255.111: UDP, length 76
14:18:09.749781 IP 10.0.0.2.512 > 255.255.255.255.111: UDP, length 76
14:18:23.763177 IP 10.0.0.2.513 > 255.255.255.255.111: UDP, length 76

Setup Solaris network install server with RHEL7 (not working)

Attempt to setup an install server to install Solaris on the Ultra5 via network. Big issue seems to be NFSv2. These steps did not result in success.. just recording them here. This is loosely following this guide. As per above, the battery in this system is dead, after reboots I'm setting parameters to set MAC 8:0:20:c0:ff:ee.

# setup rhel7.9 on a Thinkpad x200.  After initial setup, hooking it into
# wlan for SSH login, and using the ethernet connection to connect to the
# Ultra5.

# registering, updating
subscription-manager register [..]
subscription-manager list --all --available >allsubs.txt
subscription-manager subscribe --pool=[..]
subscription-manager repos --disable='*' --enable=rhel-7-server-rpms \
  --enable=rhel-7-server-extras-rpms --enable=rhel-7-server-optional-rpms \
  --enable=rhel-7-server-debug-rpms --enable=rhel-7-server-source-rpms
 
yum update -y
yum -y install http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install gcc git-core libtirpc-devel nfs-utils \
  NetworkManager-wifi tftp-server strace tcpdump
reboot

# In anaconda, I had already setup my wlan.  
nmcli con
nmcli con up fluxnet
nmcli con mod fluxnet connection.autoconnect yes

# Default ethernet is DHCP, make a copy and configure it with
# static IP.
nmcli con clone enp0s25 enp0s25-static
nmcli con mod enp0s25 connection.autoconnect no
nmcli con mod enp0s25-static ipv4.method manual ipv4.addresses 192.168.10.1/24
nmcli con up enp0s25-static

# At this point, we can login via wlan, and enp0s25 has a static IP.

mount -o loop Sun\ Solaris\ 7.0.1199\ \[Sun\ SPARC\].iso tmp
mkdir -p /mnt/nfs
cp -r tmp /mnt/nfs/sol7

# compile rarpd, configure
mkdir rarpd
vi Makefile
vi rarpd.c
make
cd ..

echo '08:00:20:c0:ff:ee sunze' >/etc/ethers
echo '192.168.10.2 sunze' >>/etc/hosts

# compile bootparamd
curl http://hintshop.ludvig.co.nz/download/netkit-bootparamd-0.18-pre1.tar.gz
git clone https://github.com/vogelchr/netkit-bootparamd
cd netkit-bootparamd/
./configure
make

setenforce 0
systemctl stop firewalld
systemctl disable firewalld

vi /etc/nfs.conf
# ensure following 3 lines:
[nfsd]
udp=y
vers2=y

echo '/mnt/nfs	192.168.10.0/24(ro,no_root_squash,no_subtree_check)' >/etc/exports
systemctl start nfs

cat /proc/fs/nfsd/versions
# +2 +3 +4 +4.1 +4.2 <- kernel supporting NFSv2
rpcinfo -p
   program vers proto   port  service
   [..]
    100003    2   udp   2049  nfs <- rpcbind advertising NFSv2/udp
   [..]

showmount -e
Export list for x200.localdomain:
/mnt/nfs 192.168.10.0/24 <- export active

echo 'sunze	root=192.168.10.1:/mnt/nfs/sol7/Solaris_2.7/Tools/Boot install=192.168.10.1:/mnt/nfs/sol7/ boottype=:in' >/etc/bootparams

cat /usr/lib/systemd/system/tftp.service
# We learn that it's serving /var/lib/tftpboot by default, ok.
systemctl start tftp.service

# Make a copy of the inetboot file for our sun4u system
cd /mnt/nfs/sol7/
find .|grep inetbo
cp ./Solaris_2.7/Tools/Boot/usr/platform/sun4u/lib/fs/nfs/inetboot \
  /var/lib/tftpboot/inetboot.sun4u.sol7
cd /var/lib/tftpboot/
ln -s inetboot.sun4u.sol7 C0A80A02

# let's start rarpd and bootparamd
cd /root/rarpd
./rarpd -v -b /var/lib/tftpboot/
cd /root/netkit-bootparamd/rpc.bootparamd/
./bootparamd

# I needed to run 'strace -f -p <pid-of-rarpd>' to debug 

# further debugging
tcpdump -n -i enp0s25 -v -w /tmp/dumpp

# Local mounts with v2 still do not work :(
mount -t nfs -o nfsvers=2 192.168.10.1:/mnt/nfs/sol7/ /mnt/tmp
mount.nfs: Protocol not supported

# When booted against this setup, the Ultra5 outputs as following.
# It's fetching inetboot via tftp, but then fails mounting.
  Rebooting with command: boot net -v - install
Boot device: /pci@1f,0/pci@1,1/network@1,1  File and args: -v - install
23a00 xdr_string: size FAILED
RPC: Can't decode result.
whoami RPC call failed with rpc status: 2
panic - boot: Could not mount filesystem.
Program terminated
ok

# Logs on server side
Dec 17 18:34:19 x200 kernel: e1000e: enp0s25 NIC Link is Up 100 Mbps Full Duplex, Flow Control: None
Dec 17 18:34:19 x200 kernel: e1000e 0000:00:19.0 enp0s25: 10/100 speed: disabling TSO
[ 6646.433120] e1000e 0000:00:19.0 enp0s25: 10/100 speed: disabling TSO
Dec 17 18:34:19 x200 NetworkManager[2101]: <info>  [1702834459.2230] device (enp0s25): carrier: link connected
Dec 17 18:34:19 x200 rarpd[14003]: RARP request from 08:00:20:c0:ff:ee on enp0s25
Dec 17 18:34:19 x200 rarpd[14003]: RARP response to 08:00:20:c0:ff:ee 192.168.10.2 on enp0s25
Dec 17 18:34:19 x200 systemd: Started Tftp Server.
Dec 17 18:34:22 x200 in.tftpd[14185]: Client ::ffff:192.168.10.2 finished C0A80A02
[ 6649.377159] e1000e: enp0s25 NIC Link is Down
Dec 17 18:34:22 x200 kernel: e1000e: enp0s25 NIC Link is Down
[ 6650.998922] e1000e: enp0s25 NIC Link is Up 100 Mbps Full Duplex, Flow Control: None
[ 6650.999034] e1000e 0000:00:19.0 enp0s25: 10/100 speed: disabling TSO
Dec 17 18:34:23 x200 kernel: e1000e: enp0s25 NIC Link is Up 100 Mbps Full Duplex, Flow Control: None
Dec 17 18:34:23 x200 kernel: e1000e 0000:00:19.0 enp0s25: 10/100 speed: disabling TSO
Dec 17 18:34:23 x200 NetworkManager[2101]: <info>  [1702834463.7891] device (enp0s25): carrier: link connected
Dec 17 18:34:23 x200 rarpd[14003]: RARP request from 08:00:20:c0:ff:ee on enp0s25
Dec 17 18:34:23 x200 rarpd[14003]: RARP response to 08:00:20:c0:ff:ee 192.168.10.2 on enp0s25

# rpcbind in debug mode
Dec 17 18:39:15 x200 rpcbind[14216]: pmap_rmtcall callit req for (100026, 1, 1, udp) from 192.168.10.2.3.117 :
Dec 17 18:39:15 x200 rpcbind[14216]: prog 100026 vers 1: not found
Dec 17 18:39:39 x200 rpcbind[14216]: pmap_rmtcall callit req for (100026, 1, 1, udp) from 192.168.10.2.3.171 :
Dec 17 18:39:39 x200 rpcbind[14216]: prog 100026 vers 1: not found

Solaris 10 first steps

I did not get Solaris installed on the Ultra5, these steps are for Solaris/x86 which I installed to experiment with the system as install server foe Solaris/sparc.

# the ssh algorithms are no longer considered secure.
# Enable the insecure ones:
ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 \
  -oHostKeyAlgorithms=+ssh-dss root@192.168.122.132

# Take second interface up, bridged on hypervisor
ifconfig e1000g1 plumb up
ifconfig e1000g1 192.168.10.2/24
echo 'sol10priv' >/etc/hostname.e1000g1
echo '192.168.10.2 sol10priv' >>/etc/hosts

Fedora core 1

# Fedora core 1 is from 2003, we need to reenable old crypto,
# and set an old terminal type
export TERM=xterm
root@nexus:~# ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 \
  -oHostKeyAlgorithms=+ssh-dss -o'Ciphers aes128-cbc' root@192.168.122.171

service portmap start
service nfs start

# this succeeds now!
mount -t nfs -o nfsvers=2 192.168.10.2:/mnt/nfs /mnt/tmp/

# sun boot attempt
ok boot net -v - install
Boot device: /pci@1f,0/pci@1,1/network@1,1  File and args: -v - install
2ec00 hostname: sunze
domainname: (none)
root server: 192.168.10.2
root directory: /mnt/nfs/sol26/Solaris_2.6/Tools/Boot
boot: cannot open kernel/unix
Enter filename [kernel/unix]: /
File not executable.
boot failed
Enter filename [/]: unix
boot: cannot open unix
Enter filename [kernel/unix]: kernel/unix
boot: cannot open kernel/unix
hardwarerelated/sun_ultra_5.txt · Last modified: 2024/03/03 11:50 by chris