Installation Documentation

System Requirements

  • An old laptop with a color screen. Active Matrix/TFT looks nicer than Passive Matrix.
  • Processor: works great at 300Mhz, probably could use as low as 100MHz. You won’t notice speed issues while the slide show is running – only while building the system
  • Memory: 64MB is plenty, although the CentOS installation down-shifts to text mode with 128MB or less. 256MB or more helps only a little and is overkill.
  • Hard Disk: The final installation size is less than 1GB. A 4GB hard disk will allow you to install CentOS and hold about 5000 photos.
  • Bootable CDROM drive. I despise floppies!
  • At least one USB port. You can use the CDROM drive instead
  • Network access for the build process. Optional once you finish creating your LinDPF.

Please note that I don’t like pan and zoom because I like to see the entire photo. As such I don’t use these features, which are CPU and graphics processor intensive anyway. If you desire pan and zoom, you will likely need a processor faster than 1GHz.

Installation

These instructions will be filled in with more detail as I progress through several LinDPFs of my own.

  1. Install CentOS

    1. Deselect all packages – dig as deep as you can and deselect EVERYTHING.
    2. Create swap and / (root) partitions only. Avoid the urge to partition your hard disk any further. It will only serve to waste disk space.
    3. If you want to run the Flickr or generic web xscreensaver hacks, you’ll need networking.
    4. Other options are up to you, but keep a minimalistic attitude.
    5. Install and reboot.
  2. Strip CentOS of everything unnecessary

    1. To save/clear disk space, use yum and rpm to remove as many packages as you can. Some of the packages in the commands below may not be installed on your system. I’ve included them for completeness because I’ve seen CentOS install different packages on what I thought was the same installation scenario. If you get an error saying that one or more packages are not installed, remove those package names from the command and try again.
    2. yum remove selinux* yp-tools portmap openssh* gnupg ipsec-tools \
      tcpdump Deployment_Guide-en-US atd auditd autofs conman bluez* \
      nfs-utils nfs-util-lib cups ibmasm iptables* irda* irqbalance \
      md* NetworkManagernscd psacct readahead sendmail
       
      
      rpm -e apmd aspell aspell-en at cpuspeed logwatch mailx mailcap \
      yum-updatesd anacron perl-String-CRC32 stunnel numactl fbset \
      wpa_supplicant lftp desktop-file-utils redhat-menus htmlview pinfo
      
    3. If you’re not using wireless networking
    4. rpm -e wireless-tools rhpl authconfig
    5. To save CPU cycles and memory, use chkconfig to turn off all services you possibly can.
      chkconfig --level 2345 service_name off

      Don’t disable these

      acpid (allows graceful shutdown with the push of the power button)

      smartd (good to have around for old IDE hard disks)

      pcscd (OPTIONAL if you use pc-cards)

      network (OPTIONAL if you need the network)

  3. Add a few things you need to run LinDPF

    1. Everyone will need these
    2. yum install xterm xorg-x11-xinit acpid xscreensaver-gl-extras \
      xscreensaver-base xorg-x11-server-Xorg vim-enhanced \
      xorg-x11-fonts-75dpi xorg-x11-fonts-100dpi \
      xorg-x11-fonts-truetype twm ImageMagick
    3. You may also need this for the touchpad
    4. yum install synaptics
    5. Install the drivers for your video card
    6. yum install xorg-x11-drv-video_card

      Where video_card is the string used in the package name for your video card. Try “yum search xorg-x11-drv” to see what is available.

  4. Edit /etc/inittab

    1. Comment out the gettys on tty3 thru tty6 to slim things down even more.
    2. Make it so that root auto-logs in at boot time by editing the line for tty1 to look something like this:
    3. 1:2345:respawn:/sbin/mingetty --autologin root tty1

      (Note the –autologin root part.)

    4. Set the default runlevel to 3 by editing the initdefault line (it may already be 3, but sometimes is set to 5 during installation)
    5. id:3:initdefault:
  5. Set up the startup scripts and other automation

    1. Edit /root/.bashrc and add the following lines at the end of the file
    2. /root/scripts/startup.sh
      su - slideshow -c startx
    3. Create the /root/scripts folder and copy the LinDPF shell scripts into it.
    4. Update /root/scripts/global.var to reflect your screen resolution and any other changes you’d like to make.
  6. Update /boot/grub/grub.conf

    1. Wait zero seconds (this speeds up startup by a hair)
    2. timeout=0
  7. Create the non-root user that will actually run the picture frame and set up its environemnt

  8. useradd -m slideshow
    su - slideshow
    mkdir images
    mkdir -p storage/imported
    mkdir -p storage/included
  9. Edit .xinitrc (if necessary, create the file first) and add the following lines

  10. xscreensaver &
    twm
  11. Start X as the slideshow user and configure the slideshow screensaver

      startx
    1. Wait for everything to start up and click the mouse. You’ll get a dropdown menu. Sometimes it takes 30-40 seconds for twm to load and give you a dropdown menu.
    2. Select xterm from the dropdown menu.
    3. In the xterm window run “xscreensaver-demo” and configure xscreensaver.
      • Set Mode to “Only one screen saver” and choose the GLSlideshow hack.
      • Set Blank After to 1 minute
      • Set Cycle After to 60 minutes
      • Uncheck Lock Screen After
      • Click Settings:
  12. There is still more to come. The document is not complete.