Hardware for my freevo:
Of particular interest to freevo users:
How I setup my freevo.
  1. installed debian unstable onto the computer
  2. I did not install X windows or anything like that. from tasksel I only selected the webserver package and all the development packages
  3. install the linux source package from debian using dselect
  4. install the linux-wlan-ng driver source
  5. compile linux kernel
    1. unpack the source found in /usr/src
    2. symlink the created directory to /usr/src/linux if it is not already named that
    3. find the config for the standard debian kernel in /boot/config-<kernel version>-<processor type>
    4. copy the config to /usr/src/linux/.config
    5. ran make menuconfig
    6. I then went through using this document and enabled (not just modules fully enabled) the settings the G400 requires
    7. I then went and configure the linux-wlan-ng source (a different set of instructions so truncated)
    8. compiled using: make bzImage
    9. compiled the modules: make modules
    10. installed the modules: make modules_install
  6. compiled and installed the linux-wlan-ng drivers
  7. copied the /usr/src/linux/arch/i386/boot/bzImage to /boot/vmlinuz-<kernel version>
  8. edited lilo.conf to include the new kernel.
    example section:
    image=/boot/vmlinuz-<kernel-version>
    label=FreevoFB
    read-only
    append="video=matrox:vesa:392"
  9. installed the new kernel by using the lilo command
  10. INSTALL BTTV
    1. created a /etc/modutils.d/bttv file
    2. consulted bttv code for proper card number for the ATI TV Wonder VE. The tuner number is a guess, that seems to work.
    3. put this line in it:
      options bttv card=64 radio=0 tuner=2
    4. edited /etc/modules to include these lines:
      via82cxxx_audio
      bttv
      btaudio
      apm
    5. btaudio is for recording, bttv is the tuner, via for the soundcard, and apm for poweroff during shutdown
    6. ran update-modules to update module info
  11. I then rebooted the computer and confirmed framebuffer worked. (look for the penguin in the top left during boot)
  12. INSTALL FREEVO
    1. get the big binary tarball
    2. untar it in /usr/local/src/
    3. cd freevo-<version>
    4. ./freevo setup --display=mga --geometry=768x576
    5. make install
    6. cd /usr/local/freevo
    7. edit local_conf.py
      1. set MAX_VOLUME, DEFAULT_VOLUME, TV_IN_VOLUME and VCR_IN_VOLUME to 80
      2. set the DIR entries for each media type
      3. edit the TV_Channels entry
      4. set ENABLE_SHUTDOWN_SYS = 1
      5. set AUDIO_RANDOM_PLAYLIST = 0
  13. created a called /usr/local/bin/startfreevo:
    #!/bin/bash
    cd /usr/local/freevo; ./freevo
  14. created a /etc/freevo directory
  15. copied /usr/local/src/freevo/boot/boot.config to /etc/freevo
  16. copied /usr/local/src/freevo/boot/freevo to /etc/init.d/freevo. I had to make one modification:
    change this line from:

    (cd /tmp && $DAEMON >> $FREEVO_LOG 2>&1 &)

    to:

    (/bin/su - root -c "/usr/local/bin/startfreevo" < /dev/tty3 >/dev/tty4 2>&1 &)
  17. then I symlinked it into the appropriate runlevels (4 in my case) and then also symlinked in a kill request for it in /etc/rc0.d and /etc/rc6.d otherwise you would never get your console back to see your reboot or shutdown messages
  18. I then copied /usr/local/freevo/fbset.db to /etc/fb.modes
  19. I then compiled the code in /usr/local/freevo/fbcon/
    1. cd /usr/local/freevo/fbcon/
    2. make all
    3. I copied the binary matroxset/matroxset to /usr/local/bin
    4. I copied the binary vtrelease to /usr/local/bin
  20. then I tried to get the tv out working by using these commands:
    1. /usr/local/bin/matroxset -f /dev/fb1 -m 0
    2. /usr/local/bin/matroxset -f /dev/fb0 -m 3
    3. /usr/local/bin/matroxset -f /dev/fb1 2
    4. fbset ntsc-768x576
  21. put the set of commands from the previous set into a script in the  /etc/rcS.d/ directory to run at startup
  22. I then compiled and install lirc from source:
    1. downloaded libirman from lirc site
    2. cd /usr/local/src/libirman-<version>
    3. ./configure
    4. make
    5. make install
    6. cd /usr/local/src/lirc-<version>
    7. ./setup.sh 
      1. configured using the curses gui
      2. it asked for driver I chose irman
      3. I then set the correct serial device to /dev/ttyS1
      4. saved setup
    8. make
    9. make install
  23. create /etc/lircd.conf using irrecord
  24. created a lirc init script in /etc/init.d/
  25. symlinked lirc init in the appropriate run levels
  26. created a /etc/freevo/lircrc:
    In general the file is a translation table to convert stuff from your
    /etc/lircd.conf into the names freevo expects in its code.

    mine has several entries looking like this:
    begin
    prog = freevo
    button = NUM_TWO
    config = UP
    end

    where button is the /etc/lircd.conf name and config is what it maps to
    in freevo.

    I mapped my number area since I don't think it is used by freevo. So i
    have UP, DOWN, LEFT, and RIGHT as 2, 8, 4, 6 respectively. I then mapped
    some vcr buttons to the appropriate functions for REW, PLAY, FFWD,
    PAUSE, and STOP.

    I also then mapped five on my numeric keypad to SELECT. I then picked
    another random button for EXIT, and finally mapped the channel changer
    buttons to CH+ and CH-.
  27. XMLTV INSTALL
    1. originally installed xmltv using dselect which installed perl with all correct dependancies
    2. then removed xmltv packages
    3. downloaded source
    4. cd /usr/local/src/xmltv-<version>
    5. perl Makefile.PL
    6. make
    7. make install
  28. setup a script to symlink current listings to /tmp/TV.xml:
    #!/bin/bash

    XMLTVFILE=`date +'/usr/local/freevo_data/listings/%d%m%Y.xml'`

    if [ -L /tmp/TV.xml ]
    then
    OLDFILE=`readlink /tmp/TV.xml`

    if [ $XMLTVFILE != $OLDFILE ]
    then
    rm -f /tmp/TV.xml
    fi

    fi


    if [ -f $XMLTVFILE ]
    then
    if [ ! -L /tmp/TV.xml ]
    then
    ln -s $XMLTVFILE /tmp/TV.xml
    fi
    fi
  29. setup a script to get listings:
    #!/bin/bash

    /usr/bin/tv_grab_na --listings '/usr/local/freevo_data/listings/%d%m%Y.xml' --days 7
    /usr/local/bin/fixtvxml

  30. put the fixtvxml script into cron to run every hour (so I can have it change the schedule at midnight)
  31. I also have a script in /etc/rcS.d/ which runs this script.
  32. MPLAYER mga_vid install
    1. downloaded same version as the default mplayer in the binary runtime.
    2. cd /usr/local/src/MPlayer-<version>/drivers
    3. make
    4. make install
  33. mplayer codec install
    1. downloaded the qt6 and win32 codec packages from the MPlayer site
    2. installed them into /usr/lib/win32/
  34. I also got freevoweb setup but am skipping this since it is going to change real soon.
  35. reboot, cross most of your appendages. ymmv.