Technical HOWTO and Image of Compaq IA-1 Digital Picture Frame

I made a digital picture frame out of a Compaq IA-1.

In order to make a digital picture frame with an IA-1 and Damn Small Linux, there is one major constraint. No matter how big your CF card is, there is only 64 megs of ram in the device. This means, if you put a complete image of Damn Small Linux, and add something small, like feh, weighing in at less than 500k IIRC, the device will crash on boot, complaining about lack of ram.

That makes this process about eleventeen times more complex, but still within the realm of possibity. Even easier if you have a guide, you know, something like this.

My first step was to make a feh extension for Damn Small Linux. This is unbelievably easy. I did this on my main workstation, booted into Damn Small Linux. First, I enabled apt through the fluxbox menu with Apps > Tools > Enable Apt. Then I started a root console and installed feh with apt-get install feh. I closed my root console, and opened a user console, and converted the feh debian package to a feh dsl package with /usr/bin/deb2dsl. I named the package feh.dsl, made the MyDSL menu name feh, and entered /usr/bin/feh as the location path. I then had a feh.dsl extension in my home directory. I copied it to a thumbdrive, and booted my IA-1 with it. As you know, this crashed on boot. I booted my computer with it. It loaded fine. This meant the error that meant “Out of RAM” really meant it.

So my next step was to lighten up Damn Small Linux, and make it Damn Smaller Linux. This means you have to enter the world of remastering. This has to be done on a computer with more ram than your IA-1.

Following the basic idea inside of ReMastering HOWTO for DSL, also newbies and other enthusiasts we burn a copy of Damn Small Linux on to CD, and reboot our computer.

Mount an open directory off your hard drive.
mount /mnt/hda3/

Make needed directories.

mkdir /mnt/hda3/home/wolf/dsl/source
mkdir /mnt/hda3/home/wolf/dsl/newcd
mkdir /mnt/hda3/home/wolf/dsl/newcd/KNOPPIX

Copy needed files to the remastering directories

cp -Rp /cdrom/boot /mnt/hda3/newcd
cp -Rp /cdrom/lost+found /mnt/hda3/newcd
cp -Rp /cdrom/index.html /mnt/hda3/newcd
cp -p /mnt/hda3/home/wolf/feh.dsl /mnt/hda3/newcd

Copy the sources to the right directory.

cp -Rp /KNOPPIX/* /mnt/hda3/home/wolf/dsl/source
cp -Rp /KNOPPIX/.bash_profile /mnt/hda3/home/wolf/dsl/source

At this point, remove firefox from /mnt/hda3/home/wolf/dsl/source/. This will free up over 17 megs of space. I did this with some nasty bash. I believe it was find /mnt/hda3/home/wolf/dsl/source | grep firefox and then judiciously removing the firefox directories and executable. To be pretty, you have to then remove the desktop link and menu entry.

Create the compressed image.

mkisofs -R /mnt/hda3/home/wolf/dsl/source | create_compressed_fs - 65536 > /mnt/hda3/home/wolf/dsl/newcd/KNOPPIX/KNOPPIX

Create the iso:

cd /mnt/hda3/home/wolf/dsl/
mkisofs -no-pad -l -r -J -no-emul-boot -boot-load-size 4 -boot-info-table -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat -hide-rr-moved -o mydsl.iso newcd

Compaq IA-1 Digital Picture Frame

Amanda’s birthday was July 27th, and she turned 19. I spent a lot of time thinking of a gift, and I finally decided on hacking one of my old gadgets into a digital picture frame.

This is the IA-1 before modding:

img_1529

This is the IA-1 after the uberleet casemod:

img_1528

These pictures both came from my Compaq IA-1 Digital Picture Frame set on Flickr.

Anyway, I took a Compaq IA-1, and attached a picture frame to the display. I didn’t remove any plastic, I just hunted hard and long for a decent sized picture frame that would snap on the existing plastic bezel. I found a matte that would cover up the plastic. Then I had to work on the software.

The IA-1 only has 64 megs of ram, and no hard drive. It has a 16 meg internal CF, and an external CF slot. I could conceivably smash a digital picture frame running linux and nfs and such into 16 megs. I know I could do it, but the time-effort tradeoff pushed me to find a spare 64 meg CF and put a slightly modified DamnSmallLinux distro on it. DSL is so unbelievably nice that I could have just put feh and unclutter on it as extensions, and then smashed them on the CF. However, when doing that, I ran out of ram on the device and it wouldn’t boot. So I remastered DSL without Firefox, and put feh on it natively.

Now it can show pictures, but I need to let it see pictures. So I took Amanda’s flash drive, and put a bunch of pictures of us, and also a blank cursor to erase the default X cursor, and set it to automount on boot. Then modifying the .xinitrc, I had it start feh at boot. The result?

Amanda plugs her thumbdrive in the IA-1’s back, and plugs it into the wall. The picture frame displays a picture of us every 5 seconds until you unplug it.

Yay! Functional, nerdy, me.

Pssst.  I wrote more on how I did this on the next post!