[Programs] [Cross-compiler] [Partition Support] [Teletext] --- On this page: [Acknowledgements] [Copyright] [Changes]

Tim's TiVo Software

These pages list software I have ported, improved, or adapted for the Series 1 TiVo. I have a UK Thomson Scenium PVR10UK, running TiVo software version 2.5.5, but these programs should work fine on any PowerPC (ie. Series 1) TiVo. You can also browse the downloads directory directly.

I have also made various improvements to sanderton's EndPad utility (incorporated in version 1.5.0 and above).

Acknowledgements and References

I wouldn't have got started hacking my TiVo without many useful tools, examples, and documentation from the TiVo hacking community. In particular, I would like to mention The following sites also have much useful information and many helpful contributors Although most of the information on these pages was gleaned from the web, I have latterly found the following two books of great interest. Both are good introductions to TiVo hacking (all the stuff I learnt on the web and some more), but the Keegan book gives much more detail as well (it's twice the size!). The tivosh reference was particularly useful. It also includes a CD of TiVo software (mainly useful to see what's available, as it's usually best to get the latest version from the web).


All software and information on these web pages is provided "as is" without express or implied warranty.

Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that a reference to, or copy of, the original documentation and acknowledgements is included in any new distribution (a link to this web page would be sufficient). This requirement does not apply to software I have copied or adapted from elsewhere. The original authors retain copyright (see the referenced web pages for details) and no additional requirements are applied, though if my adaptations are propagated elsewhere, it would be useful (but not required) to reference this web page in the accompanying documentation (eg. change log).

"TiVo" and the TiVo logo are trademarks of TiVo, Inc..

If you have any corrections to information on this page, I'd be very grateful if you could let me know.


2nd July 2006

  1. Various cross-compiler and C Library improvements (tivo-build-xcompiler version 2.6):-
    1. Add /usr/local/tivo/include/linux/autoconf.h which is needed by config.h.
    2. Rearrange directories and use better names for environment variables.
    3. Put more hacks into patch file instead of applying them in build script.
    4. Make sure tar'ed files are owned by root so they come out right on TiVo.
    5. Don't delete existing /usr/local/tivo directory tree, just overwrite files.
    6. New libfix_tivo_libc.a and libfix_tivo_libc_g.a libraries that contain just the modules that are broken in TiVo's default /lib/libc.so (contains a cut-down version of resolv/res_debug).
    7. New gcc -standalone option links against libfix_tivo_libc.a and static libraries, except uses libc.so (uses static libpthread, even though that is available on the TiVo). Executable will work with just TiVo's default libc (-standalone can be made the default by using alternate specs file).
    8. Fix __floatdisf (long long->float conversion) using GCC patch from 17-Apr-1998 22:38 (EGCS 1.1).
    9. Fix strtold and wcstold based on 28-Dec-1998 14:25 glibc patch. These are included in libfix_tivo_libc.
    10. Move static service routine table from nsswitch.c to XXX-lookup.c (included by *-lookup.c). This means only required modules are linked in.
    11. libc.so contains its own trampoline setup so programs linked against TiVo's libc.so work. We use different routine names so new programs keep their own, so can work with TiVo's libc.so. This means we no longer need a separate libc_with_trampoline.so.
    12. Save PowerPC libraries and binaries as tivo-libs.tgz and tivo-libc-progs.tgz in $SOURCE (no longer $INSTALL).
    13. Remove libbfd.a, libiberty.a, and libopcodes.a from /usr/local/tivo/lib. They are not TiVo libraries.
    14. $SOURCE->$ROOT, $BUILD->$SOURCE, $BUILD and $RBUILD specify separate directories for intermediate files (useful when working on toolchain).
    15. More quotes ("") in tivo-build.sh, which might allow building in directory with spaces (eg. in Cygwin).
    16. Make HTML documentation in /usr/local/tivo/html.
  2. Rebuilt all ported programs using updated cross-compiler. Each program is built in two ways: standalone (requires no libraries except what comes preinstalled on TiVo) and shared (uses shared libraries). HTML documentation is now built too.
  3. InetUtil's ftpd no longer needs the ls program (which isn't installed by default on TiVo). It uses an internal routine instead.
  4. TinyLogin now built with some help text.
  5. Aded rsync port.
  6. Added a table to the ports web page to make it easier to download everything.

27th June 2006

  1. Add note about using the cross-compiler to TiVo version 3 (and updated header files).

11th February 2006

  1. Release EndPad 1.5.0.

18th September 2005

  1. Added GNU coreutils port.

31st August 2005

  1. Added the teletext decoder.
  2. Updated copyright section to cover software I originated.
  3. Added book recommendations.

3rd July 2005

  1. Added the FreeType and libosd libraries.

29th April 2005

  1. Added GNU tar port.

23rd April 2005

  1. Added man pages to TinyLogin.

22nd March 2005

  1. Moved most of software.html (now just a summary page) to ports.html and compiler.html and expanded documentation.
  2. Added Linux-TiVo cross-compiler binaries (Fedora Core 2).
  3. Rebuilt the ncurses library and moved the shared libraries from ncurses-5.4-tivo-s1-2b-bin.tar.gz into ncurses-5.4-tivo-s1-2b-shlib.tar.gz.
  4. Added TiVo partition support page.

20th March 2005

  1. Modified GNU InetUtils and TinyLogin to pass environment variables to the login shell. This allows environment variables set in /etc/rc.d/rc.sysinit (eg. $MFS_DEVICE) to be available to any login sessions created by inetd. For InetUtils, this behaviour is compiled in with the PRESERVE_ENVIRONMENT=1 macro (NB. without this, LD_LIBRARY_PATH is no longer set for login - previously that was passed explicitly). For TinyLogin, it can be enabled with login -p (used by InetUtils) or su -l -p (previously the -p option was ignored in these cases).
  2. InetUtils binaries are now stripped (smaller programs).
  3. Build script and patch file included for TinyLogin. Build scripts (for updated tools at least) now create the tar file.

30th January 2005

Initial version of this page.
[Programs] [Cross-compiler] [Partition Support] [Teletext] --- On this page: [Top] [Acknowledgements] [Copyright] [Changes]

Valid HTML 4.01! Best viewed with ANY browser! http://homepage.ntlworld.com/maxwells.daemon/tivo/software.html last modified 2nd July 2006 by
Tim <maxwells_daemon@ntlworld.com>