For my second frame, I realized that I could probably do a little better as far as the ability to update pictures on the frame - SSH is probably a little too difficult for the average user (my parents). So, I decided I would find a laptop that had a usb drive so that I could allow someone to just plug in a usb drive on booting the frame and have my script automatically detect it and load pictures onto the frame. Once again I put out the disclaimer that there are probably much smoother ways to go about doing this than the script that I wrote, but it does work, and the average user probably doesn't care that it isn't the optimal way.
That being said, the only real difference between what I did on my first frame and what I did on my second frame is the script I used and the libvga.config file for the thinkpad 770. Basically, due to the different video chipset in the TP770 as well as the usb autodetect and picture copy, the zzzz.sh script is a bit different. Additionally, you will need to put an executable script onto your usb drive for this to work, for which I included the source code below. Basically, this script first detects if you have a usb drive connected (sda1), if it is detected then the script copies the 'autorun.sh' script (source code is further down) from the usb drive to the /home/ directory and then executes it. However, everything else is the same : ) So have fun... here it is:
#!/bin/bash
#/etc/init.d/zzzz.sh
set -e
case "$1" in
start)
# for usb automount and copy
if [ -e /dev/sda1 ];then
echo Updating Pictures
mount /dev/sda1
cp /media/usb/pictures/autorun.sh /home/
./home/autorun.sh
umount /dev/sda1
echo Pictures Updated
echo Pictures Updated
echo Pictures Updated
echo Pictures Updated
echo Pictures Updated
fi
echo "Turning off powersave options"
echo "Starting your Digital Picture Frame"
start-stop-daemon --start --quiet --exec /usr/bin/zgv -- --viewer-start-mode "1024 768 24" -l -S 15 -R /home/pictures/*jpg /home/pictures/*JPG
;;
stop)
echo -n "Stopping your Digital Picture Frame"
start-stop-daemon --stop --quiet zgv
;;
*)
exit 1
esac
exit 0
###end of file
To use the usb autodetect and and copy you will need to put all of your pictures - this time formatted to 1024x768 - into a directory called 'pictures' in the root directory of your usb drive. After this script is copied from your usb drive it is then executed - updating the pictures in your /home/pictures/ directory with the pictures in your /pictures/ directory on your usb drive. For those of you curious as to why I did it like this is was basically so that I could just rewrite autorun.sh to do whatever I want it to in the event that my family asks me to delete all the current pictures on the frame and then replace them with others. All I really have to do is just send them a different version of autorun.sh that just deletes all the pictures on the frame before it copies the new ones. However, I figured that in general they'll just want to put new ones on. The following script is the source code for the autorun.sh script that you need to put on your usb drive for this to work:
##autorun.sh
#!/bin/bash
echo Found USB Memory
echo Updating Pictures
cp -u /media/usb/pictures/*jpg /home/pictures/
echo File Copy Finished
exit 0
##End of file
Below is a libvga.config file that worked with my thinkpad 770.
####/etc/vga/libvga.config for ibm thinkpad 770
mouse PS2
mouse_accel_type power
function
mouse_accel_mult 60
mouse_accel_thresh 4
mouse_accel_power 0.8
mouse_accel_offset 30
kbd_only_root_keymaps
HorizSync 25 79
VertRefresh 20 76
modeline "1024x768" 65.0 1024 1024 1185 1346 768 768 787 805 +hsync +vsync
modeline "800x600" 39.9 800 800 927 1053 600 600 616 632 +hsync +vsync
chipset VESA
colortext
####end of file
So thats number 2. I'm working on 3 and 4 right now for other family members but those are on different systems. I hope that maybe I was able to help you a bit if you're doing the same thing : )
