===== 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 +, 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: 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. [[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: # 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: [[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: [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 * 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. # 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 ' 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]: [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]: [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 ===== * 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]] # 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