1)    Install Debian - If you need the site to download the latest netinstall cd image here it is again (choose the netinst.iso image).  I would recommend partitioning the harddrive during the install (it asks you if you want to) and just use the guided partitioning.  I would recommend the option with the seperate /home directory for system stability purposes, and it should automatically configure you a swap partition.

You can pretty much follow the default laptop options when you are installing it.  All the extra stuff you can get after you have a fully functioning operating system.  Just make sure that you include any packages for usb support, ide, scsi, and ext3 for partition manager.

2)    So you're done with the installation and have a brand new (old) debian linux powered laptop ready to transform into your frame.  The trickiest part is probably setting up your software, especially if you've never used linux or the command line before.  Never fear though, I've already slogged my way through most of the issues that you'll probably run into.  First though, a quick linux tutorial (skip this if you've worked with linux any).  There are two commands that will get you a lot of mileage when trying to navigate the linux file system from the command line: ls and cd.  The ls command lists all of the files in the current directory you are working in.  If you ever worked with DOS, you probably remember the cd command or change directory.  Basically you type cd and then the name of the folder you want to change to so that you can manipulate the files in said folder.  These two commands will help you get around the file system.  Here is a good list of basic linux commands if you want to learn more. 

    One more that is essential if you're going to be modifying scripts in linux (which is the heart of your software) is the command vi.  The vi command followed by a text file name opens a file in the vi command line text editor.  It is a little tricky to get used to, but it is very versatile and its what I used to modify/create the scripts that power my frames.  I would highly recommend reading about how to use vi if you've never messed around with it.

So here goes.

3)    First you need to disable any default powersave options on your frame so that it doesn't ever turn off unless you shut the power off - who wants a frame that only comes on for half an hour when you hit the mouse track ball thingy that you left accessible in the back?  To do this navigate to the /etc/console-tools folder and edit the BLANK_TIME and POWERDOWN_TIME options in the config file with vi so that they look like the lines below.

BLANK_TIME=0       #Never blanks the screen
POWERDOWN_TIME=0  # Never powers down

    If you want to read more about different ways to manipulate the power controls in linux just do a Google search for linux power APM or ACPI - newer laptops generally use ACPI and older ones use APM.  The thinkpad 560E uses APM by default.

4)    Now that you've done your anti-powersave stuff, you want to get the display software and you want to make sure that you have ssh on the machine so you can remote into it.  So, execute the following commands:

apt-get install svgalib-bin           (so the frame can use the zgv program below)

apt-get install zgv                      (so the frame can display pictures)

apt-get install ssh                       (so you can ssh into the frame)

    These commands go out to the internet and pull the latest versions of svgalib-bin, zgv, and ssh from whichever debian mirror you got your install from.  It then installs the software automatically - easier than windows update :P 

    The only other thing that you need to do is to modify your /etc/vga/libvga.config file so that it will play nice with zgv.  Below is the version I used which I got from http://virtig01.net/personal/works/PictureFrame-HowTo.php

 

###/etc/vga/libvga.config for Thinkpad 560E

mouse PS2               # PS/2 mouse

mouse_accel_type        power   # The acceleration factor is a power function
mouse_accel_mult        60      # This is the number with which delta will
mouse_accel_thresh      4       # This is the threshold. See description by
mouse_accel_power       0.8     # This is the second parameter of the power
mouse_accel_offset      30      # This is the offset of the starting point

kbd_only_root_keymaps

HorizSync 30 70
VertRefresh 50 160

modeline "800x600@70"   40 800 896 984 1000 600 608 610 633

chipset VESA          # nicely behaved Vesa Bioses

colortext

###end of file

 

5)   Okay so you have all the software you need now you just need some pictures on your frame.  The first thing to know is that on the Thinkpad 560E the maximum size picture (all mine were jpg type) that looks good displayed on the screen is 800x600 pixels.  This isn't the same for every laptop (ie my TP770 frame worked with 1024x768), but it is critical to understand what size pictures your frame takes before you transfer them on.  Once they're on the frame you don't want to do have to do anything to modify them (unless you're a masochist or linux guru).  I used Adobe Photoshop on my windows machine to resize all my pictures to the right size for my frame.  And now this is the part that the tools on my software and links  page were indispensible. 

    Put all your pictures into a folder - lets just call it mystuff - on your windows machine.  Make sure that you put your tar.exe file into the C:/Windows directory as was mentioned on the the misc software page.  Open a windows command line window (Start-->Run-->"cmd" --> [ENTER]" and cd to the directory holding your mystuff folder with all your pictures in it.  Then, run the command below:

tar -cvf mystuff.tar mystuff/

    This should create a file called mystuff.tar that is a compressed version of your picture file that can be easily transferred via ftp to your frame.

    Now, start up your ftp server on your windows machine, courtesy of filezilla.  Make sure that you have a username/password set on the server and that the mystuff.tar file that you want to transfer to the frame is in a folder that your ftp server is allowing your configured username to share from.  Once everything on your server is properly configured, run the following command from your frame from the /home/ directory:

wget ftp://[put your ip address here]/mystuff.tar --user=[put your username here] --password=[put your password here]

    If the command is successful you should now have the file mystuff.tar in your /home/ directory.  Now run the following commands to extract your mystuff file from the tarball:

tar -xvf mystuff.tar

    When you do an ls command you should see a new directory called /home/mystuff/ that now holds all of the pictures from your windows machine.  Make sure that your pictures look correct using zgv by running this command:

zgv -- --viewer-start-mode "800 600 24" -l -S 7 /home/mystuff/*jpg /home/mystuff/*JPG

    If they don't display at all, you probably didn't tar them up properly.  If it only displays the upper left hand corner of the picture - you didn't properly fix the size before you transferred it.

6)   Now you have your pictures on the frame and you can look at them with zgv.  All you need now is something that will automate this process.  Anyone who knows linux scripting well could probably tell me about 20 or 30 ways that the script I mishmashed together is flawed.  However, I can gaurantee that it works every time I turn mine on and off, and I'm pretty proud that I was able to dissect the abstruse art of linux scripting.  Seriously though it isn't that hard to understand whats going on if you have any background in computer science or programming.  So, disclaimer complete, here it is.

     Open a file called zzzz.sh in the /etc/init.d/ directory using vi (it will create a new one if you don't already have one there with this name).   The /etc/init.d/ folder holds all of the scripts that run on startup.  Don't worry when you make it because it won't automatically run until you tell it to.  The reason for the funky name was so that I could be sure it was the completely last script to run (ie after all others that are probably more important to the operation of the machine) when the frame is started.  I'm sure there are probably other ways to do this (I use one other below), but I found it was pretty simple and easy to remember the name, even if its not the most descriptive of what it is actually doing.  So, you've got zzzz.sh open in vi.  Type in the following.  If you want to delete my comments feel free.

####

#!/bin/bash
#/etc/init.d/zzzz.sh

set -e

case "$1" in
  start)
        echo "Starting your Digital Picture Frame"
        start-stop-daemon --start --quiet --exec /usr/bin/zgv -- --viewer-start-mode "800 600 24" -l -S 15 -R /home/mystuff/*jpg /home/mystuff/*JPG


        ;;
  stop)
        echo -n "Stopping your Digital Picture Frame"
        start-stop-daemon --stop --quiet zgv
        ;;
        *)
  exit 1
esac
exit 0

#End of file

####

    Make sure you save this file with vi before you close it by using the the :wq command.  Once you save it run the following command in the /etc/init.d/ directory:

chmod 755 /etc/init.d/zzzz.sh

    This command turns the zzzz.sh file into a file that linux can execute.  So now, type the following command:

    ./zzzz.sh

    This should start your frame displaying the pictures in the mystuff directory.  If you've gotten this far successfully, restart your frame (power cycling should be fine).  Once you're rebooted and logged back in, navigate again to the /etc/init.d/ directory and type one more command in so that the entire startup process is automated.  WARNING:  Once you run this command if you reboot your machine, it will automatically go into the zgv picture loop.  So, make sure that you have your ssh server up and running at startup before you run this command.  That way you can download more pictures or reconfigure if necessary.

update-rc.d zzzz.sh defaults 99

    This command makes it so that the zzzz.sh script is run at the very end of the startup sequence when you boot your frame. 

Finished product-->