FreeBSD 10.1 on UltraSPARC Sun Ultra 60: Booting and initial packages

As noted in my previous article, my friend Madeline and I set out yesterday to fix my Sun Ultra 60’s boot problems so that it could run FreeBSD. The issue ended up being that the disk alias in OpenBoot had been scrambled (probably from the NVRAM reset I did to force it to boot), and was reading from a SCSI target that did not exist. I fixed this and it instantly booted up FreeBSD!

Now comes the fun part. I would really like to use pkg-ng and avoid building packages on a 360MHz computer if at all possible. Even though the UltraSPARC-II’s 360MHz is closer to an Intel’s 800-1000MHz, it’s still a pretty poor platform for compiling some of the things I plan to use on it. I would like to run things like CMake and the new Clang 3.5 vs the very old, broken GCC 4.2.1 that FreeBSD on sparc64 ships.

I plan on setting up a buildbox on amd64 that will cross-compile ports for sparc64. There is only a single reference I can find for setting up such a system, and the instructions aren’t too clear to me, so I will be writing up my experiences. For now, I have built ports-mgmt/pkg from source and it works. Unfortunately FreeBSD runs no mirrors, so I will have the “honour” of setting up my own local pkg mirror. If I’m able to make it work and compile enough useful ports I may make it public.


FreeBSD 10.1 on UltraSPARC Sun Ultra 60: The adventure begins

Today begins a new adventure for me. After trying to like Solaris 8 and finding it too old, and trying to like Solaris 11 and finding it too Enterprisey EnterpriseWare™, and unsuccessfully trying to boot Linux plenty of times, I am going to install FreeBSD 10.1 on my Sun Ultra 60. Some specs…

  • UltraSPARC-II 360MHz (supposedly equivalent to a Pentium III, which at the time was huge)
  • 512MB RAM (again, at the time it was released, this was more than anyone would ever need)
  • 18.6GB Fujitsu SCSI disk, which doesn’t give me a whole lot of room but is sufficient (I’ve run FreeBSD 9 on a P4 with a 20GB disk, with KDE and X, so…)
  • Creator 3D UPA graphics – full 1080p, with 3D and 2D acceleration – in 1999.
  • OpenBoot 3.31

You may be asking why I would use this computer. I have a few reasons. One is that I love utilising different CPU architectures and computers for what they do best. I’m thinking about playing around with some older graphics demos and seeing what I can get OpenGL/SDL2 to do with this. Considering that at the time it was 10x more powerful than any PC around, it may be enough to get some small-ish demos running at good speed. Another reason is that it’s just a fun project, and another big-endian architecture besides PowerPC that I can use for endianness testing. I also am looking forward to porting SuperGameHerm to the SPARC architecture if I am able.

I’ll be blogging about using and maintaining this system as I continue to use it, but for now, some installation notes!

Booting the System.

This computer is notoriously fickle to boot. I had to hold the STOP+N keys to clear the NVRAM to be able to see video at all. STOP+D is also a useful key combo, as it turns on the POSTs and ensures all the devices are working properly. All devices passed in my unit, so I proceeded at the OpenBoot “ok” prompt to type boot cdrom and watched the system boot up.

Booting the Kernel.

I watched with glee as the system booted the FreeBSD 10.1 kernel, but the glee quickly turned to dismay as I saw…

cd0: cd present [269120 x 2048 byte records]
Trying to mount root from cd9660:/dev/iso9660/10_1_RELEASE_SPARC64_CD [ro]...
warning: no time-of-day clock registered, system time will not be set accurately

No disk activity. The CD drive was quiet. The fans weren’t even spun up, so there was no CPU activity. It was quiet… Too quiet… Eerily quiet for what was supposed to be a noisy, happy FreeBSD install. I pressed STOP+A to try and break into OpenBoot. The system was locked solid and it would not respond. Fortunately, it seems to be a glitch, and resetting the system (power down and power up) fixed this issue.

Installing the FreeBSD.

Since the Linux install failed and I already saved the contents of the SPARC slices, I used the Automatic Disk partitioning, which created a 17 GB / and 800 MB swap slice. This should be enough for most builds. It may not be enough for Qt, but I will probably not build Qt on here anyway. Now the fun part: Installing the distributions (somewhat akin to package sets on Linux, I guess). I downloaded the full Disc 1 ISO and burned it to a CD so I did not have to configure the network or wait for the – sadly only 10Mbit – Happy Meal Ethernet to download any files. It verified the checksums and immediately began installing to my local disk drive.

Note that I saw a few odd errors: “sym0: unexpected disconnect”. This didn’t seem to affect the installation any, so I’m not sure what exactly is going on here.

After that was finished, it was time to set up the devices. I configured networking (v4 + v6), added a user account for myself, and then set out to install pkg-ng, the FreeBSD package management tool that makes FreeBSD so amazing and easy to use. Sadly, it does not support SPARC64, only the Intel x86 family of systems. The first order of business, then, is making a pkg-ng server for myself. I will cover that later, when I’m able to get that going. For now, it’s ports (building from source) only.

Booting into the FreeBSD!

And now, everything is finished. Eject the CD and reset the system. This is going to be wonder—-ful?

Luckily, one of my friends is an experienced SPARC sysadmin so she is going to help me fix it. Later today I will post the resolution, but first we have to find it. Until then, happy hacking!

Not having "resolutions" this New Years

Okay, I understand that many people like to make up “resolutions” for New Years. Stop me if you’ve heard this one before:

  • “This is the year I start eating healthier.”
  • “This is the year I go the gym ALL THE DAYS.”
  • “This is the year I volunteer to ALL THE CAUSES.”
  • “This is the year I will change (some basic trait) and instead (do something seen as better by society)!”

Right, that never works. And here’s why: the motivations are completely wrong. “New Year’s Day” is, by the by, just another day. It’s another day that is usually felt hung over, but still it is just another day. This is not a catalyst with which to make a large change, for yourself or for anyone else. What matters is not when you start something, but how and why you start it. Why do you want to eat healthier? Is it because it’s the “in” thing to do, or is it because you genuinely want to be healthy? Do you really only want to be healthy because it’s a new year?

I realise that many people view a new year as a “new beginning”; whilst a happy sentiment, and one that can sell a lot of greeting cards and party hats, it is nothing more than just that – a sentiment. The boundary of a year is an invented one. If you truly want to be healthy, you should do it because you want to be healthy, not because you want “this year to be different”. When you inevitably slip up — don’t be ashamed of yourself, we all do at one point or another — you can simply say “I still want to be healthy and I’ll keep at it” instead of “oh well, this year isn’t being different, I’ll try again next year”. You’ll eventually run out of next years with which to try again.

So what are my goals for this year? I’d like to move to a better locale than I live now and finally finish my schooling. However, these aren’t new goals I pulled out of my rear for the new year; I have been working at them for months now and I plan to achieve them this year. Plan ahead and don’t stop for the bumps. Be inspired to smooth over the next ones!

I suppose my major point to this is that the best thing you can do this New Years is enjoy it with your friends and family. And if you want to change something besides your wall calendar, you need to have the right reasons for it. You are definitely worth your own investment of time and energy. You just have to see yourself that way, and then it will pay off in dividends.

Now playing: ♫ Skyfall – Adele

Categorisation and judgement

I’ve noticed that, especially on the internet, people are judged based on broad generalisations and wide-sweeping categories. Why?

Some have told me that stereotypes are typically true, otherwise they wouldn’t exist. I am inclined to disagree because of how many stereotypes I’ve seen proved untrue. I think that this is a self-deluded rationalisation from people who want to have a reason to feel better about themselves after passing judgement. For example, some people feel that all programmers are “assholes”, and while I know some programmers are, this is largely not the case in my experience. Programmers are sometimes impassioned, sometimes lacking in empathy, but I rarely see ‘assholes’.

Some have told me that they have their own personal bad experiences with a member of a group, so they feel the entire group is bad. I don’t want to start a war about furries or musicians or bronies or [fill in the blank], but a single member of a group you haven’t interacted with much is probably the loudest one and therefore the poorest representation of what the group as a whole is like. In my spare time, I like to draw canines (especially wolves and foxes), and this has given me a bit of an overlap with some of the furry community. I’ve found most of them to be balanced, delightful people — though certainly they aren’t all that way — yet I still constantly run in to people who think that furries are monsters. I met someone once who actually hoped that all furries “die of horrible diseases you can only get from having sex with animals”… which fails to note that I haven’t even met a furry that does such a thing. Again, this is just a stereotype that is silly and causing unnecessary hate and tension to a group of people based on stories or a few fringe members.

What I implore you to do is to think for yourself and do a little research before you hate someone or a group based solely on something they like or their profession or the group with which they have membership. The results may surprise you.

♫ Now playing: Fade – AJITEK