Blog
-- Thoughts on data analysis, software
development and innovation management. Comments are welcome
Post 9
Puppy Linux flavored SDHC for the EeePC
03-Jan-2009
Not being much content with the little hacking that
the EeePC Xandros distro offers I've decided to bring a new software set to my new device, the
ASUS EeePC 900.
Since the DebianEeePC wouldn't
read the 8GB SDHC card I bought for lodging the new OS, I thought I'd give a try with
a different GNU/Linux flavor.
After some unsuccessful tries to get Damn Small Linux (a Debian-based light distro)
running on the computer, I eventually believed that the EeePC BIOS doesn't accept bootable
partitions (with the exception of the internal SSD), the way DSL was instructed to run on an USB drive.
The only image I managed to boot so far was the Debian superfloppy installer.
Still wanting to set a new flavor to the EeePC I read about
Puppy Linux, an independent light distro that
seemed to be a nice choice. In the eeeuser.com wiki,
this post shows how to put Puppy Linux
into a SD card. The problem, though, is that whoever wrote it fed the SD card into the
system through a USB adapter. Puppy Linux already has the appropriate modules to deal
with USB drives, but if the distro is put into a real SD card slot, things are not nice since
the OS as it is can't read this device, and thus the boot process gets stuck.
In order to make things easy, I first avoided the compilation processes to get a SD drive supported kernel
for the EeePC.
Then, reading Puppeee: Puppy for your Eee PC
on Linux.com I found Puppeee, a Puppy Linux flavored distro with
the appropriate fixes and hacks to run on the EeePC. Hands at work, I extended the "apt"
sources with the Adding Additional Software Repositories
for the EeePC because "mtools" and "syslinux" would be needed afterwards.
Having prepared the EeePC Xandros with the extra repos:
-
Insert the SDHC card into the SD card slot and determine the system device ("Cntl + Alt + T" to open
a virtual console):
fdisk -l
In my case it was "/dev/sdb", but from now on I will refer it to as "/dev/sdX".
-
Create a superfloppy:
mkdosfs -F 32 -I /dev/sdX
For a SDHC of 8GB, "-F 16" complained to be a filesystem too large.
Now since the MBR has been removed all the files will be written starting at sector 0.
-
Mount the SDHC device:
mount /dev/sdX sdcard/
Note that the "sdcard/" folder refers to the local folder where the device is wanted to be mounted,
it can be placed anywhere.
-
Download a Puppeee ISO image from here and mount it
as a loop device in order to make it accessible as a block device:
mount -o loop puppy-eee.iso loop/
Here the "loop/" folder works as the previous "sdcard/" folder.
-
Copy the contents of the image into the SDHC card:
cd sdcard/
cp -rf ../loop/* .
-
Hack the image in order to use the SYSLINUX bootloader, used for booting FAT filesystems such
as the one created in the SDHC:
mv isolinux.bin syslinux.bin
mv isolinux.cfg syslinux.cfg
cd ..
umount sdcard/
syslinux /dev/sdX
Now the SDHC card has the Pupeee OS inside and is ready to boot the EeePC.
Puppeee Linux is a very nice, light and configurable OS, aimed at delivering a high usability interface.
It runs swiftly because (by default) it loads the whole OS into RAM (about 500MB, half the capacity of the EeePC),
and can save the user's preferences, files and programs
in an encrypted independent filesystem so as to keep a secure multiuser environment.
It is highly recommended to prevent the EeePC from dying by the deterioration of the
unreplacebale SSD soldered to the motherboard.
|