Ubuntu 10.04 Laptop Picture Frame

This is basically an update to accommodate the changes in Ubuntu 10.04 LTS
reopened the forum for registration to promote discussion and sharing 

While some of the changes are minor, I think it would be easier to create a new article.  This is the same article, just updated to reflect the changes that may cause confusion in the old article.  Read on, before long you will have an Digital Picture Frame using Ubuntu.

I will stick to the HW, SW, & Config for these.  There are plenty of places on the internet to figure out a way to build a box, much less a picture frame/shadowbox.  This page is all about installing the software, setting the settings, turning it on, and walking away(crossed fingers).

There are a few things you should  know before getting started on this.
Install your own Linux (I used Ubuntu 10.04 LTS), this document does not show you how to do that.  It’s an easy install …..


Make sure networking works, preferably wireless.
When asked about a default keyring password, use a blank password.

The Laptop

fflt2010:

Latitude C540/C640
256 MB RAM
10 GB HDD
intel Wireless mini-pci card

The OS

I am using Ubuntu 10.04 LTS
There are a few changes since the last article, I will do my best to update everything for this version

The Front End Software

  • Gnome
    Gnome offers a simple easy to use interface.
    Session manager provides a way of starting up the feh program on startup.
    Login manager allows me to auto-login the user.(not secure, by any means).
    Remote Desktop for remote access to the… well,  desktop.
    Power manager/screensaver to turn off screen blanking.
  • feh (slideshow)
    The slideshow portion for fullscreen, no-pointer goodness.

The Backend Software

  • Perl
    and various Perl packages for scripting
    Flickr::API
    XML::Simple
  • SSH
    Remote access
  • Apache 2
    for the Flickrframe perl config
  • Flickrframe from sourceforge
  • graphicsmagick(backend)
    For creating the News and Weather and images.
  • A flickr account

The Setup

  • Install Ubuntu 10.xxx
    This would be a waste of space for me to re-write how to do this.  There are many resources available on line that can guide you.  One of my best resources is just doing it.  Download, burn, and install a copy of Ubuntu.
    A few hints though…
    Make sure Networking is functioning, this is an important part of the whole scheme of things.
    While Installing, create a user called ‘flickrframe’ or whatever user is going to be the one showing the slideshow.  This will be important for permissions etc later.
  • Auto-login
  1. Click System->Administration->Login Window
  2. Enter your password(in Ubuntu)
  3. Select the Security tab.
  4. Check the Enable Automatic Login box.
  5. Select the User  (the one you created for this very reason)
  6. Click Close.

You can test this by shutting down the machine and restarting….

  • Set up the Remote Desktop
  1. Click System->Preferences->Remote Desktop
  2. Under Sharing, Check Allow other users to view your desktop
  3. Allow other users to control your desktop
  4. Under Security, Uncheck Ask you for Confirmation
  5. Check Require the user to enter a password
  6. Enter a password
  7. Click Close

You can test this by using a VNC program and connecting to your computername or IP in the address field.

  • Screen saver / Power Management
    It is important to turn off the screen blanking feature as the slideshow is fairly useless if nobody can see the pictures… think: If a tree falls in the woods and nobody is there to hear it…
  1. Click System->Preferences->Screensaver
  2. Uncheck Activate screensaver when computer idle
  3. Click the Power Management button
  4. Change the sliders to Never
  5. Click Close
  6. Click Close again

Here comes the science…

At this point you should have a computer that starts up, logs in automatically, and sits there.  Impressive, I know.  But don’t rest on the success yet.  If you are new to Linux, this would be a good time to wipe you forehead, maybe take a little walk around the room and think about things.  You might even want to point out what you have done to your significant other.  Don’t do the last part yet, nobody really cares when a computer starts and sits there….  They care more when they don’t do those things….

Basically, at this point, you have a working linux laptop.  Which is fairly impressive in its own right.  Now comes the Geek/Technical “stuff” .  It will be okay, just don’t drink the kool-aid.

From here on out things you type will be in Italic

Add the backend software and configure
“apt-get” is the way you add software packages to Linux running ubuntu.  Networking should be working at this point for anything to work.

Click on Applications->Accessories->Terminal
This will open a terminal screen, aka command prompt

Type the following

sudo-s

Enter your password.  This will give you temporary Super User (root) access to make administrative changes to the system.

apt-get update

This will make sure everything is up to date.

Install feh, graphicsmagick, perl, libwww-perl, gcc, make, ssh, apache2

apt-get install feh
apt-get install graphicsmagick
apt-get install make
apt-get install gcc
apt-get install apache2
apt-get install perl
apt-get install libwww-perl
apt-get install libapache2-mod-perl2

Once that is done type:

exit

This will take you out of su mode and back into “for your own good” mode.

Install Flickrframe Perl scripts

Download and unzip the flickrframe scripts form sourceforge then move into /home/flickrframe from the downloads directory.

Once the file is moved over

tar -xvf flickrframe.tar.gz

This will create a directory called flickrframe in the home directory.  (/home/flickrframe/flickrframe)
There is a readme here, that is helpful, but not entirely accurate.  I will try to explain the correct processes below.

Install Flickr::API(from the flickrframe INSTALL.txt)
Here we install the perl modules to support the flickrframe app.

sudo -s

Enter Password, then continue on..  Once you start this, it will seem to not do anything for a while, let it run.

perl -MCPANPLUS -e ‘install Flickr::API’
perl -MCPANPLUS -e ‘install Getopt::Compact’
perl -MCPANPLUS -e ‘install Text::Table’
perl -MCPANPLUS -e ‘install Math::BigInt’

At this point I would go a head and install the XML::Simple. We will need it later for the weather and CNN scripts, so:

perl -MCPAN -e ‘install XML::Simple’

When this is done type:

exit

Configure Apache
Per the instructions in the flickrframe docs, you should edit the apache config.  This would work okay if you were using apache, but we are using the newer apache2, just because, I kno w how to  make this work with it.   So follow along if you are using apache2

sudo pico /etc/apache2/mods-enabled/mime.conf

find the line that says ‘# AddHandler cgi-script .cgi’ and add below it:

AddHandler cgi-script .pl

This will add perl script cgi support. remove the hash before the above line to enable .cgi script support outside of the cgi-bin directory
Ctrl -x to exit select y to save.

sudo pico /etc/apache2/sites-enabled/000-default

Change the line for  Document Root to reflect the root directory of flickrframe:

from:
Document Root /blah/blah

to:
DocumentRoot /home/flickrframe/flickrframe/htdocs

In the Directory /var/www section, Change the directory to the same as above

<Directory /home/flickrframe/flickrframe/htdocs>

and Add ExecCGI to the end of the line containing Options:

Options Indexes….  ExecCGI

Exit out using Ctrl+X and Y at the prompt to save.

Now add the localhost to the config file by opening the apache2.conf file

sudo pico /etc/apache2/apache2.conf

Add the following line to the bottom of the file

ServerName localhost

exit and save

Restart apache2 and watch for errors

sudo /etc/init.d/apache2 restart

This should return [ ok ]

Set Correct Permissions in /home/flickrframe/flickframe/
There are a few permissions/changes that need to be fixed in the flickrframe app directory.

Create your config file by typing:

cp flickrframe.conf.dist flickrframe.conf

to copy the file  flickrframe.conf.dist to flickrframe.conf

check permissions on this file

ls -al flickrframe.conf

the output will show you the permissions, they should read

rw-rw-rw or 666 (because it is evil to give write premission to everyone)

IF they don’t read that, type:

chmod 666 flickrframe.conf

I am not going to go into the explanation of permissions, this should be known, but you can always look up permissions by googleing ‘chmod’ or “linux file permissions’.

FlickrFrame.pm should be 774(I think)
htdocs/ff.js should be 774 as well

Configuration and Flickr Authorization

Edit:  The latest ubuntu comes with a Pictures directory in your home folder…  I am using this to store ffimages for the time being so create an ffimages folder there… remember the sync piece wipes out anything that isn’t part of the current image set, so keep your ffimages directory as a subdirectory of your pictures folder.

cd /home/flickrframe/Pictures
mkdir ffimages
mkdir rssimages (for the weather and cnn scripts, if you choose to add them).
mkdir mypics (for local images you may want to store, but not load to flickr).

go to the web browser on some computer and type the ip address of the pictureframe computer…

http://xxx.xxx.xxx.xxx/authwizard.pl

Where xxx… is the ip address. or use http://127.0.0.1/authwizard.pl

This will allow you to set the synchronization portion for flickr.  The process here is to set up the API key to use your flickr account.  You will need to login to your flickr account and request a key… the instructions are on the web interface for your digital picture frame.

The authorization script will ask you to add the key, the shared secret, etc… after you set that wait about 5 minutes. then click the link to authorize everything.

This will take you to the configuration for the slideshow.

Just to make sure everything is working correctly,

choose “Interesting”
set the Max to 10
Check “Shufffle”
Display interval to 10 seconds
update to 120 Minutes
Image folder to where you created the ffimage directory above.
Log file to /home/flickrframe/fflog.log
click save

Autostart the slideshow and the flickrframe backend

On your Xwindows Desktop:

  1. System->Preferences->Startup Applications–
  2. Click New
  3. Name:  flickr sync
  4. Command:  /home/flickrframe/flickrframe/FlickrFrame.pm -b -c /home/flickrframe/flickrframe/flickrframe.conf
  5. click ok
  6. Click New
  7. Name: Slideshow
  8. Command: feh –hide-pointer -qrzZFD 10 /home/flickrframe/Pictures

you can start the sync process at this point by typing:

/home/flickrframe/flickrframe/FlickrFrame.pm -b -c /home/flickrframe/flickrframe/flickrframe.conf

Check the log file you created or the ffimages directory to see if images are being loaded.

Once all that is configured, and you are sure you are getting pictures, I would test everything by rebooting.  The Digital Picture Frame should startup log in and go to the pictures automatically.  After that change your configuration to add photosets from your flickr account.

Notes about the configuration page

At this point, you have a few different options for configuring flickrframe.  The options listed are Photoset, Favorites, Group Pool, Interesting

For each of these, and ID is required.  The ID is easily found by using idfindr

Now if I plug that into idfindr under the group tab, i can go back to the user tab and the group ID will be there.  In my case the group ID is 55624923@N00

To create a subscription in flickrframe config, I click on Type, choose Group Pool, under ID I enter the ID I received, 55624923@N00 and a max of 100 pictures.  This tells the system to download 100 random pictures from flickr that belong to that group.

Under settings, I check Shuffle,display (which doesn’t matter, but it needs something) set to 10, Update (which does matter) set to 1440 minutes.  I also add the path to the pictures folder where I want the images from flickr to go.  In this case, I want them to go to the ffimages directory under Pictures in my home directory.  I create a log file for troubleshooting as well.  I usually put it in my home directory.  I call it fflog.log

Once it is all done, you should restart to make sure everything works correctly.

Next Steps

From here you can do whatever.  The Weather, CNN, and radar images are located on this site.  If you are feeling daring, try them out.

Nightly Slideshow Restart
CNN Weather Script HowTo

CNN script HowTo
Radar Images

Credits

The Wares
Ksenia’s Site
Scribblespit’s Blog
LikelySoft (seems to have disappeared)
Ubuntu and its various Forums
Google – for the incredible results, of which my page never seems to appear.
Make: & Craft: Magazines for inspiration
Instructables for Inspiration
Lifehacker for keeping me informed

  • James Douglas

    Thanks for this, just followed you instructions and got this working on a raspberry pi, ok its a bit slow but it does the job. Thanks very much!!!