I've been experimenting with a pretty old version of SunOS (5.6, AKA Solaris 2.6) on a SPARCbook 3GS. I'm forgetting more than I'm learning so I need to get some notes down about it. Perhaps someday I will organize them into something useful.
This info is mostly particular to SunOS 2.6; much of it will work on 2.5 and 2.7 but ymmv. I think they changed a bunch of crap before and after those versions. Read the manual for best results, do not cook at high altitudes.
Oracle still hosts a bunch of ancient SunOS docs here. Read them. You cannot use old crap like this without reading the manual.
Finding software: You might be surprised to learn that SunOS has a package system since Way Back. I don't know if there's a name for it other than "sunos package" and I don't think they have a file extension. There's a lot of software out there, particularly GNU tools, in this format.
To get started, look up "sunfreeware" - or, if they're still up, hit this and this site for a bunch of packages. Anything that says "sun26" on it should work on 2.6; go up a folder to find more versions.
Installing packages: If you're getting packages in SunOS' package format, they're a bit weird to install. I'm not sure what the ideal way is, but what I had to do was this:
I'm pretty sure I'm doing something wrong but I think the packages I was finding were in a slightly newer format which pkgtrans could handle but pkgadd couldn't.
tar weirdness: If you download tar files made in the last couple decades, particularly by linux people, you may find that SunOS tar chokes on them. I can't remember the error, I think something about the file directory not being readable. The trick is that linux actually produces GNU tar format, so you'll need a GNU tar utility.
Naturally, GNU tar can do everything tar can and more, so once you get a hold of it, put it in /usr/local/bin and it'll shadow the built-in one, making everything better. If I remember correctly, here's how I did that:
At this point, if you encounter a GNU tar file, you can call /usr/local/bin/tar to extract it. By default SunOS' shell doesn't have that in-path so you'll have to add that to your .profile for it to actually shadow (that is, override) the built-in tar.
Changing shell: I'm not one for "let's turn every old computer experience into modern linux!!!" but some QoL things are just impossible to turn down. sh sucks. you want bash, for tab completion and command history and all that crap. bash is readily available in the sunfreeware collections, so feel free to install that. I don't THINK you can just edit /etc/passwd, it leaves something unfinished - the recommended approach is usermod -s /usr/local/bin/bash username (I think that's where sunfreeware puts it but maybe it's /usr/bin/bash?)
Can I change root's shell? Yes, but it isn't recommended, but you might want to do it anyway. The official instructions are that root's shell absolutely MUST remain "/sbin/sh"; I'll explain why further down, but if you want to play by the rules, you need to leave root alone.
This is not to say you can't run bash however - once you're logged in as root, you can manually execute /usr/local/bin/bash and all's well. You can simplify this of course by making sure that's in your path in .profile. Where's .profile for root? It's in the root of the drive, of course - the root user's homedir on SunOS is /, which results in a lot of crap getting dumped there.
If you want to make it one step easier, you can just put 'bash' at the end of root's .profile. You'll still log in with sh, but then switch to bash - this will only work if you log in as root however. If you 'su', it won't execute, because .profile only runs in login instances. There is a way around this - I think you call su with a flag? - but at that point it's not worth it; just su and then type bash.
Why is root so weird on SunOS? It's actually common for many Unices, and it all has to do with disaster recovery. When you boot into single-user to fix a system in distress, you can't expect anything other than the OS partition to mount, for any of a mix of reasons. So root has to use /sbin/sh because it's guaranteed to be present, whereas /usr/bin/sh is often relocated. Likewise, root's homedir defaults to / because /home is frequently on a separate drive, or even an NFS mount. There's also a lot of noise out there about everything in /sbin being statically linked, so it can run without any external libraries, whereas stuff in /usr depends on libs in /usr/lib - but I don't see how that's relevant, because if /usr isn't mounted, you can't even get to the binary to run it.
Anyway: If you change either of these things, the system will appear to work - until you need to boot in maintenance mode, at which point you may be in much deeper shit than you thought. Don't hang yourself for the sake of convenience... but hey, if you KNOW that you're never going to relocate those folders? Maybe just go hog wild.Network: "ifconfig" on UNIX doesn't do what it does on linux. This never stops being irritating. If you're looking for a list of interfaces, you want "netstat -i" - you can then feed each of these into ifconfig to get the actual details.
Hostnames are really important on UNIX. You need to set one and make sure it's consistent everywhere or weird crap happens. This needs to be done in a few places apparently, I'm not sure if I'm being redundant though. First, edit "hostname.le0" (assuming your ether int is called le0" and put the hostname in there. Then edit /etc/hosts and put in an entry for the IP you'll be using (does DHCP override this automatically...?) Finally, do "hostname [HOSTNAME]". If you're in X at this point you'll probably need to reboot immediately because it'll break your magic cookie and render the GUI unusable.
DHCP: To make DHCP happen on an ethernet interface, you create a file in /etc called dhcp.[interface name]. on my SPARCbook the interface is called le0, so I just did touch /etc/dhcp.le0. this is all there is to it; reboot to enable, or type "ifconfig le0 dhcp start" - you can also do "stop" to kill the client, this is useful for renewing a lease.
Programs: Getting software for UNIX is a mix of super weird and weirdly normal.
If you install a program and you don't know where it went, check /opt. Most commercial stuff seems to go there.
By this era (mid-late 90s) there was a lot of boxed software on CDROM and that's almost everything I've found short of minor utilities (sunfreeware, etc.) I have Framemaker, Wordperfect, CorelDRAW!, Photoshop, and a couple others. Some are incredibly simple to set up - you put the disc in, run an obvious "install" script from the disc, and get a wizard just like Windows or Mac that simply installs the program; I think Photoshop was like this. Other times it can take hours - no joke - to figure out how to launch the installer, even if you have the documentation.
I believe Wordperfect was an instance where there was simply nothing in the root of the disc, or two or three folders deep, and then when I did start finding things I could run, there were multiple identically named scripts in different directories that behaved differently and I just had to keep trying stuff until something took. Then it offered me a bunch of options that seemed to be pitfalls - I can't remember what exactly, but if you keep getting install errors, uncheck some components and try again. Then, once I actually had it installed, I had to figure out how to set up the "License Manager Daemon." It sucked.
For what it's worth, if you want to set up Wordperfect specifically (which I think is worth it,) I found the secret sauce in "/opt/wp60/wpbin/README.os.sun" and it basically comes down to this: su to root, run "/opt/wp60/shbin10/wplicense -e". Yes, you do want to edit hostname info. Enter your ACTUAL hostname (it has to match.) Leave port default. Select Wordperfect 6.0 and enter your serial number (a 6.1 serial works fine for 6.0) and it'll write out a file. Copy that file to /usr/local/flexlm/licenses. Now launch "/opt/wp60/shbin10/lmgrd". It should now be possible to launch wordperfect from /opt/wp60/wpbin/xwp.
This license server nonsense is commonplace. Adobe's products also use FlexLM, so I have daemons for both it and WP60. Judging from the contents of the license files there's supposed to be a daemon that fires off these other daemons on demand but I don't know how to activate it. I also don't know how to launch these on boot. I am not much of a UNIX expert.
I think most of this info will be applicable to all SPARCbooks, at least in the 3-series.
Manual for the 3-series. Incredibly useful and well written, read it.
Model: My SPARCbook is a 3GS. This seems fairly unusual online - most people seem to talk about the 3GX. For instance, this project wiki lists off a bunch of submodels, including the 3GS, and then has specs for many of them - but not the GS. This page on a "RISC laptop archive" concerning the SPARCbook 3 series does not even mention the GS.
Performance: According to ZDnet the 3GX (with 1.2Gb SCSI hard drive and 32Mb RAM) was around 10,000 pounds sterling circa 1996. The same article says Tadpole was feeling pressure because Intel had released a Pentium 166, so that gives us an idea how the 3GX performed. That machine was 110MHz, which suggests the SPARC (specifically a Fujitsu MicroSPARC-II) was outperforming Intel. Since their previous chip was the Pentium 133, we could assume that's what they were competing with, and thus there's about a 1.2x perf difference clock-for-clock. My machine has an 85MHz SPARC, so we could imagine this competing with a 100MHz Pentium. In terms of gut, that feels about right to me.
Build: The chassis and subframe of the 3GS are solid magnesium as far as I can tell. It is an absolute tank of a machine, lightweight but incredibly solid feeling, and I have never seen its like in my life. Everything on mine works perfectly, including the trackpoint mouse. I feel honored to own this monster.
Teardown: This is a magnificently maintainable machine. It comes apart with something like four screws; the big, chunky magnesium components are simply tabbed together, so once it starts coming apart, it all comes apart very neatly, assuming you know what to slide where. Be careful. There are a couple fragile ribbon cables you will need to disconnect to get it apart, but you'll have plenty of warning if you're slow and thoughtful.
Screen: 800x600 color panel. Looks great, pretty bright. Is yours freaking out and displaying distorted hash? Don't panic, let it sit for a bit. I think it's old caps; once they warm up a little they figure themselves out.
Two-line LCD: The LCD above the keyboard shows lots of useful status info, but it doesn't fully work unless you install special drivers/utilities. These are included in the "tadpole patches" for SunOS, which can be found on the Tadpole install media. The same is true for the PCMCIA controller and several other things; you really want those patches, do not run with a vanilla copy of SunOS. Once you have that set up, the screen will show you Ethernet status, battery status, AC input status, and a little spinning bar to represent disk activity. You also get POST codes in the pre-graphical boot stage.
Keyboard: The keyboard is a Buckling Rubber Sleeve design, which I think is an IBM original that appeared in a number of early IBM laptops. I tried to figure out the pedigree of this thing, and what I think happened is that IBM bought (most of) Tadpole in the early 90s because they wanted them to make their RS6000 laptop. They did (it looks exactly like the 3GS) and either IBM specced the rubber sleeve KB or Tadpole gained access to it. Either way, it ended up in the SPARCbook, and it is very pleasant to type on.
Ethernet: The 3GS has built in 10Mb Ethernet using a micro AUI connector which is identical to that of many Sun machines, e.g. SPARCstation 20. These can often be found on eBay.
RAM: I can't remember the details on the RAM in this thing. I know it takes 72pin SIMMs and you need two of them but I don't know the timing offhand. I do know that if you don't get low-profile stuff, it'll block the battery compartment. This is fine if you don't need the battery, and very funny.
HDD: The hard drive is a 2.5" SCSI unit, originally 1.2GB. Mine worked, but 2.5" SCSI drives are not common, so I replaced it with a ZuluSCSI; I don't regret this, for a whole variety of reasons.
I did try a SCSI2SD at first, and it worked perfectly, but the Zulu is more convenient and capable. The fact that it uses images in a normal filesystem means it's very easy to experiment. You are going to want to compare SunOS 2.5, 2.6 and 2.7 to fully comprehend the device, IMO, and to this end the ability to simply rename "HDD0.IMG" to "HDD0.sun26.img", then make a new file and start installing another version, while knowing you can go back to the original at any moment, is a huge benefit.
Also, the Zulu can easily emulate a CDROM. You'll need this for installing the OS and any commercial software that you might have found, and it's very handy for getting data onto the machine in bulk. Discs automount to /cdrom/cdrom0, and also to /cdrom/(volumename).
Firmware: This uses Open Firmware like other SUN machines. If you need to break into the OF prompt on startup (or while the machine is running, if you're in textmode) hold Pause and hit A. I think you can return to the running system by typing 'go' but I haven't tried this recently.
Firmware Battery: I had to replace the battery that holds the "CMOS" (e.g. openfirmware) settings. Good news: It is not a soldered-on Varta, and yours almost certainly has not leaked. It is a very special kind of thing called an STMicroelectronics Snaphat. I actually got a brand new replacement from Amazon, p/n M4T28-BR12SH1. Once you get the machine open, you simply pull the battery off the RTC. I had to "rock" mine to one side to pop it loose; I don't know if this is necessary. Installation is the reverse of removal, and it's keyed so you cannot get it backwards.
You do not need to replace the battery to use your machine; OF will not hold any settings, but this doesn't really matter most of the time. The biggest problem is that OF defaults to netboot ONLY, so every time you reboot, you will have to hit Pause+A to drop to a prompt, then type "boot disk" to hit the HDD.
Booting from floppy/CD: This is of course general Sun info but you'll need it. Any SCSI CDROM will work with the SPARCbook, you just need a standard SCSI mini 50 pin cable. Open Firmware knows what CDROM drives are, so to boot from one you just hit Pause+A on startup for a prompt, then "boot cdrom". It is theoretically possible to boot from floppy but I've never found a reason to do so and I don't know how much of a system you can fit on one so it's probably not very useful.
Magic key combos: There are many things you can do by hitting Pause with another key. Pause+A goes to Open Firmware. Pause+R reboots instantly. Pause+O goes to standby. Pause+Up and Pause+Down adjust the screen brightness. Search the manual for "Microcontroller function keys" for the complete list.
OS media: I think I last installed from this image. There are a couple other Tadpole-specific install images out there, try them if this doesn't work well. I unfortunately don't have detailed instructions on installing handy - suffice to say, you can really hose it up if you don't know what you're doing. I figured it out though, so unless/until I get a tutorial written, I recommend throwing yourself at it repeatedly until you get a working system; you can do it.
One thing I'll advise you is to be patient. If it seems like it's hung, it probably isn't. The installer will sit for LONG periods doing absolutely nothing, and a complete install and patching process takes something like four hours. In fact, when the installer first boots, you'll find yourself at a desktop with nothing going on other than a debug window, and this will last something like five minutes. You can right click on the desktop to discover an install option - don't click it! You'll start two copies of the wizard and bad things will happen. Also, after the first few wizard dialogs (setting timezone, network status) you'll see nothing for several minutes; just wait, it's thinking.
When asked what packages you want, you probably want "Entire Distribution plus OEM Support" because OEM Support is, as far as I know, the Tadpole patches (which you need.)
I specifically recall that the disk partitioning step of the process can be a miserable slog with a lot of pitfalls, but I can't recall why. I THINK there are limits on how big a drive this version of SunOS will accept, but that (much as on PCs) it will SEEM to support much bigger ones until you finish installing and a whole host of bizarre things happens; this may be the problem I had, so maybe this isn't really that hard.
If you're using a physical spinning disk, you're probably fine, but if you have a SCSI emulator, I recommend sticking to two gigs max. You really don't need more, realistically, and if you truly do, then just make a second image and mount it as a secondary drive on your disk emulator, exactly like people did back in the day.
As with all linux/unix installers, SunOS has a fixation on breaking the FS into many partitions (though Sun calls them "slices".) It will default to having like four, but if you're going through Auto Layout you should be able to just uncheck everything except / and swap. It will then STILL create an /export/home which you almost certainly don't want, so you'll then need to hit Customize and get rid of it.
Leave Overlap alone. I don't fully understand what that does but it needs to stay where it is, unchanged. Blank out the fields for /export/home, then increase the size of / until it fills the empty space on the disk. I recommend leaving a couple megs free or weird miscalculation crap can happen. At this point you should be home free; just wait several hours for the install to complete.
Filesystem support: I think 2.6 doesn't do FAT32? And it certainly doesn't know what Linux ext is. It'll do a few FSes but the only ones I know are there are FAT12, FAT16 and UFS. The FATs are referred to as "pcfs" in various places.
Mounting a CF/PCMCIA card: If you have a PCMCIA ATA drive, or put a CF card in a PCMCIA carrier, it can be hard to figure out how to mount it. I did it with this command: mount -F pcfs /dev/dsk/c1d0p1 /mnt/cf - assuming you formatted it with FAT on another machine, which I recommend.
I seem to remember having a ton of problems with this and spending hours futzing around with SunOS' weird "format" utility, and later deciding that had all been a total waste of time. I can't recall why. It might have been the case that I was specifically trying to get an actual PCMCIA spinning hard disk working and that refused to play ball, probably because it didn't support LBA; or it might have been because I was trying on SunOS 5.7 / Solaris 7, which really does not run very well on this machine.
Floppy: If you have the floppy drive that came with the machine, protect it with your life. It is a wonderful device. You may be looking for the power jack: there isn't one. The Tadpole FDD is bus-powered, so all you have to do is hook it up to any SCSI controller and it'll run off the card. Yes, I said any: I tested this on the built in Adaptec in an Intergraph Pentium workstation, and it worked under Red Hat 6.1 with no trouble. Don't have the cable? It's a standard SCSI mini 50 pin, they're common on ebay.
Under SunOS, the floppy drive is found at /dev/diskette - but it may not be there unless you tell the kernel to regenerate devices. One way to do this is to power off the machine, plug in the FDD, start up, hit Pause+A, then type "boot -r" (or, if you haven't fixed the battery yet: "boot disk -r".) Or, while the machine is running, type "drvconfig -i sf", then "devlinks".
It can be a pain in the ass to get a floppy formatted to FAT under SunOS, so I recommend just doing that on a Windows/DOS machine. Once that's done, you can pop it in the SPARC and type mount -F pcfs /dev/diskette /mnt/floppy - remember that the machine can't tell when you change disks, so you'll need to unmount and remount every time. I recommend putting a little shell script in /usr/local/bin to do this.