Whilst fbi is the solution I adopted, here are some other possibilities you might wish to consider :-

fim (fbi improved)

fim was designed for interactive use with a keyboard user so has the same inability to work in the background problem as fbi. It also lacks the 'noverbose' option (insists on 'writing' a text 'status' line at the bottom of the display), lacks the '-t' option (so won't 'loop' itself) and, when you kill/stop the app. it blanks the top 25% of the display.

With all these extra problems to solve, I eventually decided not to waste any more time with it

For those who wish to persevere:-

fim will obey instructions found in a config file (a .fimrc file in your home directory). The string 'i=0;while(i<10){next;reload;sleep '1';display;}' has the effect of turning fim into 'slideshow' with 1 second pause between images. After launching fim, you can type the same commands at the CLI console (but need to add a leading ':')

'fimgs.sh' is an example of how to drive fim from a shell script. Other examples are found in the "scripts/utilities/" installation directory

Whilst you can 'pipe' a list of images to fim, apparently it waits for user input to move from one of these images to the next, although there is a 'sleep n' (seconds) command, and apparently some way exists to make it behave as a photoframe

feh

This display utility can be run as a background task, however early versions hinsisted on planting a 'cursor' on the display screen !! Whilst you could use a utility called 'unclutter' (sudo apt-get install unclutter) to 'un-draw' the stupid 'cursor' this would only be after some selectable 'idle' time (eg 1s, '/usr/bin/unclutter -idle 1 &')

It also turned out to be impossible to 'fool it' using the 'alias' trick = it scans the image folder when it's started and discovers the real files. So the only way to add a new display image is to stop it (using 'kill `pgrep -f "feh"') and restart it (with 'usr/bin/feh --quiet --preload --recursive --randomize --full-screen --slideshow-delay 5 /path/to/photos/ &') ..

.. and, of course, killing the task reverts the display to the terminal window (along with the 'kill compliant' message) upsetting the sequence of photos. At this point, I couldn't be bothered to investigate it further

The current version is rather more usefull, with a "-Y" option that hides the cursor. Use 'man feh' to get a list of options = typical usage would be "feh -Y -x -q -D 5 -B black -F -Z -z -r /images/" where :-

-Z Auto Zoom
-x Borderless
-F Fullscreen
-Y hide pointer
-B image background
-q quiet no error reporting
-z Randomise
-r Recursive search all folders in folders
-D Slide delay in seconds

To date, I've not checked to see if 'alias' is working

qiv

You can find another photoframe how-to here, this time using 'qiv'.

However it suffers from the same inability to dynamically up-date the show as almost every other 'how-to' I have ever found (if you want to chnage the photos, you have to reboot = see 'Conclusion' at the bottom of the page)

Note that this 'how-to' does include some useful tips on connecting to a share via Wi-Fi and limiting SDHC corruption at power off

pqiv (see here)

This is a X11 (xterm) display utility that was actually designed with an option setting ('-r') that lets you feed it the names of the images you want to display = this should mean you can change the display image to whatever you want, rather than having it 'fixed' when the display utility was started (or playing with 'alias' settings in the background).

echo /home/pi/photos/nextPhoto.jpg > /usr/bin/pqiv -i -f -s -w -r

The problem ??? It has a bug, which, as of 4 Nov 2014 required a manual fix ...

sudo apt-get remove pqiv sudo apt-get install git libgtk2.0-dev git clone https://github.com/phillipberndt/pqiv.git -b 0.12 cd pqiv ./configure # in 'pqiv.c' using your fav. text editor, search for 'gchar option' and replace with 'gint option' sudo make all install

Next, it needs xterm - which has to be started at boot - and which you have to 'configure' to accept images from pqiv.

sudo raspi-config # In boot_behavior, enable 'Start desktop on boot?' option

Edit the '/etc/lightdm/lightdm.conf' file

remove the comment # from 'xserver-allow-tcp=false', then, add at end 'xserver-command=X -s 0 -dpms' ...

At this point I gave up, although at least one (German) Pi user has made it work == you can find his instructions here (it helps if you can read German == or use Google to 'translate this page' :-) )