posted by Gary Rennie on Thu 8th Jan 2009 21:06 UTC
IconTo supplement storage space with the initial purchase of the Aspire One (8 GB SSD version), I bought a 16 GB Transcend TS16GBSDHC6 card that integrates nicely into the left card slot. The pre-installed Linux Linpus just wasn't what I needed since I use many networking tools at work and at home. I initially ran Ubuntu 8.041 with the /home partition on the 16 GB SDHC card. I discovered Eeebuntu while searching for information on how to boot and run Linux off a SDHC card. The goal was of multi-boot installations of Ubuntu, with one install specifically loaded with the tools I use at work. The Acer Aspire One BIOS does not 'see' the card, so you can't boot from it using the [F12] startup key (More on the SDHC boot up further in this article).

(A brief review, SSD F.U.D. and adventures with the grub boot loader)

Eeebuntu 2.0 On The "One"

The Aspire One works nicely with many Linux distributions, but there had been hardware issues in particular the Atheros WiFI support. Finding the reports in the forum sounded good for the Eeebuntu 2.0 release on the Acer One. I tried the 'Standard' and 'NBR' versions first with live CDs. Both worked great. Installing Eeebuntu 2.0 is just like any typical Ubuntu install. I used a CD/DVD drive with a USB-IDE/SATA adapter. Once running, I had to select 160 x 120 resolution for the webcam to work (in the Cheese application) and to have the HDA Intel sound be Alsa for the microphone to work correctly. I also needed to disable the EeePC temperature sensors services as they didn't work on the Aspire One.

Here's a capture of my Eeebuntu desktop on the Aspire One.

Gnome interfaced Eeebuntu is designed for the Asus EeePC series based on Ubuntu 8.10. It uses the custom Array kernel (http://www.array.org/ubuntu/) optimized for the EeePCs. It also works great on the Aspire One which shares the same Intel Atom processor. Eeebuntu is available in three flavors: A Standard Version which has the Mac-like AWN manager installed; A Netbook Version with the Netbook Remix front end and a Base version minus the specific EeePc utilities and major applications. Preferences are easily modified using the System / Control Center utilities.

Here's the Eeebuntu 2.0 Base default desktop:

The NBR Eeebuntu Desktop featuring Netbook Remix.



The Atheros WiFI support is the best it's ever been on the Aspire One. I've encountered connections issues and drifting signal levels with other distributions and came the closest by compiling the MadWiFI (http://madwifi-project.org/wiki/About/MadWifi) modules myself in a base Ubuntu 8.041 installation. Even Ndiswrapper never worked good for me. This distro is a dream. The custom kernel is "apt pinned" in that normal Ubuntu updates, will not break it. Unfortunately I could not do a dpkg force install of WICD, ( http://wicd.sourceforge.net/ ) which I use at work, to replace the network manager. (I have WICD on another Ubuntu 8.10 base install on a boot-able USB stick I've used a few months.) This may be related to the pinned kernel and WiFI modules. I will investigate further sometime. The AWN interface is ok being very usable providing a different way to switch work spaces and running applications. Move the mouse to the lower screen to make the AWN manager visible (default setting) and click on your particular running application icon. I have 47% of the 16 GB SDHC card (a bootable install ... I'll get to that) filled with all my favorite applications thanks to the Ubuntu Intrepid repositories. I even did a update via the Update Manager after enabling all Ubuntu Intrepid repositories and Mediabuntu, without a problem.

So far Eeebuntu 2.0 is the BEST Linux distro I've tried on the Aspire One, especially the rock solid WiFI operation.

Running Eeeebuntu 2.0 off the 16 GB Transcend SDHC Card

First some flash storage discussion. Fun with F.U.D.

There is little information to some mis-information about solid state flash for operating systems around various Linux web sites. NASA and the military have used flash drives for years. Most hard drives don't work over 10,000 ft. They require air pressure to keep the heads precisely over the platters. We do know, at least for now, SLC (Single layer chip) Nand Flash has been better and more expensive than MLC (Multi-layer chip) NAND Flash. The MLCs are getting bigger and faster and perhaps closer to the specs of the SLCs. There are few details available as this technology is advancing fast. The Aspire One SSDs use the new Intel MLC chips. They are somewhat different in data path design than other MLCs. Intel rates the Z-P230 PATA drives as 1,000,000 hours MTBF and with 3 years of useful life. Is this at 100% duty cycle? I don't know but at a 25% duty cycle using one of the various formulas found on the 'net, you'd find the life span increases to 6-8 years. That's close to standard hard drives. SLCs are 10 times greater in write/erase endurance so SLC life spans could increase to 30-80 years.

Toshiba calculated that a 10,000 write cycle endurance would enable a complete write and erase the entire contents of USB flash drives once per day for 27 years.

There are variables to consider such as "wear leveling" algorithms and hardware design, but generally solid state storage is consumer ready as prices fall. If my 25% duty cycle logic applies, then 6-8 years of life is acceptable as hard drives seem to last this long. Note: Hard drives are mechanical so they have a much lower MTBF such as 150,000 hours. The 16 GB Transcend cards are a bargain whether they are MLC or SLC Flash.

I am not concerned about all of the extra OS writes to the drive. (The journaled ext3 file system has saved my butt a few times.)

A good article is found at: http://www.storagesearch.com/ssdmyths-endurance.html about SSD endurance and general Solid State storage at the site.

I planned to boot and run Eeebuntu 2.0 Linux from the SDHC card.

This can be done on the Asus EeePCs but the Acer's BIOS doesn't see SD media, only the internal IDE or external USB drive devices (such as with USB adapters). Thanks to Linux embedded sites and information scattered elsewhere, the setup process isn't difficult to do for a more advanced Linux user that has fooled around with grub. It's just takes some time.

The Transcend TS16GSDHC6,16 GB Mode 6 cards can be found for $27. They work great in the Aspire One for extra mountable Linux storage, such as with an internal 8 GB SSD installation by putting a /home and /var partition on them. Now to put OSes on them like the EeePCers do.

Nice Idea! More OS Installation Space, without opening the Acer up and voiding the warranty.

Booting Linux from the SDHC card in the Acer Aspire One:

If the kernel has the support for SD cards, at the inital bootup, have the initrd.img pre-loaded with the SD card modules using the initramfs-tools. Linux in ram will be able to see these devices and thereby boot from them.

The strategy

[a] Create new initrd-img files for booting with the SDHC modules pre-loaded for each installation.
[b] Do the SDHC installations using USB to SDHC card readers.
[c] Obtain the unique UUID from each /boot/grub/menu.lst USB-SDHC adapter installation.
[d] Copy the new initrd-img and kernel files to the internal drive /boot directory.
[e] Add the new entries to the internal drive's /boot/grub/menu.lst inserting the correct device UUIDs, initrd.img.xxx.xxx name, and kernel file names.

I did TWO complete, tested, identical installations.

The first installation is to the internal SSD drive without the SDHC card installed.

I did manual partitioning with a 1GB swap partition and placed the MBR code at the beginning of the drive, such as /dev/sda, NOT /dev/sda1.

Reboot then go to then from the command line:

$cd /etc/initramfs-tools

Now as root we need to edit the modules file:

$gksu gedit modules

Add these each on one line (do not comment with #):

mmc_core
mmc_block
sdhci
sdhci-pci

Save the modules file.

Now at the command line type:

$sudo update-initramfs -u

This rewrites ( -u means updates and overwrites) the Linux initrd.img.xxx.xxx in the /boot directory.

The initrd.img now has the the modules preloaded so it can boot a SDHC device.

Now go and view the /boot/grub/menu.lst file and find the lines starting with "uuid" and "kernel". Note that the two uuids are the same hexadecimal values. We will return here to edit later.

The next installation is to the SDHC card using a USB-SDHC card adapter.

I used a USB to SDHC card reader and booted again using the USB-CD/DVD. Once in the Live CD installer, be careful and verify you have the correct device to install to. Use fdisk -l from the command line to verify the device assignment if needed. I did a manual partition with a 1 GB "swap" partition at the end of the install drive. The other swap partition on the internal drive was selected as not used. Like the first internal installation, I placed the MBR code at the beginning of the SDHC device-drive labeled /dev/sdb. (If Acer ever updates the BIOS for direct SDHC boot, these SDHC card installations will be ready for it.)

When complete, reboot from the USB-SDHC adpater device, hitting [F12] select boot devices, choose the USB-SDHC card adapter. Now test the installation.

If it works, go and view the /boot/grub/menu.lst file of this install and find the lines starting with "uuid" and "kernel". Note that the two uuids are the same hexadecimal values. Write this hexadecimal value down and or save it somewhere.

Shut down and insert SDHC card itself in the left slot of the Apsire One.

Boot from the internal 8 GB SSD installation.

Now as root we need to edit the /boot/grub/menu.lst file with a text editor or vi:

$gksu gedit /boot/grub/menu.lst

Scroll down to the entry of the default installation.

Here's my internal SSD installation (with my own labeling)

title Ubuntu 8.10, kernel 2.6.27-8-eeepc SDD - Internal
uuid 736f6f5a-28c8-4848-9b97-04342ca875b2
kernel /boot/vmlinuz-2.6.27-8-eeepc root=UUID=736f6f5a-28c8-4848-9b97-04342ca875b2 ro clocksource=hpet
initrd /boot/initrd.img-2.6.27-8-eeepc
quiet

Copy that entry and paste it below the first (internal SSD) entry.

Edit this one with the “uuids” of the SDHC device from the USB-SDHC adapter installation. In this case for my hardware: UUID=a555d64d-5991-410e-b725-d3f7e76d2fe8.

Your's will be different as each UUID is unique as Ubuntu Linux assigns them.

title Ubuntu 8.10, kernel 2.6.27-8-eeepc SDHC CARD
uuid 736f6f5a-28c8-4848-9b97-04342ca875b2
kernel /boot/vmlinuz-2.6.27-8-eeepc root=UUID=a555d64d-5991-410e-b725-d3f7e76d2fe8 ro clocksource=hpet
initrd /boot/initrd.img-2.6.27-8-eeepc
quiet

Save the /boot/grub/menu.lst, reboot and then select the new entry from the grub boot up menu and see it it works.

This is nuts but I purchased another Transcend 16 GB SDHC Mode 6 card and Installed a base Ubuntu 8.10 (from my USB stick install) to it for the Aspire One. Using the same technique with the additional modules update-initramfs as with the first install, I produced another new initrd-img-2.6.27-7-generic image with SDHC support.

This kernel vmlinuz-xxx.xxx.xx, and new initrd.img.xxx.xxx of this 2nd SDHC card installation WERE COPIED TO THE /boot DIRECTORY of the internal SSD installation.

I edited the /boot/grub/menu.lst with another entry and now can boot 2 different Linux installs on SDHC cards from the grub start up menu. (That is BOTH the left and right SD card slots of the Aspire One.)

Here's the ADDITIONAL /boot/grub/menu.lst entry to the INTERNAL DEFAULT SSD INSTALLAION.

title Ubuntu 8.10, kernel 2.6.27-7-generic SDHC Card Rt Slot
uuid 736f6f5a-28c8-4848-9b97-04342ca875b2
kernel /boot/vmlinuz-2.6.27-7-generic root=UUID=0b217a58-efb6-4121-85cf-5daa5a473b53 ro
initrd /boot/initrd.img-2.6.27-7-generic
quiet

The Aspire One is booting the internal SSD (/dev/sda) install loading the /boot/grub/menu.lst from it as seen in the uuid line under the title line. The right slot SDHC has a different kernel and different UUID. The kernel and initrd lines define them.

Conclusions:

- Eeebuntu 2.0 is the finest Ubuntu Linux derivative I've tried on the Aspire One.
- Acer needs to add SDHC support like Asus did for the EeePCs BIOS, a direct boot is so much easier.
- The initramfs with grub technique to boot the non-BIOS supported SDHC works on the Aspire one.
- Boot up time is slightly longer than just running the SSD install, since the initial boot information is being read twice off two devices. Write speed of the SDHC cards is close to the slow, but usable SSD installation. Read speads I feel no difference.
- For owners of Aspire One with Window's pre-loads, this technique if carefully done, could preserve the Windows setup if the internal drive is partitioned with a small /boot partition. Gparted would work well at resizing and creation of a small 50-100 MB /boot partition. Upon a USB-adapter card install, the /boot partition could be specified on the internal drive. Ubuntu is smart enough to add the Windows chain loader entry into the grub menu.
- Plan on spending a few hours if you do a SD card boot installation.
- Solid state drive F.U.D.? I feel these solid state wonders will outlive the life of these computers. High ESD and physical abuse, such as bending, is more of a threat to the longevity of these SD cards than using one for an operating system installation. Once roomy NAND Flash drives reach the price and performance levels of today's hard drives, consumers will see solid state is vastly superior. No moving parts, high vibration and shock resistance. Flash drives work in greater temperature extremes, work over 10,000 ft. and are close to surpassing hard drive IO speed on the high end models.

About me: I work in municipal IT Support. I have some electronics and QA background also. I discovered computers in the 80s with the Atari 800XL/Atari ST machines. Linux is fun but a sad point, I miss Libranet (a great Debian distro of years past).

e p (7)    22 Comment(s)

Technology White Papers

See More