
Specs for the laptop which has been cannibalized : Fujitsu Lifebook C6556 Pentium III 650 MHz Bus Speed 100 MHz Max Supported and Installed RAM 192 MB TFT Active Matrix 14.1 in. 1024x768 24 bit 1. The program is about 7000 lines of C code with no external code except linking the X11/math/jpg/png/tiff libraries. 2. The program supports dynamic scaling of the pictures from JPG, PNG and TIF formats. 3. I wrote an on-the-fly font scaler with full alpha support to 100% control blending. 4. I wrote my own httpget routine to have a lot more responsive system and better error reporting. 5. The system is customizable to behave differently in different times of the day, driven from an action table. 6. The bitmaps are embedded to reduce disk access and are stored with alpha information for proper blending. 7. Most information is aquired from public websites ( checked for policy ), the moon and sun computations are local. 8. The directory where the pictures are loaded from are mappable in Windows through SAMBA, thus drag & drop from Windows is available. 9. VNC server is running thus connecting and remote controlling to the DPF is very easy. Distros tried : - Hannah Montana Linux ( ubuntu 9.04 ) -> No Graphics -> Out of memory for installer. - Linux Mint 7 : 2.6.28-11-generic, 5MB free RAM, Removing mono, /usr/bin/python* -> 46MB free RAM, networking supported by default. - Linux Mint 5 : 2.6.24-16-generic, 13MB free RAM -> Removing gnome-do/Do.exe, mono, /usr/bin/python*, tracker*, bluetooth, screensaver -> 54MB free RAM, networking supported by default. - Easy Peasy : fails to install due to low memory - Android LiveCD runs perfectly, however, I prefer C coding... - SliTaz packages : 2.6.25-5-slitaz -> 126MB free RAM To have my Belkin Wireless ME1001-USB recognized ( ZyDas zd1211b chipset ) : mkdir /cdrom mount /dev/hdb /cdrom -t iso9660 cd /cdrom/packages/2.0 tazpkg install ./usbutils-0.73.tazpkg tazpkg install ./libusb-0.1.12.tazpkg download firmware from http://sourceforge.net/projects/zd1211/develop ( USB WLAN Linux Driver ) mount /dev/sda /mnt bunzip2 untar into /lib/firmware mv zd1211-firmware zd1211 Netbox from Menu / Wireless Manager / Drivers : set zd1211rw as module. iwconfig ... vi /etc/network.conf -> eth0 -> wlan0 wifi "yes" /etc/init.d/network.sh restart Removed packages : asunder, cdparanoia, cdrkit, conspy, get-OpenOffice3, isomaster, libcddb locale-de, locale-es, locale-pt_BR, mhwaveedit, mtpaint, nano, notecase osmo, sudoku-savant, transmission, web-applications, xpad Added standard pckgs : x11vnc, samba, swat, mplayer, libtiff Added devel packgs : binutils, electric-fence, gcc, glibc-dev, htop, jpeg-dev, libpng-dev linux-headers, linux-video, make, memtest, tar, tiff-dev, xorg-libX11-dev xorg-xproto, xorg-xset, zlib-dev Edited : ~/.config/openbox/autostart.sh // added x11vnc, removed pcmanfm and lxpanel /etc/network.conf // Checked and updated with AP( TYPE_WEP ) /etc/rcS.conf // Took out kernel logging with KERNEL_LOG_DAEMONS="no" // removed the 1394, lighthttpd and added samba to RUN_DAEMONS=" tazx // to set X tune2fs -i 99999999 // to make sure that the CF is not bothered tune2fs -c 99999999 /etc/hosts.deny to ALL and /etc/host.allow for local only Samba Client on Linux : To test if your Linux machine sees the shares on the Windows box: smbclient -L-U 1. Make a directoy for the mountpoint: mkdir /mnt/ 2. Mount the share: mount -t smbfs -o username= ,password= // / /mnt/ Note: The syntax -username= ,password= saves the password. 3. Create a symbolic link to the mounted drive: ln -s /mnt/ / On coding : - Wrote my own controlled HTTP_get routines, using socket in O_NONBLOCK mode, and using select() on connect() to handle controlled timeouts. Extremely detailed error reporting is also supplied. - X11 only, no Xt or any other windowing related helper libraries are used. - Main XEvent loop is non-blocking, using ConnectionNumber() to aquire descriptor than using select() with timeout on it to periodically check if information update is needed. - No alarm() is used, XPending() is called if select() triggers on the display descriptor. - Using 24bit RGB buffer for image manipulations and pixmaps for screen transfer. Finding best match with XListPixmapFormats() and doing proper bitcopy from the RGB buffer to the buffer associated with the pixmap...
Go back to the Digital Picture Frame Project page.