Acer Aspire One AOA-150 Netbook Dual Boot with Solaris
By PotstickerGuru on Apr 01, 2009
Acer Aspire One 150 - Need the 8.9 inch Model
There were a few reasons why I went out and bought the Acer AOA-150. This is the model offered last year with 8.9 inch LCD, an Intel Atom 1.6GHz/120GB HD/1GB RAM platform. Around Christmas 2008, it was in stores for around $349, and just a few months later, it's now $299 for the same system, only with 160GB HD. There's also an Acer AOA-110 model which has an 8GB or 16GB SSD (Solid State Drive) which comes with a Linpus/Linux distro that supposedly runs well, but firstly, I'm not a big fan yet of SSD. Most of the low-end stuff is either way too slow on sustained I/O and/or way too unreliable. There's a lot of hype about SSD and auto-leveling. But that's the theory. How manufactures make SSD (at least the cheap ones for these devices) and how it deals with swapping and partitioning while auto-leveling, well, that, for me, it's not there yet, no matter how many senior article writers, analysts and Marketing pundits say so. Except for the best and most expensive flash with the best performing auto-leveling algorithms and error checking, most the flash aren't very fast or very reliable yet. And they're too darn small to dual boot and have any real working space anyway. So disk capacity was pretty important, and with these models having 160GB of hard disk, that was plenty.
Another reason for chosing the AOA-150 was Solaris compatibility. I've been hanging out at various Costcos and Fry's Electronics stores and playing with netbooks and opening up the Windows->Control Panel-> System->Hardware Devices panels. For the stores that haven't locked out that feature, it's provided me valuable info on what chips the makers are actually using inside. Of course, this is no guarantee Solaris will work until you get home and actually try it, but it gives me more confidence that Solaris will actually boot up and connect to the network if it's a device that's been reported on Sun's Big Admin HCL or by other users elsewhere online. Note that makers in this volume space often rev a system with different components without changing the model number, so you really need to check and have a store that will honour its return policy.
The 8.9 inch LCD Aspire seems to have most chips on my compatibility checklist. My main concerns are bootability, graphics, ethernet, WiFi and Audio. I would like to get the onboard camera working, but that's for later hacking. Maybe someone already got it working under Solaris and I just need to find it. For the most part, both AOA-110 and AOA-150 have a Realtek 8101E/8102E fast ethernet networking port. That's supported by the latest Solaris rge(7D) driver. The WiFi is Atheros AR5007E/AR5008E a.k.a AR242X-type of PCI-express adapter onboard, and that should be supported by the recent ath(7D) driver. Graphics is Intel onboard 945GMA Integrated graphics which works with our Xorg fairly well. And finally, the audio controller is standard Intel HD Audio spec compliant with what looks like a Realtek ALC HD Audio Codec. The latest SXCE audiohd(7D) driver has a parser that should be able to discover the codec capabilities and activate the sound properly.
Note that Acer is now shipping a newer, 10.1 inch LCD model (AOD-150) which has the same resolution (1024x600) but bigger pixels. It's selling for $349 and I do notice more folks looking at it and not squinting as much, but the hard wired ethernet is now Atheros-based and probably an adaptation of the Attansic NIC which they acquired a year or two ago. There are opensourced BSD drivers for the Attansic NIC and I think even Murayama's Solaris Driver collection may have a sample Attansic driver, but I haven't tried it yet, and didn't want to risk it. Plus, it's $50 more. Maybe when it gets cheaper, like in a few months, I'll splurge and get another netbook and test the driver.
Steps for Dual Booting
As with most PCs, to dual boot a pre-installed WinXP/Vista box, requires the following steps:
- Resize the existing WinXP (either FAT32 or NTFS) disk partition to make room for Solaris.
- Create a Solaris2 type partition sufficient for your needs.
- Install the Solaris on the slice, and GRUB for the boot-loader
Assuming all goes as planned, the GRUB install finds all the other bootable slices and enumerates those too. The challenge with the Acer Netbook is doing any of those tasks without an Optical drive. Typically, it's not possible to resize the boot disk, so we try to boot from optical drive and then resize. Similarly, installing onto the boot device isn't possible either.
For the Acer, we can boot USB, and that means if you have an external USB DVD drive, then it's possible to install via CD and DVD media. There is another option and that's to install via USB flash drive. Opensolaris is about 700MB in base size and is a bootable CD-image. It can be converted to USB flash boot image by using the Mercurial tools. This can fit on just about any single 1GB USB flash drive which you can buy at Fry's or online for around $6 each. I recommend buying 2 of these as the extra one will come in handy for resizing the partition.
1. Resize the WinXP NTFS slice
Before partitioning WinXP NTFS, I highly recommend running the Windows disk defragment utility. It's in the Accessories under System Tools I think. This will compact most files into a contiguous near the front end of the cylinders on that slice and save a lot of time or anxiety over having the partitioning utility doing it on the fly. De-Fragging can take hours if you've put a lot of files onto the disk.
There are commercial packages like System/Partition Commander and Partition Magic that can do this. You'll need to source a USB external optical drive. I found the close-out XBOX360 HD-DVD USB player attachment device for $40 at Fry's Electronics. It plays both DVDs and HD-DVDs for XBOX360, but fronts as vanilla DVD/HD-DVD USB drive for any PC system. That's one option. If you neither want to buy an extra external optical drive, nor spend money on software, then you can try the Knoppix Rescue 5.1.1 or later and the QTParted utility that ships with the distro. Knoppix is a Debian Linux variant used widely for rescue disks. It's downloadable off many mirror sites on the Internet, and there is a free Windows executable that takes the ISO image and will flash a bootable USB stick with it. Since Knoppix 5.1.x is about 700MB, you'll need an extra 1 GB flash stick or larger. Since the Acer comes with WinXP already, it's easy enough to follow these Knoppix USB install instructions to create the bootable USB stick on the Acer itself. This takes about 10 minutes plus time to download the ISO image. Once the Knoppix USB stick has been created, reboot the Acer and hit 'F12' to select the USB stick as the boot device and proceed. Hit return on the first prompt for line/scan rate and when the GUI comes up, either open a terminal and run:
$ su - root # qtparted
or follow the KDE menu and open the QTParted w/ root exec privileges (usually there are two QTParted entries in the KDE menu - the first on top is the one to click). This should bring up lots of slices. Scroll down until you see a number of sdaX entries. Select the first and this should show the internal disk drive. It should have a 6GB slice up front that is FAT32 and the remaining 150GB is formatted NTFS. Using the GUI and mouse, drag the tail of the second slice (NTFS) to reduce the size. To actually resize, you need to go to the main menu for the QTParted and select "commit." I have a new Acer that hasn't really been used. Its disk was negligibly fragmented and I didn't put any files onto it. So defrag'ging and resizing only took a few minutes. I ended up allocating around 40GB for XP and the remaining 110GB for Solaris.
2. Create a Solaris2 Partition
My older Knoppix 5.1.1 rescue image didn't know about Solaris type partitions. I haven't checked if the newer ones recognize it yet. But typically, Linux fdisk utilities have often confused Solaris partition types with Linux Swap types. The Solaris fdisk utility understands Solaris partition types, and supports Solaris2 types which are distinct and not confused with Linux Swap. Since I was planning to install OpenSolaris or SXCE onto the Acer, and fdisk is bundled, I decided to take a second USB flash drive and put OpenSolaris 2009-06 b110 on it. Since a lot of driver development has resulted in fixes since 2008-11, I recommend trying out a candidate 2009-06 build of OpenSolaris. Currently, that's b110 and the USB flash image is available a http://genunix.org/. To actually copy the image to USB stick and make it bootable, you will need the usbcopy utility. This is downloadable via Mercurial tools repository and assumes you have hg(1) on your system, which seems to been in solaris Nevada for quite some time now. If you don't have those tools, please read Dave Miner's blog on OpenSolaris on USB sticks and get the tools to simplify making bootable USB sticks.
With OpenSolaris flashed onto a bootable USB stick, simply reboot the Acer with the USB stick inserted, and hit 'F12' to select the boot device, and boot the first entry. There may be a problem with the SD card reader driver - sdhost(7D) - which may cause the kernel to lock up later. There is a supposed fix for that and Dave Clack talks about it and has links to software on his blog. Save this for later. For now, we need simply need to edit GRUB when the USB stick boots, and hit 'e' twice and edit the kernel line to append a -B disable-sdhost=true and hit return, then 'b' to boot with that added parameter. This disables the sdhost driver.
After a minute, OpenSolaris will come up into a default "jack" session. I open a terminal window and run:
$ pfexec bash # fdisk /dev/rdsk/c8d0p0
and then I follow the help (?) menus to create a new fdisk partition of SOLARIS2 type. Your device may vary if you use a USB DVD drive. The raw disk could have designation c1d0p0. Another way to find out is to run the format(1M) command. It will print out a list of available disks. When you've identified the target disk, hit Ctrl-C or type quit out of the format utility, and then run fdisk on the /dev/rdsk/[device] where [device] is the available disk selection you found for your Acer, (e.g. c8d0) with a p0 appended (e.g. c8d0p0). This can still be complicated for some, so Clay Baenziger has a Kshell script that provides an easy resize capability. I haven't tried it yet, but looking at the script, it looks like it does what I described manually. I like the manual way because I've had some issues with fdisk(1M) occasionally not setting the correct start cylinder so it clobbers the partition map with overlapping slices and that can lead to loss of data. So I just like to verify things manually before committing. I divided up my disk and preserved the 6GB Acer slice (actually a FAT32 diagnostic WinXP partition with recovery media on that slice (don't blow it away! - contains recovery media!), allowed WinXP about 40GB, and the remaining 107GB, I used for Solaris.
Install the Solaris
Both OpenSolaris 2009-06 b110 and Nevada SXCE b111 have networking and WiFi and Audio all taken care of. I've tried installing both and ended up sticking with Nevada SXCE because I had a USB DVD drive because I was at the end of a slow network connection at home and didn't want to eat bandwidth download latest and greatest packages through a remote repository. But if you don't want to download a huge wad of developer tools, and have the bootable OpenSolaris USB flash drive, I'd say that's a quick way to get Solaris up and installed.
Note on the Solaris SXCE b111 install, you should choose option 4 Console Text install if having issues with Default option 1 interactive Graphical install.
When the install is done, GRUB boot-loader gets written to the disk and it seems to find not only Solaris, but the WinXP partition as well as the diagnostic partition, which are all bootable. If things went well, hopefully, you've preserved your WinXP and diag slices and now have a dual boot Acer.
One last finishing touch of course is to put the sticker on it!