In this post I will attempt to explain [in all the gory details] the steps I used to turn my old laptop into a do it yourself LCD digital picture frame. This is a continuation on the last two posts, so I apologize if my loyal readers (all six 6,000 of them) are getting tired of me beating this subject into the ground. Don’t worry, I’m almost done. The next post should have pictures.
From this point forward I will explain the howto software aspect of my new digital picture frame.
Requirements:
1) Unused laptop capable of booting off USB, with Internet access
I used a Pentium III, 850MHz, with 256MB of RAM. This is probably complete overkill, but it’s what I had laying under the bed collecting dust. Internet access [for my particular case] is only required to download software. The ethernet jack on my computer was broken, so I actually set up almost everything on another PC, then transfered the flash drive to my laptop for the final product. I have read other posts in which people used wireless internet to update the photos, and/or SSH into the machine to make modifications…but I will not touch on that here.
2) USB drive
64MB is needed for the OS, and you can add as much onto that as you so desire for photo storage. Keep in mind that most [older] laptop screens are probably only 1024 pixels wide, so the photos don’t need to be ultra high quality (ie, there is no need for 10 megapixel pics). I used a 4GB flash drive, because that’s what I had laying around. I think I have about 2GB of free space leftover after installing the OS and shrinking the photos.
3) Damn Small Linux (link)
This was the best Linux distribution that I was able to find to install on a flash drive. Damn Small Linux (DSL) provides a very small installation, and offers an option to install directly to a thumb drive without any hacking around. I also tested out Ubuntu and Debian, but wasn’t ever able to get them to boot off of the flash drive. Those two distributions also required ~1GB of space so my install would have been extremely bloated, and the extra software would have been pointless for a picture frame. I did get Slax to install and boot up with no problems, but I was not able to find a good image viewer to use for a slideshow. I found that a lot of these “pen drive Linux” versions don’t come with a whole slew of applications…and they shouldn’t.
4) feh (.dsl package can be found here)
This is a very lightweight image viewer that I used to implement the photo slideshow. There are probably other software options available, but I found a pre-built package for my situation. It has a few nice scripting features that I was able to take advantage of.
5) Unclutter (.dsl package can be found here)
This program is used for hiding the mouse cursor after a certain period of inactivity. By default in DSL and with the feh slideshow, the mouse cursor never goes away. In order to avoid an annoying arrow in the middle of the screen during a slideshow, I used Unclutter to take care of this.
Setup Steps:
1) Install DSL on the flash drive. Additional details, if you need them, can be found here. Boot off the Live CD, then “simply open the Main menu, go to Apps then Tools and select either a USBZIP or USBHDD and follow the prompts.”
2) Upgrade to GNU Tools: (link). “from the system menu select Apps->Tools->Upgrade to GNU Utils.” This will allow feh and Unclutter to work.
3) Download feh and Unclutter .dsl files, and place them in your mydsl folder so they are loaded on boot. gnu-utils.dsl should already be in that directory. For me this was in /mnt/sda1/mydsl.
feh (http://www.frontiernet.net/~pictureframe/mydsl/feh.dsl)
Unclutter (http://www.frontiernet.net/~pictureframe/mydsl/unclutter.dsl)
4) Create script to run the slideshow. I used bash for this because the script is extremely basic and simple to implement. I also decided to store my script file in the $HOME directory…for no real reason. You could move this around if you wanted to.
file:$HOME/start_slideshow.sh
1> #!/bin/bash
2> feh -rzF -D 60 /location/to/your/photos/
3> sudo shutdown -h +1
Line 2 will start feh searching the directory recursively, displaying images at random, full screen, and at 60 second intervals. The script will not continue past line 2 since I didn’t use the ‘&’ at the end of the command to run the process in the background. This is good, however, because then we can gracefully shutdown the system with the second line by exiting feh. I exit feh by pressing ‘Q’ on the keyboard…not the most beautiful solution, but it works. Line 3 will halt the machine in 1 minute, giving you time to kill the shutdown sequence (sudo shutdown -c) if you would like to gain access to the desktop again.
Download my example
5) Comment out the line in .jwmrc that opens the root menu. I did this so that my full screen slideshow was really full screen.
file:$HOME/.jwmrc
comment out: RootMenu height=”20″ onroot=”123″
Download my example
6) Edit .xinitrc to automatically start Unclutter and the slideshow when the X Desktop starts
file:$HOME/.xinitrc
x1> /usr/X11R6/bin/unclutter &
x2> $HOME/start_slideshow.sh &
x3> xset s off
Line 1 starts Unclutter, line 2 starts the slideshow, and line 3 turns the screensaver off so the slideshow will not be interrupted.
Download my example
7) Prepare photos. In my case, the flash drive partition that didn’t hold the OS was located at /mnt/sda1. This was the perfect place to store my photos, especially since this partition could be accessed by my Mac. I created a subdirectory called ‘photos’ and copied 4000 files in there.
So there you have it, the gory details on how I set up the software for my digital picture frame. I’ll discuss the hardware aspect at a later date.
Here are a few additional links that I used for reference:
http://www.thewares.net/item/33
http://www.frontiernet.net/~pictureframe/
http://linuxbrit.co.uk/feh/wiki/FehHelp
Edit (July 31, 2008): Apparently the links for the .dsl packages of feh and unclutter don’t work anymore, so I’ll post them here:
That’s an excellent little project. A dodgy use of time one could argue but a cool thing to hack on regardless.
Who am I kidding, I just wish I had time to do that sort of thing.
Who am I really kidding, I’d be happy to have enough time to sleep.
Nice work Lepolt. Even better documentation.
Pingback: create debian installation cd
I’m trying this same deal with a Dell CP laptop. A bit older, but is running DSL.
However, I have not found a feh.dsl file.
I have found feh.unc, but can’t seem to do anything with it. (Try google ‘unc file’ to see how much help I’ve gotten…)
I haven’t been able to access DSL’s forum, so I don’t know where else to go for help.
Edit (July 31, 2008): Apparently the links for the .dsl packages of feh and unclutter don’t work anymore, so I’ll post them here:
Sweet. I was working on this exact package and decided i needed another option for the full screen slideshow. Your site here has helped me make a decision.