Site Tools


hardwarerelated:sun_ultra_5

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
hardwarerelated:sun_ultra_5 [2020/12/29 09:28] chrishardwarerelated:sun_ultra_5 [2024/03/03 11:50] (current) chris
Line 1: Line 1:
 +===== What? =====
 +Notes on lighting up a Sun Ultra 5. [[/software/dmesg/sparc64_sun_ultra5|Dmesg outputs are here.]] [[https://theconsultant.net/2006/04/care-and-feeding-of-a-sun-ultra-510/|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 [[https://www.amazon.co.jp/gp/product/B00K7YYFNM/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1|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:
 +<code>
 +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
 +</code>
 +
 +===== Working around a dead nvram =====
 +"The IDPROM contents are invalid" hints at the nvram being dead:
 +<code>
 +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, File and args: 
 +Internal loopback test -- Did not receive expected loopback packet.
 +
 +Can't open boot device
 +
 +ok 
 +</code>
 +The settings can be done on the fly (they are lost when power is turned off though):
 +<code>
 +# 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
 +</code>
 +
 +===== Installing NetBSD =====
 +  * I booted via network. Direct cable connection to a Debian box, with mode 100/Fullduplex. [[https://cdn.netbsd.org/pub/NetBSD/NetBSD-9.3/sparc64/INSTALL.html|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:
 +<code>
 +# 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
 +</code>
 +
 +===== 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: [[https://winworldpc.com/product/sun-solaris/|winworldpc.com]] 
 +  * obp firmware [[https://archive.org/details/sunshack_bootroms]]
 +  * 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:
 +<code>
 +[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
 +</code>
 +  * Jumpstart server hints: http://hintshop.ludvig.co.nz/show/solaris-jumpstart-linux-server/
 +
 +===== 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 [[http://hintshop.ludvig.co.nz/show/solaris-jumpstart-linux-server/|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.
 +<code>
 +# 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, 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
 +</code> 
 +
 +===== 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.
 +<code>
 +# 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
 +</code>
 +
 +===== Fedora core 1 =====
 +
 +  * https://suresh-solaris.blogspot.com/2013/08/solaris-useful-ok-prompt-commands.html - sun ok prompt commands
 +  * https://www.sunmanagers.org/1999/1532.html - collection of what to check for "cannot open kernel/unix"
 +  * solaris8 dvd looks empty? Just slice 0 gets mounted on Linux with 'mount -o loop ..'. There is a second slice. [[https://docs.oracle.com/cd/E19455-01/816-2411/6m8ou8sgc/index.html#cdlayout-fig-42|ref]]
 +<code>
 +# 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, 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
 +</code>