I’ve been looking at picking up a used Sun Sparcstation from eBay. It occurred to me that I’ve never installed an early version of Solaris before, so wondered if I could give it a try under QEMU since it’s emulates different hardware, including Sparc.
There’s an awesome step by step guide on Adafruit that takes you precisely each step to get Solairs installed un QEMU. You can follow the steps in their article here, so I won’t repeat all the steps here.
The key steps before you get to the install are creating a disk image:
qemu-img create -f qcow2 sparc.qcow2 9663676416
and then booting with the Solaris iso image as the cdrom and the disk image attached:
After this point it’s following through the steps in the install. From the openboot ok prompt, start the boot from the cd image:
boot cdrom:d -vs
-vs here boots to a single user mode where you can format the disk first, before rebooting again without the -vs option and continuing with the install. The install will not continue if it detects the qemu disk is not formatted yet.
The commands needed to initialised the disk:
drvconfig
disks
format
From the Adafruit article, here’s the params for the format you need:
Specify disk (enter its number): 0 Specify disk type (enter its number): 16 Enter number of data cylinders: 16381 ...defaults are fine here... Enter number of heads: 16 ... Enter number of data sectors/track: 63 ... Enter disk type name (remember quotes): Qemu9G
Here’s qemu booting up for the first time:
Here’s the Solaris installer starting up:
After the install had completed, here’s the rather impressive for it’s time CDE desktop:
Having spent some time in the past building an implementation of Donald Knuth’s Algorithm X in Java to solve Sudoku Puzzles, I recently wondered what it would take to modify it to generate new puzzles.
If you missed my previous posts on this investigation, see:
It turns out having a working solver is part of the way there to implementing a puzzle generator, because you need to be able to check if a puzzle has a single solution, since valid puzzles only have 1 solution.
When I last wrapped my Solver as an AWS Lambda, I had taken the naive approach to call System.exit() in my Solver code if I detected there was more than 1 solution as a quick way to exit and not get stuck in a loop iterating over finding possible thousands of solutions for a grid that’s not a valid puzzle.
I went back and took another look at this and reworked it so I could pass an upper limit for number of puzzles, and changed the return type to return a List of solutions, and a flag indicating if there was a single solution or not. Latest commits on my repo have these changes, and I’m now ready to move on to building the puzzle generator. More updates coming soon.
It’s pretty easy to set up and configure a new AWS Lambda with the AWS Console, but if you’re iterating on some changes and need to redeploy a few times, the AWS CLI makes it pretty easy.
To create a new Lambda, assuming you have a .zip packaged up and ready to go: