From ST2205u wiki
Revision as of 20:15, 6 June 2011 by Sprite tm (talk | contribs) (Clarifications and additions, thanks Par.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Using your picture frame as a picture frame


Although this wiki was started for hacking st2205 picture frames firmware so that the picture frame can be used as a "second monitor", some people would like to actually use the picture frame as a picture frame, and be able to put pictures on it under Linux :)

Recently (March 2010) 2 libgphoto2 "camlibs" have been added to libghoto2, which allow downloading, uploading and deleting pictures from st2205 resp. ax203 based frames.

If you're interested in uploading pictures to your picture frame under Linux and wonder what chipset it is using, here is a usb-id table (plug the frame into the computer, then choose usb connect in the frames menu, and then run lsusb to see what the usb-id of your frame is):

USB-ID Chipset Support status in libgphoto2
1403:0001 st2205 supported in svn libgphoto2-2_4 branch and trunk
1908:1315 ax203 with firmware ver 3.3.x supported in svn libgphoto2-2_4 branch and trunk (*) (**)
1908:1320 ax203 with firmware ver 3.4.x supported in svn libgphoto2-2_4 branch and trunk (**)
1908:0102 ax206 with firmware ver 3.5.x supported in svn libgphoto2-2_4 branch and trunk

x) Note that if your ax203 frame has a usb-id of 1908:1315, you need to tell Linux not to touch the HID device this version also presents in its USB descriptor, otherwise the frame gets confused and resets. Here is a kernel patch for this. Alternatively one could add the following on the linux kernel cmdline: usbhid.quirks=0x1908:0x1315:0x4, but that does not help as it triggers this bug.

xx) If you have a 1908:1315 or 1908:1320 frame, these will work better (faster, no reset errors in dmesg), if you do the following as root, before plugging them in:

modprobe usb-storage
echo 1908:1315:b,1908:1320:b > /sys/module/usb_storage/parameters/quirks

xxx) If you have never used the device before you may need to copy something on to it with the windows Utility before it will be detected since the file system is completely blank and you may get a ax203(0): ABFS magic not found at: 50000 error.

Installing the st2205 and ax203 libgphoto2 drivers from gphoto svn

These instructions will replace you existing libgphoto2 installation, and are valid only if your existing libgphoto2 installation is a 2.4.x version. You need to have the following software installed, note this listing contains Fedora package names, which can be installed under Fedora using "yum install <packagename>". The names may be different on other distributions:

  • svn, gcc, make, pkgconfig, sharutils
  • libusb-devel, gd-devel, lockdev-devel, libexif-devel
  • libjpeg-devel, libtool-ltdl-devel, popt-devel
  • autoconf, automake, libtool, gettext-devel
  • libgphoto2, gphoto2
# For Ubuntu (and probably Debian), use this command line:
sudo apt-get install subversion build-essential sharutils libusb-dev libgd2-xpm-dev liblockdev1-dev libexif-dev \
  libjpeg-dev libltdl-dev libpopt-dev autoconf automake libtool gettext libgphoto2-2 gphoto2 autopoint

Once you have these installed run the following commands:

svn co
cd libgphoto2
autoreconf -f -i
./configure --prefix=/usr --libdir=</usr/lib|/usr/lib64>
sudo make install

(in the ./configure line, use /usr/lib on 32bit systems, /usr/lib64 on 64bit installs.) Now you should be able to use the gphoto2 commandline tool to communicate with your picture frame, for example, run: "gphoto2 -L" as root (see below) to list all the photos on the picture frame.

Configuring your system for user level access to the picture frame

Assuming your distribution comes with udev and libgphoto2 set up in such a way that a normal user can access libgphoto2 driven devices such as still cameras when locally logged in, you can configure your system to allow normal users access to the picture frame to by updating the libgphoto2 udev rules. First install the updated libgphoto2 as described above, then on Fedora you would do:

cd libgphoto2/packaging/generic/
sudo sh -c "./print-camera-list udev-rules version 136 > /lib/udev/rules.d/40-libgphoto2.rules"

On other distributions, this might work too, but may need some adjustment. On other distributions, first backup your existing gphoto2 udev rules, and after regenerating see if the part for regular cameras looks the same. if not adjust the parameters to print-camera-list to make them match.