World's Smallest Bootable Solaris Media?
By ford on Oct 06, 2006
My Motorola SVLR mobile phone has a microSD card slot for storage of photos and videos taken with the phone's camera and audio files for playing with the phone's music player. With the right kind of adapter and firmware support, an x86 PC can boot off of this type of device. I thought it would be cool to carry around a bootable Solaris "system" inside my mobile phone. I've also been thinking about using SD media for creating embedded Solaris systems with read-only media for the OS, and the presense of a write-protect switch as a standard feature of every SD card would give confidence in the immutability of the system software, so this seemed like a useful experiment in addition to the silliness/coolness factor.
I started with Shudong's scripts for creating a tiny bootable Solaris system. My plan was to use the microSD-to-SD adapter and the Acer Ferrari 3400's built-in SD slot. I had already confirmed that the 3400 could boot via USB, although a bit clumsily, and the SD slot is internally interfaced as a USB mass storage device. Unfortunately, this idea didn't pan out as the 3400 BIOS won't boot from the SD slot, so I ended up using an external SD-to-USB adapter. Even with that, the 3400's USB ports seemed very flaky and I ended up using my Dell 600m laptop to test out the final result. If we had a driver for the SD slots in the Ferrari 4000/5000 models, one of those machines would make a nice demo for this little experiment.
At first, I had manually initialized and tweaked the fdisk partitions and vtoc slices a hundred different ways and got it mostly working, but I realized that I had no idea how to describe what I had done, so I spent a lot more time trying to reconstruct my steps and express the procedure as a reusable script. I never curse at Solaris more than when I am trying to use removable media... but I'll save that rant for another time, or perhaps just bite my tongue until the situation improves.
Here are the scripts that I came up with to automate the whole process. You can go buy a blank 512MB SD card and use these scripts to create a bootable Solaris system that is still recognized by your digital camera, phone, music player, etc. and has plenty of free space for your media. Maybe someone will take the initiative to expand the software that is installed on the Solaris partition to include a photo/video/music player that will play whatever A/V media is found on the device. Of course you'd have to add all the X software, etc., but there seems to be plenty of room for that on a 512MB card.
These scripts could be stripped down substantially to create just a simple, bootable Solaris USB drive; most of the difficulty in what I did was not in getting Solaris on the USB drive, rather it was in doing the partitioning just right and scripting it all.