DIY Digital Picture Frame: Part 1

I ran across a couple of articles about DIY digital picture frames, and decided that I just had to try it myself. With an old laptop, a little elbow grease, and a lot of duct tape, it should be easy enough to do.

Turns out, all the articles detailed the easy part – the hardware. The hardware part has been easy so far, but I have had a time of it with the software. My requirements are:

– Cheap
– Decent Looking
– Easy to use
– Bulletproof
– Quiet

So of course I am going with Linux, since there is no way that I am going to pay for a Windows license for this thing. That would immediately nuke cheap and bulletproof.

I initially figured that I would try to go with a non X install, to keep the hard drive space and memory needs low, but the only thing that I could find to display the images was xgv. I guess others have had good results with it, but I have not been able to get it to display images well – they look really bad and blocky. YMMV. After a few evenings mucky around, I finally decided that this was not going to work. The other problem that I was running into was that doing a RedHat install, a “minimal” install was still almost 500 MB, way over the 64MB limit that I was shooting for (more on why later).

After doing some more surfing around, I ran across Damn Small Linux, sometimes known as DSL. It is derived from Knoppix, a Linux install that is meant to be run from a bootable CD. But this guy just could not leave well enough alone, and he wanted to be able to run not off any old CD, but off a business card sized CD, so his target limit was around 50MB. Perfect! And everything is mounted pretty much readonly, except for some parts of the filesystem, which are mounted in memory. Even better (more on why later)!

It took some poking around on his site and on the Knoppix site, to figure out how to get this to work off a hard drive, rather than off the CD. The instructions for running off a hard drive ended up with either an installation that knew that it was on a hard drive, and it acted as such, ie, no read only file systems and such, or ended up taking a lot of space. I finally figured out that once it is booted up, you just need to copy everything from the /cdrom directory to the root of the otherwise empty hard drive. Then you unmount the /boot directory, and remount it onto the hard drive (to make running lilo painless) on the /boot directory. Then copy over the lilo.conf from /etc/lilo.conf to /boot/lilo.conf, and run lilo with the option specify a particular lilo.conf file. I plan to post explicit instructions in a future post, a) to help anyone else, and more importantly b) so that I have a reference when I forget how 😉

I mentioned earlier that I wanted an install of 64MB or less, and that I wanted everything mounted readonly. My hope is that this will lead to a more robust system, since if nothing is ever written to disk, then nothing can be half written if the thing gets unplugged, and so a sudden loss of power should never be a problem. The other reason is that since hard drives (especially in an older laptop) are noisy and hot, I wanted to replace the hard drive with flash memory, using an IDE to Compact Flash adapter. Compact Flash has pretty unlimited reads, but there is a limit on how many times you can write, so I did not want to have any writes going on, or it will just stop working at some point. I got the IDE to CF adapter from ACS, but I have not installed it yet (still tweaking the settings), so I cannot recommend it just yet, but it seems to be well put together so far.

So at this point, I have the laptop apart, the power supply out of the laptop docking station (the external power supply is AWOL), and the OS install is almost ready to go. I am done with the perl script that will be handling the image display duties, and the 7 in 4 flash media to USB adapter is working.

I plan to post explicit instructions on installing to the hard drive, the lilo.conf file that I am using, the perl script, and instructions on getting the flash media adapter working.

Thanks go out to my mother in law, for kindly donating a couple laptops for my project.

Leave a Reply