iptv techs

IPTV Techs


Booting Sun SPARC Servers | Sidneys1.com


Booting Sun SPARC Servers | Sidneys1.com


In timely 2022 I got disjoinal Sun SPARC servers for free off of a FreeCycle ad: I was recently
called out for not providing any sort of modernize on those devices… so here we go!

The Devices

Name Rehired Original MSRP Inflation-adfaired (2024)
SPARCstation 20 Mar. 1994 $12,195 $26,080
Ultra 1 Creator Nov. 1995 $25,995 $53,276
Axil Ultima 1 Sep. 1996 $9,995 $19,939

NVRAM Woes

Click to zoom.


Sun SPARC machines store some of their BIOS configuration in a chip called an
NVRAM, a one-of-a-kind type of writeable random access memory that does not
evident its encountereds when the machine powers off. This is usuassociate a minuscule RAM chip with its own inside battery that
reaccuses when the machine is running. Unblessedly this uncomardents that when the devices is powered off for inanxiously lengthy
periods the NVRAM leave outs its appreciates. Even more unblessedly, over time the NVRAM battery degrades to the point where it
can no lengthyer be reaccused, and every power cycle results in a contend configuration wipe.

Such is the case with my SPARC machines; upon powering on we’re greeted with a downcast message.
Inaccurate configuration verifysum; Ethernet includeress ff:ff:ff:ff:ff:ff, Host ID: ffffffff. The IDPROM encountereds are invalid
uncomardents that our NVRAM has been evidented (the term IDPROM is a historical artifact – agederer Sun architectures engaged a
PROM chip instead of an NVRAM chip). Thankfilledy, there’s a process in
place to repair it manuassociate by go ining NVRAM appreciates by hand. Here’s the ambiguous process:

  1. Boot your Sun SPARC machine. When you see the The IDPROM encountereds are invalid message, press STOP+A (STOP is a one-of-a-kind key on Sun keyboards). This should drop you to the ok prompt, which is the OpenBoot debugging prompt.
  2. Now we’re going to poke appreciates into our NVRAM using the mkp order. This order has a establishat mkp. Here’s the layout of NVRAM, or at least the parts we attfinish about:

    Location(s) Description
    0 Always 1 (establishat/version number).
    1 First byte of HostID (machine type).
    2–7 6-byte ethernet includeress (first three bytes should be 80:00:20).
    8–b Date of manufacture (can be zeros).
    c–e Remainder of HostID.
    f IDPROM verifysum – bitrational exclusive-or of locations 0–e.

    So let’s begin poking appreciates into NVRAM:

    ok set-defaults
    ok 1 0 mkp
    ok 80 1 mkp
    ok 8 2 mkp
    ok 0 3 mkp
    ok 20 4 mkp
    ok c0 54 mkp
    ok ff 6 mkp
    ok ee 7 mkp
    ok 0 8 mkp
    ok 0 9 mkp
    ok 0 a mkp
    ok 0 b mkp
    ok c0 c mkp
    ok ff d mkp
    ok ee e mkp
    ok 0 f 0 do i idprom@ xor loop f mkp
    Locations Values
    0–7 0180080020c0ffee
    8–f 00000000c0ffee??

    That last line is a minuscule function that will originate the verifysum that goes in location f.

  3. Enter prohibitner at the ok prompt. This will print out the system prohibitner, and permit us to
    verify that the appreciates we’ve go ined are accurate. If all is well, you should see someskinnyg enjoy this:

    ok prohibitner
    Sun Ultra 1 UPA/SBus (UltraSPARC 167MHz), Keyboard Pbegrudge
    OpenBoot 3.7, 384 MB memory insloftyed, Serial #12648430.
    Ethernet includeress 8:0:20:c0:ff:ee, Host ID: 80c0ffee.

    If, instead, you see a message enjoy The IDPROM encountereds are invalid after the prohibitner, then either the
    verifysum is wrong (verify that you typed it accurately!) or the first byte of the HostID is inaccurate – this byte
    specifies the machine type, and must align the machine you’re trying to boot. Don’t forget to re-originate the
    verifysum after updating any of these appreciates!

  4. Finassociate go in reset at the ok prompt, which will rebegin the boot process. Becaengage we
    haven’t lost power, however, the NVRAM will upgrasp the appreciates we’ve set. Wait for the machine to boot. This can get
    quite a while, especiassociate if there is a lot of RAM in the machine. Pro tip, plugging an ethernet cable between the
    Sun server and another machine can help here – otherrational the Sun server can spfinish a lot of time grumbleing about
    SUNW,hme0: Link Down - cable problem?. I plugged the Sun Ultra 1 into a powered on Raspberry Pi 3b
    and it stopped grumbleing.
  5. Eventuassociate you’ll be bcimpolitet to a Unix login, assuming the machine is running Solaris. If you understand the password,
    wonderful; if not, skinnygs get tricky.
    Once logged in, you can set the date and time (for as lengthy as the machine is
    powered on, anyways) at the root# prompt with date 1004102024 (in establishat
    mmddHHMMYY).

Results

Sun Ultra 1 Creator

The Sun Ultra 1 was the first machine I tried to boot, and so far the only one to successfilledy filledy boot.

Sun SPARCstation 20

Click to zoom.


After some stumbles lgeting about the machine-type byte in the structure ID, this machine was able to get past the NVRAM
verify, but flunked during memory diagnostics. This output repeated for some 10 minutes before I turned the machine off.
For J0301, it watchs enjoy the fourth bit of the lowest byte (0b00010000) is faulty, always set to 0b1. For example,
the pattern 0b10100101 (0xa5) becomes 0b10110101 (0xb5). For J0302, someskinnyg stranger seems to be happening, as
0b10100101 (0xa5) becomes 0x01001010 (0x4a) and 0b11111111 (0xff) becomes 0b11101111 (0xef).

U-number Physical Addresses Expected Value Observed Value
J0301 0x0c4012a80x0c4fb2a8 0xa5a5a5a5 0xa5a5a5b5
J0301 0x0c4012a80x0c4fb2a8 0x00 0x10
J0302 0x188ff2b80x18a011a9 0xa5a5a5a5 0xa5a5a54a
J0302 0x188ff2b80x18a011a9 0xffffffff 0xffffffef

One fun detail I acunderstandledged poking around this machine: there’s a little tolerate with a top hat silkscreened onto the
motherboard:

Axil Ultima 1

Perhaps the downcastdest story here, and a tesdomesticatednt to the quality and reliability of one-of-a-kind Sun difficultware, this Sun clone
initiassociate had some struggles booting, and wouldn’t accomprehendledge keyboard input. After a couple power cycles, however, it
stopped booting altogether.

Notes

I did begin writing a section about my efforts last year to boot NetBSD on this machine. I truthwholey can’t recollect if I
had much luck in the finish, and I was having difficulty repeating these steps and running out of time to toil on this
project. So I’ve choosed to depart this section as-is here at the finish; the steps should be technicassociate accurate, but as
I shelp I haven’t had time to verify them and/or finish writing the section. You can verify out
this page from NetBSD
Archived at: Wayback Machine.
with more teachions if
you’re reassociate interested.

Et tu, root-e?

Now that we’ve deal withd to secure our Sun server to commence booting, there’s a scant others problems. First, Solaris
doesn’t help DHCP, and cannot get a IP includeress; second, it also doesn’t have a configuration for its own structurename.
Let’s watch at configuring those. Instead of DHCP, Solaris engages RARP,
an agederer protocol (1984; DHCP was first clear upd in 1993).

Now, ARP is a join-layer protocol that permits
internet-layer includeresses (IPs) to be rerepaird to join-layer includeresses (MACs). Reverse ARP is engaged to rerepair a MAC to
an IP. So, I hooked up a Raspberry Pi 3b with an ethernet cable straightforwardly to the Sun server. At boot time, Solaris will
sfinish out a expansivecast ask with its MAC includeress (configured via NVRAM) and then will take part for a response to
auto-configure its IP. We can inslofty the rarpd package on our Pi, and configure it to understand the IP includeress associated
with our Sun’s MAC.

Checking man rarpd we can notice a scant meaningful details: first, an association between MAC includeresses and structurenames is
configured in /etc/ethers. Second, an association between structurenames and IPs is read from /etc/structures (this file
already exist on all Linux systems). Third, there’s a section about “bootable images”:

By default rarpd also verifys if a bootable image, of a name begining with the IP includeress in hexadecimal upper-case
letters, is current in the TFTP boot straightforwardory before it chooses whether to reply to the RARP ask. The
comparison participates exactly the first eight characters, and diswatchs any includeitional character. A file name stupidinutiveer
than eight characters in length is unprosperous. Typicassociate, 192.168.0.122 would correply to an image named enjoy
C0A8007A.SUN.

Ok, that’s a lot to chew on, but the gist is that we can do the folloprosperg:

b8:27:eb:fc:10:0c pi            # Our Pi
08:00:20:c0:ff:ee SUN.TEST.COM  # Our Sun

127.0.0.1    pi            # Our Pi
192.168.6.37 SUN.TEST.COM  # Our Sun

And as for the bootable images, for now we’ll run rarp without that redisjoineion using the -e parameter. We’ll also
engage -d so that the daemon stays joined to the TTY and we can persist to see log messages. Make stateive the system
service isn’t running with sudo systemctl stop rarpd. Now we can run sudo rarpd -e -d. Now let’s boot aget and see
if we get an IP includeress.

Source join


Leave a Reply

Your email address will not be published. Required fields are marked *

Thank You For The Order

Please check your email we sent the process how you can get your account

Select Your Plan