5. Credits and contact information

1. General information

That is a topic better handled by the TiVo FAQ. Go to the TiVo
Community Forum at http://www.tivocommunity.com and read the TiVo
FAQ. There are lots of helpful people on there and many good
threads on there to help you understand what your TiVo is all about.

Well that depends on you. The biggest reason to hack your TiVo is
because you want to add more space to it. For example, by adding a
30GB drive to a 14 hour TiVo you can go from 14 hours of storage
to 52 hours. Some people want to hack their TiVo just because
it is fun and they enjoy the hacking experience.

The biggest reason for this is that TiVo used Linux for their
Operating System. Linux is an open source OS that is widely
available for many different platforms. The other reason is
that TiVo uses standard off the shelf IDE hard drives. This
makes the hard drive upgrade easy, since you can go to any
computer shop and buy an IDE drive.

The TiVo runs on AC power so you could electrocute yourself if you touch the power supply while the unit is plugged in. Since the power supply is unshielded even when unplugged you could still receive a shock! It is also very easy to damage the power supply because it is unshielded. Make sure you do not touch the power supply, or allow any components or tools to touch it. If you fry the power supply, you will need to replace it to get your TiVo to work!

If you damage the original hard drive in the TiVo you will render your
TiVo useless if you have no backup.

The other big warning is that when you open your TiVo you void your warranty. Do NOT open your TiVo unless you understand the risks noted above. Life with TiVo is great, but life with a dead TiVo is not!

Well it depends on what you want to do. If you want to simply add a
second drive to your TiVo for more storage space, the answer is no.
If you want to modify the TiVo Linux kernel the answer is yes. The
best way to answer this question is to read the following sections
to see what is required for the hack you wish to do.

If you are uncomfortable opening up your PC and adding drives and
interface cards, your best bet is to avoid this entire procedure.
If you already know the difference between a primary/slave and
secondary/master drive setting, you are probably going to really
enjoy this.

There is an IRC channel on irc.openprojects.net called #tivo, however they have explicitly and repeatedly asked that the channel only be used by those experienced in TiVo hacking and *NOT* users seeking help, techical support or general Q&A.

Status: All models are hackable
Current software version: 2.5.1
- Version 1.3.0 featured a variable called "shondss" which would enabled sh on the dss port.
- Version 2.0.1 removed the shondss variable and introduced public key signing to prevent modifications to the kernel.
- Version 2.5.1 changes to the modules to reduce the amount of exported symbols

Status: As of 2.5.0 no filesystem changes are possible, disk upgrades are still possible.
Current software version: 2.5.0
- Version 2.0 featured a file check on startup, however this was easily bypassed with 'chattr +i' to prevent deletion.
- Version 2.5 improves on the filesystem check by rebooting if any part of the scan fails, the effect is that 'chattr +i' nolonger works and sets the TiVo into a reboot loop.

NO NO NO. This is something that will NOT be explored. TiVo has been
very gracious in not coming down on all this hacking described in
this FAQ and we will do nothing to harm that. Nothing will be looked
at to get around the subscription service so don't ask! Regardless
your TiVo will function as a VCR already with manual record mode.

Well here are just some of the people involved. Feel free to email me
those I forgot.

cc, Peter Creath, TivoTechie, and Ron Curry were the guys to
figure out originally how to add a second drive to a TiVo. It
all started with these guys. Many of these guys are working on
other projects such as understanding the MFS format, expanding
the A drive, etc. If it was not for the work these guys did
(and continue to do) none of this hacking would happen as soon
as it did.

Dylan created a Linux boot floppy that contains the programs
and utilities needed to make a backup of your TiVo A drive.
This disk also contains Mike's BlessTiVo program on it. Dylan
has been working on a program to automated turning on or off
many of the special hacks noted in this FAQ. Kazymyr created a CD-ROM version of Dylan's boot disk, including a bunch of other utilities; DanT updated a few bits, and released an updated boot CD http://www.avsforum.com/ubbtivo/Forum6/HTML/006392.html.

Andrew Tridgell has developed a PAL kit for the TiVo. With his
software (see section 4.1) your TiVo can accept PAL video. He also
donated space on one of the samba.org servers to host this FAQ. Andrew is the creator of the infamous Samba! Go to http://www.samba.org/ for more information.

Mike Hill (aka Belboz) wrote the BlessTiVo program that
automates the ``blessing'' process to add a second drive. He
also wrote a program (osdmngr) to convert Targa files to and
from cs22 files for creating On Screen Displays for the TiVo.
He compiled the Joe text editor and MicroCom Terminal program
for the TiVo also. The osdmngr, joe, and microcom can be found
at http://tivo.samba.org/download/belboz/ . (I am also one of the many who edit this FAQ)

The How-To provides relative newbies with simplified step-by-step instruction for recording capacity upgrades only. For more comprehensive hacking, and broader TiVo information, you should refer to the TiVo Hack FAQ.

2. Backing up your TiVo

Torx #10 screwdriver. You can find one at almost any hardware store.
(Sears and Lowes had them in my area). The TiVo uses special Torx
screws for the case and drive. Don't try using a regular flat head
screwdriver or you will end up stripping the screws out and making
the upgrade more difficult.

Unplug your TiVo and allow time for the hard drive to stop spinning
before moving it.

Remove the three Torx screws on the back of the TiVo. The top lid
should slide off. It is on very tight. Some people have used a flat
head screwdriver to pry under the top of the case where the screws
in the back were removed. Take your time.

Remember to avoid touching the power supply since you can be shocked
even with it unplugged.

If something goes wrong and you damage your original A drive your
TiVo is now useless

If you are upgrading your TiVo capacity by adding a second drive
it can not be removed once added. If you pull a second drive from a
TiVo once it has been added, the TiVo will no longer boot up.

If TiVo changes something in future software revisions it is possible
user hacked units may stop working or just do ``weird things''. If
this happens, a backup would get you back to your original (supported) state.

Even if you don't hack your TiVo a backup of the A drive could be
handy if your TiVo A drive dies down the road and your unit is out
of warranty. You could purchase a new drive and restore your backup
onto that drive.

Well the ideal time is with a TiVo that has never been powered up. Getting a backup in this ``virgin'' state is ideal. The problem with this is you are going to void your warranty on a new TiVo you have
never used. Some people don't mind this, but if your TiVo modem is fried and you don't use your TiVo first you will never know until after you voided your warranty. If you are going to make a backup
to file a virgin TiVo is ideal because many people have been able to compress their virgin TiVo A drives down to a file small enough to compress onto a single CDR (less than 650MB). Newer units
with the demo mode only compress down to a file about 3GB or so which is still small enough to fit on 5 CD's. If the TiVo has actually been in use it will not compress well and could take dozens of
CD's for a backup.

Yes and no. The best rule of thumb is to do a backup for each unique
model TiVo you own. For example if you have a Sony and a Philips
model you should backup each since the units are different.

One VERY important thing also. If you have a unit that has a serial
number that starts with 002 and you don't back it up and restore
an image from a non 002 unit which has version 1.2.1 or lower of
the TiVo software you will run into problems. The TiVo service will
still assume your 002 unit has 1.3 and will not upgrade the software
to 1.3. You will also tick TiVo off when your unit is calling in with
software that has not been installed on that unit. TiVo has been very
kind initially when things like this happened, but it is better to not
rock the boat. If you want to share a backup between multiple TiVo's
you own, make sure they all have the same version software installed
from the factory.

Update!!!

Do NOT use a backup of a Philips unit on a Sony or vice versa. The TiVo
servers will get mixed up and TiVo will terminate your account.

With all the new units coming out this is a very important issue. So just
remember to do a backup for each unit you hack UNLESS they are the EXACT
same unit and EXACT same revision software. If you do otherwise you
risk losing your TiVo service and or ticking TiVo off.

You can buy an extra drive and make a complete backup of your original
A drive onto the new drive. This way you can pull the original A drive
out and store it for safe keeping and run using the new backup A
drive. Remember that your drive needs to be large enough to hold the
copy. So if you have a TiVo with a 30GB Quantum as the A drive, you
should buy a 30GB drive as the backup drive. I recommend getting the
same drive as your original A drive so that you ensure your copy will
fit. Some people bought a Western Digital 15GB drive for backing up
their 15GB Quantum in the TiVo only to find out the Western Digital
was actually a tiny bit smaller and they couldn't make a backup.

You can also make a backup to a file or series of files onto another
drive. You could keep them on that drive or possibly burn them onto
CDROM's if you have a CDR or CDRW drive. The benefit to the backup to
file method is that you do not have to worry about drive model type.
As long as your drive is large enough to hold the image you are fine.

There are currently three recommended programs to do this with. Two are
DOS programs named Dolly and DiskPro Lite. The third is a Linux boot
disk put together by a member of the TiVo community (Dylan). It is
recommended that you use the Linux boot disk (floppy or CD version). It has proven more reliable
than the DOS programs. These first steps must be done regardless of
which program you wish to use for the backup.

1.Unplug your TiVo and allow time for the hard drive to stop spinning
before moving it.

2.Open up your TiVo.

3.Remove the IDE connector and power cable from the back of the drive
in the TiVo. Be careful to not touch the power supply.

4.Remove the two Torx screws from the front of the plate the drive is
mounted to. The drive should then lift up from the front and easily
be removed from the TiVo.

5.Power off your PC and open up the case. Make a note of what drives are connected to what IDE busses, and at the end or in the middle. Connect the original TiVo A drive to the Secondary IDE channel on your motherboard. Take your new backup drive and make sure it is set as the slave drive. This will vary depending on your drive type. See the manufacturer's documentation for details. Connect it to the cable connected to the Secondary IDE channel also. This will make your original TiVo A drive the master on the Secondary IDE connector, and the backup drive will be the Slave on
the Secondary IDE connector. You will probably have to disconnect any CD/DVD/Zip drives to do this. Make sure each drive also has a power connector plugged into it. Unplug ANY devices from the Primary IDE port. This is VERY important if you use Dolly to do the copy. Note: if you use the boot CD, it offers a faster non-byteswapping mode, in which case you can also use primary master. If you back up without byteswapping, any RESTORES will have to be done without byteswapping too.

6.Power up your PC and go into your CMOS. This varies depending on
the computer's BIOS. Some systems require hitting the delete key on
power up, some F1 or F10, and some the escape key. If you don't know you
will need to check your computers documentation. In the CMOS make sure
the Secondary Master and Slave drives are set to AUTO. If your BIOS
does not have an AUTO settings you can sometimes have the BIOS detect
the drives for you. Save your settings and reboot.

Your computer may be an older model and have trouble with large
drives. Find a system with a newer BIOS capable of handling large
drives. If you're using the Linux boot disk you can turn off the CMOS
settings for the drives. Linux can detect the drives automatically
without the CMOS settings. This allowed my Pentium 166 to detect
a 60GB Maxtor drive. The CMOS on the Pentium 166 would lock the system
up if I let it try to detect the drive.

The drive is locked. If the CMOS reports something like 19 cylinders,
16 heads, 63 Sectors (10MB) you have a locked drive. Those numbers were
reported by a user with a locked 30GB Quantum A drive in his TiVo. See
the sections below on how to deal with locked drives.

If the capacity for each drive is detected correctly then you may
proceed to the appropriate sections below depending on which backup
program you are using.

The following are the steps needed to backup your original TiVo A
drive to a new drive. If the new drive is a Quantum also it will be
bootable in your TiVo. The below steps assume you have the drives
connected as described in section 2.9 above. It should be noted that Dolly
detects xhd128 as the first hard drive the BIOS sees and not
necessarily the Primary Master drive. Make sure you have disconnected
all drives from the Primary IDE connector on your motherboard.
Failure to do so could cause you to erase those drives or your TiVo
drive.

2.Format a bootable floppy and extract the files from the dolly archive
to it. Do NOT run Dolly from inside Windows or from a DOS window.

3.Boot your computer with the floppy in the drive. Make sure your
computers boot up screen (Post screen) detects the drives fine.

4.Type the following command from the A prompt
``dolly xhd128: xhd129: /c'' (do not type the quotes)

5.After that command is finished type the following
``dolly xhd128: xhd129:`` (do not type the quotes)

6.Make sure there were NO error messages or problems with the copy
process. If there was you should go back through these steps here
and make sure you followed every step. If it fails again, your
likely problem is smaller destination drive.

7.After the last command finishes you can turn off your computer,
wait for the drives to spin down and you are done!

This process can take HOURS to run. Do not be alarmed if it takes
awhile. Once finished you can either boot your new copied A drive if
it is a Quantum and store your original drive for safe keeping. If
your new drive is a non quantum you will need to put your original
A drive back in and keep the new drive as your backup.

The following are the steps needed to backup your original TiVo A
drive to a new drive. If the new drive is a Quantum drive it will be
bootable in your TiVo without need for the "runideturbo" setting
described in later sections. The steps below assume you have the drive
connected as described in section 2.9 above.

Dylan's boot disk is a ``Linux on a floppy'' that one of the AVS
members (Dylan in case you didn't guess!) put together. It has
everything on it you need to make either a disk to disk copy of a
TiVo A drive, or a disk to image copy. It also contains Mike Hill's
BlessTiVo program which will be described in later sections. The
process to do this is as follows. There is also a CD-ROM version http://www.avsforum.com/ubbtivo/Forum6/HTML/006392.html, that includes a bunch of other tools, including TiVoMad and the TiVoNet installer.

2a.Extract the files from the archive. Get a blank formatted floppy
ready and run the batch file from the archive. It will prompt you to
insert a floppy in drive A, and it will create the boot disk for you.

2b.Use a CD recording program to burn the .iso file onto a CD-R disk (works from Linux, Windows, and Toast on a Mac).

3.Reboot the PC with the floppy diskette in the A drive or CD in the CD-ROM drive. Make sure the BIOS is configured to boot from floppy or CD as appropriate.

4a.Once the floppy has booted you will see a login prompt. Login as
``root'' (no quotes) and hit enter.

4b.The CD will offer you a few different settings. If they don't make sense, just press RETURN to accept the default. Alternatively, you can use a non-byteswapping mode which makes backups faster, but such backups can only be restored on another non-byteswapping system.

5.Type the following command to make your image. This assumes you have
the drives connected to your PC as described in section 2.9 above. Do
NOT connect either drive to the Primary IDE channel as the master drive.
It will NOT work. Connect them as detailed here unless you know what
you are doing.

6. "dd if=/dev/hdc of=/dev/hdd bs=32k" (no quotes)

If that command eventually returns an error, use this one instead.
"dd conv=noerror,sync if=/dev/hdc of=/dev/hdd bs=32k"

7.This can take a LONG time. The dd program does not give any visual
feedback until it is finished. You hard drive activity light should
show activity though through the entire process. The backup time can
take anywhere from 2-8 hours. The time varies due to drive size, CPU
speed, etc.

8.Make sure when the command is finished that no errors were reported.
The program should report X number of blocks in and X numbers of blocks
out. These numbers should be equal. If there were errors, you need to
go back through this section and see if you skipped a step. Record these numbers, so you can make sure you get the same if and when you do a restore later.

9.Turn off the PC and wait for the drive to spin down. Your backup is complete.

No. This has been a common misconception. The TiVo unit's serial number
is stored in a crypto chip on the motherboard. This has mainly been a
fear with users with two TiVos who want to make one backup to use
with both units.

Nowhere! This would violate TiVo's copyrights. If you want a backup
you are going to have to make it yourself. If your unit has been in
use for awhile this is going to be a large backup. Your best bet
in this situation is to just buy an extra drive and do a sector to
sector copy of the original.

Yes. This is actually a good method for people with locked drives who
don't have a PC clone. You can only do a drive image copy with this
method. Here are the steps needed.

0.Get bash working on your TiVo, with the devbin tools. See section 4 of this FAQ if you don't already have bash working on the TiVo.

1.While the TiVo is powered off and unplugged you need to connect
your blank drive into your TiVo as the B drive (set the jumpers to
slave for this drive). This new drive will contain a complete image
of your A drive when finished.

2.You need to be able to access the TiVo diagnostic menu detailed
in section 4.3. If your system does not support the factory
password you must use one of the other methods of backup.

3.You need to enable the Bash prompt as detailed in sections 4.4-4.6.

4.Type the following from the bash prompt

5."/devbin/dd conv=noerror,sync if=/dev/hda of=/dev/hdb bs=32k"
(no quotes) Note if this fails with a message about "dd not found"
proceed to step 6. If the command works skip to step 7.

6.You need to mount the partition with dd. Type the following.
"mount /dev/hda4 /mnt" (no quotes). Then type
"/mnt/devbin/dd conv=noerror,sync if=/dev/hda of=/dev/hdb bs=32k"
(no quotes). If this command still fails with the "dd command not found"
message, your unit does not have a devbin directory, and you cannot do
a backup with your TiVo. Proceed to step 9.

7.Let the process run to completion. Depending on the size of the drive
this could take 4-8 hours.

To do this type of backup you will need Dylan's boot disk, your original
A drive to backup and a DOS FAT formatted hard drive to put the backup
on. The drive needs to have enough space to hold the backup. It should
be noted that if your TiVo has been used much the backup will be
exceedingly large and doing a disk to disk image is generally a better
idea. If the A drive is from a virgin TiVo this compressed image could
be anywhere from 600MB to 20GB. The size will vary even for virgin TiVo's
because some have the store demo mode on them and some don't. For the
example below we will assume the following drive connections.

Original A drive connected to secondary port as the master drive ( /dev/hdc )
DOS/Windows formatted drive connected to Primary port as the master
drive ( /dev/hda ). The partition can be either a FAT16 or FAT32
partition. Dylan's bootdisk does support Ext2 partitions also if
you wish to use one.
Do not connect the DOS/Windows drive to anything but Primary master.
Byte swapping is used for all other devices and Linux will not be
able to mount DOS partitions connected to them.

(Note: The following will almost always give an error since Dylan's bootdisk does not support files larger than 4gb. We recommend you use the split file or disk to disk method).

The following are the steps needed to do the backup.

1.Connect the drives as stated above
2.Boot the computer with Dylan's boot disk in the floppy drive
3.Login as root
4.Type "mount -t vfat /dev/hda1 /mnt" (no quotes)
5.Type "dd if=/dev/hdc bs=32k | gzip -9c > /mnt/tivodisk.gz" (no quotes).
Use "dd conv=noerror,sync if=/dev/hdc bs=32k | gzip -9c > /mnt/tivodisk.gz" (no quotes) if the first gives an error.
6.Go relax because this will take awhile. Depending on the speed of
the computer, size of the A drive, this could take anywhere from
3 to 24 hours!
7.When finished make sure there were no errors.
8.Type "umount /mnt" (no quotes)
9.Power down the PC.

To restore the backup do the following. Remember that this will erase whatever is on the drive connected to the secondary master port.

1.Connect the drives as stated above
2.Boot the computer with Dylan's boot disk in the floppy drive
3.Login in as root
4.Type "mount -t vfat /dev/hda1 /mnt" (no quotes)
5.Type "cat /mnt/tivodisk.gz | gzip -d -c | dd of=/dev/hdc
bs=32k" (no quotes)
6.Go relax because this will take awhile. Depending on the speed of
the computer, size of the A drive, this could take anywhere from
3 to 24 hours!
7.Make sure there were no errors reported
8.Type ``umount /mnt'' (no quotes)
9.Power down the PC

This type of backup is typically done by those who want to split the
archive into smaller chunks to fit on a CDR or to avoid the 2GB file
size limitation. To do this type of backup you will need Dylan's boot
disk, your original A drive to backup and a DOS FAT formatted hard
drive to put the backup on. The drive needs to have enough space to
hold the backup. It should be noted that if your TiVo has been used
much the backup will be exceedingly large and doing a disk to disk
image is generally a better idea. If the A drive is from a virgin TiVo
this compressed image could be anywhere from 600MB to 20GB. The size
will vary even for virgin TiVo's because some have the store demo
mode on them and some don't. For the example below we will assume the
following drive connections.

Original A drive connected to secondary port as the master drive ( /dev/hdc )
DOS/Windows formatted drive connected to Primary port as the master
drive ( /dev/hda ). The partition can be either a FAT16 or FAT32
partition. Dylan's bootdisk does support Ext2 partitions also if
you wish to use one.
Do not connect the DOS/Windows drive to anything but Primary master.
Byte swapping is used for all other devices and Linux will not be
able to mount DOS partition connected to them.

The following are the steps needed to do the backup.

1.Connect the drives as stated above
2.Boot the computer with Dylan's boot disk in the floppy drive
3.Login in as root
4.Type "mount -t vfat /dev/hda1 /mnt" (no quotes)
5.Type "dd if=/dev/hdc bs=32k | gzip -9c | split -b 650m - /mnt/tivodisk_" (no quotes).
Use "dd conv=noerror,sync if=/dev/hdc bs=32k | gzip -9c | split -b 650m - /mnt/tivodisk_" (no quotes)
instead, if the first command gives you an error.
6.In the step above 650m denotes 650 Megabytes. This size file
should fit on a CD later for burning. You can make this value
whatever best suits your needs.
7.Go relax because this will take awhile. Depending on the speed of
the computer, size of the A drive, this could take anywhere from
3 to 24 hours!
8.When finished make sure there were no errors.
9.Type "umount /mnt" (no quotes)
10.Power down the PC.

To restore the backup do the following. Remember that this will erase whatever is on the drive connected to the secondary master port.

1.Connect the drives as stated above
2.Boot the computer with Dylan's boot disk in the floppy drive
3.Login in as root
4.Type "mount -t vfat /dev/hda1 /mnt" (no quotes)
5.Type "cat /mnt/tivodisk* | gzip -dc | dd of=/dev/hdc obs=32k" (no quotes)
6.Go relax because this will take awhile. Depending on the speed of
the computer, size of the A drive, this could take anywhere from
3 to 24 hours!
7.Make sure there were no errors reported
8.Type "umount /mnt" (no quotes)
9.Power down the PC

These programs examine the partition information of all drives
connected. Since the TiVo disks use their own partition type and it
is byte swapped, programs like Ghost only allow the TiVo drive to be
a target drive for a copy (which is NOT what you want). You basically
need a disk copy program that does a sector by sector copy only. It is
recommended that you stick with one of the programs detailed in
previous sections.

The latest Ghost 6.5 was tested by various people and was proven
not to work. The raw sector copy mode was tried also.

Many people assume that since Ghost supports Linux ext2 partitions now
that it will work with a TiVo. It should be noted that the TiVo Linux
partitions are not standard ext2 format. They are slightly modified
and are byte swapped. The TiVo disk also contains 2 MFS partitions which
are not ext2 format and the format is unknown at this time.

Not currently. If you have a virgin TiVo that has never been powered
up you will get the smallest backup to file possible (if you use
compression). Once the TiVo has been in use though it will store all
the MPEG encoded video on the drive. This MPEG data will not compress
any further when a backup is done. Once we get a better understanding
of the TiVo partitions a selective backup may be possible.

The reason being you are feeding a static ANALOG picture into the TiVo
which is then decoding it with an Analog to Digital converter. Because
of this you will not get static data from the MPEG compression.

Yes you can. Some people have trouble finding the Quantum 15GB drive
used in the TiVo 14 hour unit and are purchasing a 30GB Quantum. You
can copy your TiVo A drive to a larger drive and it will run in your
TiVo, but it will only look like the original size drive to the TiVo.

So if you copy a 15GB TiVo A drive to a 30GB drive the 30GB drive
will look like a 15GB drive to the TiVo.

Virgin backups refer to backups of TiVo's that have never been used, their popularity is due to the high compression ratios that can be achieved on an empty drive. New backup software such as mfstools and zaptivo allow you to make small backups (100-800MB) of existing TiVo units, eliminating the need for a virgin backup and alowing users to use their TiVo units before commiting to hacking. See section 1.13 for instructions on the use of mfstools.

If you still want a virgin backup then here's the suggested testing method:

Connect your TiVo to your TV, Cable Box/Antenna, and
phone line as detailed in the TiVo manual. Power up the TiVo. Proceed
into guided setup and make the first initial test call. Once the call
is completed "DO NOT" proceed on with the final call (the program
call). Just power down the TiVo and proceed with the backup
instructions. This test proves that your TiVo powers up, can output
video to your TV, and the modem works. This test is not 100 percent,
since you are not testing things like the TV recording, or cable box
control. But it does test many things (the modem being the most
important). If you still don't feel comfortable then you should
probably configure and use your TiVo like normal until you are happy
and just backup the A drive to another drive as detailed in latter
sections below.

Originally the large difference was thought to be because of the demo
mode in newer units. But with some backups of virgin (never powered up
units) taking 20gb and others taking less than 650mb
this theory doesn't seem to hold water.

The actual reason for this is that at the factory Philips and Sony
actually do a test recording of a TV signal. On some units this test recording can be quite small and on others it has been quite long. Some units don't seem to have any test video (more than likely the < 650mb backups) at all.

A 14 hour virgin drive was backed up with compression to a 2.7gb file.
When examining the drive there was about 45 minutes of "Fox Kids
Cartoons" from Channel 2 in San Francisco.

So even though the virgin backup could be a gamble on how big the
backup will be, it is still recommended that it be tried if possible. A
3gb backup is much better than 20gb.

Getting data onto and off your TiVo is made a lot easier using
rsync. You can get a tivo binary of rsync from
http://tivo.samba.org/download/tridge/ , then you need to follow these
steps to use it:

1) Setup PPP to your TiVo as described in Section 4.27. Make sure you can ping.

2) install rsync as a daemon on your Linux box (_not_ on the tivo). To
do this you add a line like this in /etc/inetd.conf:

rsync stream tcp nowait root /usr/bin/rsync rsync --daemon

then send a HUP to inetd like this "killall -1 inetd"

3) create an /etc/rsyncd.conf something like this:

[tivo]
path = /tmp/tivo
uid = root
read only = no

You may wish to set "uid=" to your own username rather than root. Then
do "mkdir /tmp/tivo" as that user.

NOTE: If you are on an open internet connection then the above will
have opened the directory /tmp/tivo to the world. See the rsyncd.conf
man page for security options. You may want to use private network numbers and run NAT on your PC -- NAT routers are available as hardware devices and as software for Windows and various UNIX operating systems (including Mac OS X).

You can now transfer files between /tmp/tivo on your linux box and
your tivo. Note that you must use the IP address of your Linux box in
the rsync commands; the host name will not work, because the TiVo doesn't have DNS support. See the rsync man
page for all the options, but the following will give you some ideas:

This refers to two posts made by Richard Bullwinkle (a TiVo Representative) in the Tivo Underground hacking forum at http://www.tivocommunity.com .

A Type I Moron is someone who takes a box that came with some version of software (1.3, for example), and restores a backup of an earlier version of software (1.21, for example). The result of this is that the box will not upgrade itself to the latest version of software, without TiVo manually intervening and forcing it. However, some people did this and caused TiVo a lot of confusion trying to figure out why the boxes had 1.21 on them in the first place. See http://www.tivocommunity.com/tivo-vb/showthread.php?threadid=33408 for more details.

A Type II Moron is someone who takes a drive from a Philips unit and uses the image or the drive itself in a Sony unit, or vice-versa. While this will appear to work at first, what will happen is that the TiVo servers will see that the software version is incorrect, and try to update the unit. However the update will fail due to differences between the two units. Thus, every daily call will try an update, thus costing TiVo a lot for the phone calls, and eventually disabling your service to make it stop. They cannot fix this remotely by forcing it to upgrade or anything, so just don't do it. See http://www.tivocommunity.com/tivo-vb/showthread.php?threadid=32011 for more details.

3. Adding a second drive

There are a couple ways to do it. The easiest is to download Dylan's
Linux bootdisk and run Mike Hill's BlessTiVo program which is
included on the disk. There is the original way which requires more
work but is more fun for the ``hacker'' crowd. Both will be
described below.

The answer is yes. With the release of Mfs Tools, even dual drive units can now be upgraded.

Any single drive standalone and most two drive standalone TiVo units are fully upgradeable. You are able to expand recording capacity by using a single larger A drive, adding a new large B drive, or combining any two drive sizes you wish - as long as your A drive is at least as large as your original A drive image.

DirecTiVo combos and some factory true dual drive TiVo units are not currently able to take advantage of larger A drives. However, these units are able to add a new large B drive to expand recording capacity.

The TiVo generally comes with Quantum Fireball drives which have been "locked" to only appear a fraction of their actual size (section 2.15).

Only Quantum drives work out of the box as A drives. If you wish to use a non Quantum drive as the A drive see section 4.9 on how to do this.

TiVos with locked drives initially won't boot with a Quantum as a B drive. The explanation for precisely why this is the case is long and boring, but there is a work-around. See section 3.18 on how to do this.

7200 RPM drives seem to work fine. They usually cost more than 5400 RPM drives, and will not give you any speed improvements by using them. It should be noted that 7200 RPM drives will draw more power and generate more heat than their 5400 counterparts. The long term consequences of using 7200 RPM drives is still being debated.

Quantum has phased out the lct10 series. They were superceded by the lct15 series, which is in turn in the process of being superceded by the lct20 series. The lct15 and lct20 drives are 4400 RPM instead of 5400. TiVo has shipped machines with all of these drives. Older machines had lct10's (and their predecessors), and new machines have lct20's.

Note that newer drives tend to run quieter, consume less power, and produce less heat. This may be important on the DirecTV/TiVo combo boxes, which run fairly hot even with the cooler drives (lct15 and later).

3.Connect the new drive you wish to add to your Macintosh. The program
doesn't care which part or where on the IDE buses that you connect the
drive. You just have to make sure that there is only one master per
bus. PCI cards that add on IDE buses will also work if they don't
pretend the attached drives are SCSI (the older ones do this to be
backwards compatible with pre IDE macs).

4.There is a problem with the original beige G3's IDE implementation
and some clones, they don't support slave drives. The setup on recent
computers without SCSI cards is Harddrive as master on one bus,
CD/DVD as master on the other bus. The zip drive is placed as a
slave on the CD/DVD bus. Mac's with SCSI cards have the first bus
empty with the second holding the CD/DVD and zip drive. Its luck of
the draw if a SCSI equipped Mac will have the IDE cables for the
first bus.

5.When you restart the Macintosh, the new drive should not be seen on
the desktop. You can verify that the drive is connected correctly by
opening the program "Drive Setup" which came with your Macintosh. It
should show you the drive, unformatted, as one of the choices to
format. Do not format the drive with Drive Setup.

6.Launch MacTivo Disk Blesser. Agree to the warning telling you that
the author is not responsible for anything you do.

7.Choose the drive you added and click on Format.

8.The program will warn you about what you are going to do. Make sure
you have the right drive connected and are specifying it correctly
before answering yes.

9.The program will give you feedback noting if the process was
successful. If you run the program on a 30GB drive and MacTivo Disk
Blesser reports it as a 9GB drive you have a problem.

10.DO NOT insert a blessed drive into your TiVo that had the size
reported wrong. If the size is wrong, the most likely issue is your
using an older drive that does not support LBA mode. Every practical
drive for upgrading a TiVo with (20GB and up) should all support
LBA mode.

11.If everything went fine you should be able to add the drive to
your TiVo. Make sure the new drive is set as slave before placing
it into your TiVo.

12.Boot your TiVo. Go to your ``Messages and Setup'' screen and
then the ``System Information'' section. You should see your
Storage capacity in this screen. If you had a 14 hour TiVo and
added a 30GB drive you should be at 52 hours and change. A 30 hour
TiVo upgraded with a 30GB drive should give you about 68 hours and
change.

13.Do NOT remove this blessed drive once added to your TiVo. Once a
blessed drive has been powered up and seen by a TiVo the two drives
are married together. You can't remove a blessed drive and insert a
new blessed drive once the first has been married. If you want to
install a new blessed drive, or revert back to a single drive you
will need to use your backup!

2.Read the readme for Dylan's disk if you need more detail for any
of the below items.

3.Extract the files from the archive. Get a blank formatted floppy
ready and run the batch file from the archive. It will prompt you to
insert a floppy in drive a, and it will create the boot disk for you.

4.Connect the new drive you wish to add to your PC. You can connect it
to either the Primary Slave, Secondary Master, or Secondary Slave. I
recommend using either of the above Slave settings. Regardless of
which you pick you must set the appropriate jumper on your drive to
reflect the master or slave setting.

5.Make sure your PC BIOS auto-detects the drive and its size correctly. If your BIOS does not detect the drive correctly, try setting it to NONE for that drive. The BIOS does not always need to see the drive, and Linux doesn't generally care what the BIOS thinks anyway.

6.Boot the PC with the new drive connected and Dylan's floppy in the A
drive.

8.Type one of the following commands without the quotes depending on
what port on your motherboard the drive is connected to. Case is
important on the command. Only type ONE of the below commands.

9.If the drive is connected as the Primary slave type
``BlessTiVo /dev/hdb''. It should be noted that there is a space
between the word BlessTiVo and the /dev/hdb in this example and the
two below.

10.If the drive is connected as the Secondary Master type
``BlessTiVo /dev/hdc''

11.If the drive is connected as the Secondary Slave type
``BlessTiVo /dev/hdd''

12.The program will warn you about what you are going to do. Make
sure you have the right drive connected and are specifying the right
port before answering yes.

13.The program will give you feedback noting if the process was
successful. It will report the size of your drive also. Make SURE
this value is within about 2-3GB of your drives actual size. If
you run the program on a 30GB drive and BlessTiVo reports it as a
9GB drive you have a problem.

14.DO NOT insert a blessed drive into your TiVo that had the size
reported wrong. If the size is wrong, the most likely issue is your
CMOS is not correct. See the documentation with Dylan's disk for
more troubleshooting with the blessing process.

15.If everything went fine you should be able to add the drive to
your TiVo. Make sure the new B drive is set as slave before placing
it into your TiVo.

16.Boot your TiVo. Go to your ``Messages and Setup'' screen and then
the ``System Information'' section. You should see your Storage
capacity in this screen. If you had a 14 hour TiVo and added a 30GB
drive you should be at 52 hours and change. A 30 hour TiVo upgraded
with a 30GB drive should give you about 68 hours and change.

17.Do NOT remove this blessed drive once added to your TiVo. Once a
blessed drive has been powered up and seen by a TiVo the two drives
are married together. You can't remove a blessed drive and insert a
new blessed drive once the first has been married. If you want to
install a new blessed drive, or revert back to a single drive you
will need to use your backup!

This information has been cut and pasted from the original hackers' site: http://tivohack.sourceforge.net. I apologize for editing this into steps, but it makes it easier for me to convert to and from
HTML. It should be noted that the comments about the 33.8GB barrier below are incorrect.

1.Here's how to add a B drive to your TiVo by "blessing" it. This is approximately how we did it. We've only done it a few times so far. We will be refining the process. We simply wanted to get
the initial information out quickly.

2.This has only been verified to work on a few units so far. A HDR112 has been upgraded to 52 hours with a 30 gig Quantum, another HDR112 has been upgraded to 40 hours with a 20 gig
Quantum, and a Sony 30 hour unit has been upgraded as well with a Maxtor B drive, although the newer Sony/Philips units have a drive locking mechanism that makes it very hard to mount
their A drives in a non-TiVo Linux box.

3.WARNING: This modification is not "easy". You take all responsibility for modifying your TiVo in this way. It does involve opening the case and breaking the warranty sticker. Do not call
TiVo support if you make a mistake and break your TiVo. If you break it, you own both pieces. If you mess up, don't expect us to fix it for you either. Maybe some day someone will release a
utility that will just bless a drive in 1 easy command on your PC, but at this point, it's pretty tricky. It requires that you have various technical knowledge about Linux and other software tools.
You could easily render your TiVo inoperable and possibly unrecoverable.

4.WARNING 2: There hasn't been a lot of testing so far on this procedure of course. Mine seems to be working perfectly at 52 hours, but you must accept the risk that something bad may
happen down the road. We suggest that you back up your original A drive in some fashion in case you make a mistake. How to do that we leave up to you.

5.PDISK DISCLAIMER: We had to modify the source code to pdisk. Use it at your own risk. There may be bugs. We're not responsible for any loss of data.

6.And PLEASE - be careful when you open the unit. It's power supply is unshielded. Stay away from it.

7.In short - if you don't _understand_ what is going on below, don't do it. Just being able to read a list of steps may not be enough at this point.

8.When I refer to hard drive partitions on the Linux box, I'll use hdX where X is whatever letter is appropriate for that drive.

9.I used a Quantum lct10 30 gig drive (part number QML30000LB-A) that I bought from http://www.onsale.com. My off the shelf Quantum seems to have the Quickview and TiVo extensions
in it, perhaps they all do. It is the same drive used in HDR31202's and presumably the newer Sony's. Any drive may work as a B drive, but I've only tried my Quantum. Also be aware - the
version of Linux on the TiVo doesn't seem to support drives larger than 33.8 gig. I don't know if TiVo patched their older kernel to support them. Set the B drives jumper to slave.

10.You need to be able to access the original A drive and new B drive from another Linux box. To do this on an x86 box, you need to integrate TiVo's modifications to the Mac partition code.
There are some patches on http://tivohack.sourceforge.net and http://www.wasteland.org/tivo. Please, if anyone can mirror these few files it would be very helpful. If we get hit too
hard, we'll have to take the files down. You also need to be able to turn on byte swapping for those 2 drives (hdX=bswap). I had the most luck with Linux 2.4.0-test1. You also need to enable
the Mac partitioning in the kernel.

11.If that all works, you'll see the TiVo's partitions on the A drive hooked to your Linux box. There should be 11 of them. Mount partition 4 (hdX4) somewhere, it's an ext2 filesystem. Edit the
bottom of etc/rc.d/rc.sysinit so it starts a bash shell on /dev/ttyS3. Also you need to blank out the first few sectors on the new B drive, with this command: "dd if=/dev/zero of=/dev/hdX bs=512
count=32".

12.Get the hard drives back in the TiVo (both of em) and hook up the DSS serial cable to your computer. You'll need a null modem adapter and gender changer at the minimum. The terminal
settings are 9600,8N1. You should get a bash prompt shortly after the "please wait a few more seconds" screen. Run this command: "/sbin/bootpage -D /dev/hdb". Then shut down your TiVo
and hook the B drive back up to the Linux box.

13.Now you need a modified version of pdisk which is available on the sites I mentioned above. Compile it if necessary (it's in RCS format). With the B drive in the Linux box, run "pdisk
/dev/hdX" and type in these commands (hit return after each character below):

14.i

15.w

16.y

17.q

18.Then run: "pdisk -d /dev/hdX" and type these commands:

19.C 2p 4M "Second MFS application region" MFS

20.C 3p 3p "Second MFS media region" MFS

21.x

22.m

23.3

24.x

25.w

26.y

27.q

28.That will create the new partitions. Shut down the Linux box now and mount the B drive in the TiVo permanently. Turn the TiVo back on and get into the bash shell on it again.

29.You need to mount the diagnostics partition next. Type this on your TiVo: "mount -t ext2 -o ro /dev/hda7 /mnt". Then run this to add the magic bit sequence to your new B drive:
"/mnt/diag/genAddDiskTiVoID /dev/hdb3". Type "umount /mnt" to unmount that diagnostics partition, and reboot your TiVo. That should do it. Check the system information and see if your
capacity increased. If not, you can try this one last thing that I don't believe is necessary, but it might be: mount the diagnostics partition again, and run "/mnt/diag/setkeys -globalkeys
/dev/hdb".

30.That's it. If you want to now, you can edit the rc.sysinit to stop the bash shell from starting (or if you were smart, you made a backup copy when you started and can just copy the backup over
the modified one).

31.Credit for figuring out this procedure goes to cc, Peter Creath, TivoTechie, and Ron Curry.

Well, that's hard to judge accurately since most people only speak up when they do run into problems.

If you run into problems here's a few ideas:

- Many users resort to shreading the IDE cable or stretching it to fit, this can damage the cable enough to interfere with recordings. We suggest replacing the factory cable with an ATA66 cable, they're longer than the factory cable and have extra ground wires to better protect the signal from noise.

- The TiVo will start to skip pause or skip if there's heavy CPU use. The use of extremely large drives requires extra CPU usage for the daily opperations such as housekeeping and suggestion scheduling. Some users have reported that the problems went away after 'record suggestions' was disabled in setup.

- The use of 3rd party software on the TiVo can interfere with the normal useage of the TiVo, either use software to change the priority levels to their lowest setting or disable the 3rd party software. The TiVO does not use normal UNIX priority levels so you'll need getpri/setpri/nicepri from http://tivo.samba.org/download/mbm/bin.

- It's been suggested that hdparm could be used from the startup scripts to tune the harddrive performance and disable standby modes, the command to do this from rc.sysinit would be "hdparm -M1 -c1 -d1 -m 16 -S0 /dev/hda /dev/hdb"

Good question. I am sure there have been many creative ways to mount
the new TiVo drive into the case, but the simplest seems to be
getting some little ``rubber feet'' and sticking them to the bottom
of the drive in all four corners. Then holding it down with some cable
ties lengthwise along the unit (between the power and IDE connectors)
to hold it sturdy. You could also make a mounting bracket, but the
rubber feat and cable tie seems to be a nice cheap and safe approach.

It seems TiVo will be coming out with some new feature that will use
up to 12 hours of storage for some unknown features at this time. TiVo
has stated self upgraded units larger than 30 hours will lose up to 12
hours for these new features. Nothing is specific at this time though.
Worst case a 14 hour unit upgraded to 52 hours may become a 40 hour
unit when this hits.

Once you bless a drive and power up your TiVo with it the drives become "married", removing the drive will make your TiVo unbootable. Either restore from a single drive backup and start over, or use MFSTools to attempt a "divorce".

You can NOT simply take it out and replace it with another blessed drive.

If for some reason you need to remove your B drive from your TiVo the
best option is to restore your A drive from your backup. Depending on
how you did your backup you could restore partition 10 only and your
TiVo should be back to a single drive unit again. If this doesn't
work you can always do a full restore.

If your PC BIOS or BlessTiVo don't report the size of your drive correctly you have a few options.

1.Go into your PC BIOS and change the drive in questions settings to
NONE. Linux does not need the BIOS (but will use it sometimes). Some
people have said they had to turn plug and play off in their BIOS too.
I myself was able to bless a 60GB Maxtor drive on an old Pentium 166
by setting its BIOS settings to NONE. The drive would lock up the
computer if the BIOS on the PC was allowed to try detect it.

2. If you have PC clone try the trick for the locked drive problem
detailed in section 2.15.

3.If the above doesn't work try checking your PC or motherboard
manufacturer's site for Flash BIOS updates for your motherboard. Be
very careful when doing this and follow the directions to flash your
motherboard EXACTLY .

Nobody offers this service since nobody wants to profit from this
hacking. Your best bet is to find a computer savvy friend to
help you. If you can't find someone DON'T try to upgrade your TiVo
yourself unless you are sure you know what you are doing.

Thanks to TivoMad, you can now expand your A drive and add a second drive, all at once. It is possible to expand your Tivo to hold up to 200+ hours this way (with two 80 gig drives).

The TiVoMad utility is a Linux utility that will allow for a larger A drive to replace your current A drive. The utility creates a second partition that is used to record shows to take all available space on the A drive. For example: if you have a 14 hour TiVo you could replace the 14GB hard drive in your unit with an 80GB drive and get approximately 88 hours of recording.

(Note: The backout.zip file can be used to restore a drive that has not been booted in the TiVo yet. If you mistakenly run TiVoMad on you original drive, use this to fix it.)

Q: Can the TiVoMad disk be used with BlessTiVo from the Dylan disk?

A: Yes, but the TiVoMad disk will automatically bless a second drive if you want to have a 2 drive TiVo. If you have already installed a second drive with BlessTiVo see below on how to upgrade.

Q: Can TiVoMad be used without BlessTiVo from the Dylan disk?

A: Yes, TiVoMad does not need a second drive that has been blessed.

Q: Do I need the Dylan disk if I have the TiVoMad disk?

A: Yes. The TiVoMad disk does not replace the Dylan Disk. TiVoMad does not allow you to backup your drive and will only be useful during the drive expansion operations.

Q: How is the TiVoMad utility different than the BlessTiVo utility?

A: BlessTiVo prepares a second drive to work with the TiVo A (primary) drive. The TiVoMad utility allows you to use a larger primary drive. The two can be used together to create a truly massive TiVo.

Q: Do I need to backup my TiVo before using the TiVoMad utility?

A: The process of using TiVoMad requires that you copy your original TiVo Disk to your new larger replacement drive. If you do not re-use the original TiVo Disk it is not necessary to create another copy. Just place your original TiVo drive in a safe place.

Q: Can I upgrade a DirecTiVo with the TiVoMad utility?

A: No. Currently TiVoMad will not work with a DirecTiVo.

Q: Can I upgrade a two drive TiVo with the TiVoMad utility?

A: Maybe. If you have a backup of a single drive TiVo you can restore that backup to the new larger drive and then remove both drives. If you wish you could also wipe one of the original drives clean and then use BlessTiVo to marry one of the old drives to your new larger primary drive. This process will revert your TiVo to the same state it was in at the time of backup. All of your recorded shows will revert to what ever was on the backup and your TiVo software will be the version on your backup. If you have a TiVo that came with 2 drives and you do not have a backup of a single drive TiVo then you can not at this time expand your TiVo.

I. Confirm that you new drive works and has no bad sectors.
Most drives manufactures have a utility disk that you can download to check that the drive is functioning. Make sure that the disk is good before continuing on.

II. Open the TiVo and remove you original drive. See section 2.2 & 2.3 on how to do this.

III. Open up you computer and configure the hard drives. See section 2.9

IV. Backup Original TiVo disk. See section 2.12

V. Remove Original TiVo disk. In order to reduce the chances of TiVoMad being run mistakenly on the original TiVo disk remove it before continuing.

VI. Run the TiVoMad utility.

From the TiVoMad readme:

Put the TiVoMad disk in the PC and power-up. You will see a lot of Linux stuff fly by and eventually, my upgrade script will announce itself. Occasionally, the boot process gets stuck before the script starts. This is a problem that exists on the Dylan disk as well - I haven't worked out why. If you don't see the script start running then simply reset your PC and it will probably run the next time. If you want to stop the script and get back to the shell prompt, just hit Ctrl-C. There is also a second shell running on tty2. To switch to the other shell, press Ctrl-Alt-2. As you probably guessed, you get back to tty1 via Ctrl-Alt-1!

If anything goes wrong during the upgrade process, the error will be reported and the script will abort. If the partition map has already been altered, the script will restore the old version to save you having to re-copy your image again after you sort out the problem. The old partition map gets saved in a RAM disk (/dev/ram1). The script has been heavily tested and does not normally fail. If it does fail on you, try to do a little detective work to find the problem - it is usually obvious from where the script died.

You will now be asked a series of simple questions. The answers should be obvious but I will go through them here for completeness. Note that when asked for device names, hdb = Primary Slave, hdc = Secondary Master, hdd = Secondary Slave.

Question 1: Enter the device name (hdb, hdc or hdd) of your new TiVo A Drive.

Put in the device name as per the instructions above regarding device names.

Question 2: Will your target TiVo have two drives in it? Answer y or n!

Question 3: Is your second drive connected now?

Won't appear if you answered n to question 2. Answer y or n!

Question 4: Enter the device name of your TiVo B drive:

Won't appear if you answered n to question 2 or 3. If you have both drives connected to the PC, enter the device name (hdb, hdc or hdd) of your new TiVo B Drive. Put in the device name as per the instructions above regarding device names.

Question 5: Is your A drive a Quantum Fireball?

The answer to this question determines if the 'runideturbo=false' setting will be applied to the boot parameters. The script is aware that V2 onwards doesn't need this setting and it will remove it for V2. However, this should be answered Y for any Quantum drives, not just the "Fireball" series. Thus, if you are putting a new Quantum drive as drive A (The original Tivo A drive is a Quantum, do not consider it), then you need to answer Y to this question. This is important.

Question 6: Does your TiVo have version 2.0.1 software (or greater)?

The answer to this question affects the addition of the 'runideturbo' flag. You should answer yes for Znn or Version 2 onwards.

Question 7: Is your target TiVo > 140GB?

You should answer Y to this question if you ever plan on adding a second drive to this system. If you answer y to this question, the script will create a new swap partition that is 128MB (as opposed to 64MB). This is done to ensure that the MFS repair utilities fsfix and mfscheck will not run out of virtual memory. In my testing, I found that it failed around the 150Gb mark on a UK TiVo without extending swap. Answering y to this question also has the effect of creating a spare partition of 64MB using the hole left by the old swap file. The partition will be called 'hack' and will have an Ext2 file system in it. You will find it mapped at /dev/hda14.

Question 8: Do you want to continue?

This is the last chance to back out. If you are happy with your answers, enter y.

You will now see a series of messages scroll up the screen as the script does it's work. The whole process should only take between 10 and 20 seconds! Once complete, press Ctrl-Alt-Del to shutdown. When you see the message 'No more processes left in this runlevel', you can power off the PC.

VII. Put the new drive in the TiVo

Before placing your new drives in the TiVo make sure that you have the new primary drive jumpers changed so that it will be the "Master", if you have a second drive make sure its jumpers are set to "Slave". Put your drives back in and make sure that your cables are firmly attached. Put the case back on.

VIII. Startup the TiVo.

The first time your TiVo boots after the upgrade it will automatically reboot shortly after it turns on DON'T PANIC, THIS IS EXPECTED. You may see a flash or two on your TV screen - that's normal. What happens is the TiVo starts and runs a special script that marries the drives and optionally creates the bigger swap file.

IX. Check your total space in the System Information screen to make sure it worked. (Note that if you used dual 80 gig drives, your expected space will be somewhat uncertain. Some people have gotten 196 hrs, some have gotten 198 hours, and at least one person got 203 hours. The Maxtor 80 gig drives are not all the same and that may explain some of the variation.)

4. Other TiVo hacks and information

The current models of TiVo only handle NTSC. While TiVo is planning
a release of a model in the UK that does PAL, those of us who live
in PAL countries (like Australia) might want to get my "palkit"
PAL patch from http://tivo.samba.org/download/tridge/

This patch works by modifying the registers on the SAA7114 and CXD1922
to select PAL input. Only input is affected. I am working on another
patch for PAL output and will release it when it's done. Luckily
most modern TVs do both NTSC and PAL input.

UPDATE: I now have PAL output working as well. Run the program
"setpal" from my download area above.

UPDATE2 (October 10th): I've released a new version of palkit (version
1.2). This version uses a much simpler method and does good quality
PAL on both input and output. More recently I've also fixed a problem
with running at other than best quality.

Upon power up if the TiVo receives a return key within a second or two it will ask the user for a secret password to get into a diagnostic mode (also known as the ``ROM Monitor''). This diagnostic mode is no longer available on the DirecTV/TiVo combo boxes.

The following are the steps to access this mode.

1.Connect your DSS port on the back of the TiVo to your PC's serial port.
Your TiVo should have came with a connector that plugs into the DSS
Serial port on the back of the TiVo and has a 9 pin D-Type connector
on the other end. You will need to put a ``null modem'' adaptor on
the 9pin and also a gender changer to be able to use it with your PC.
You can buy these at most computer stores, or Radio Shack.

2.Run your favorite terminal program on Linux or Windows. Minicom
works great and comes with most Linux distributions; Hyperterminal with
Windows works fine also.

3.Connect the serial cable between the TiVo and the PC using the above-mentioned cables and adaptors.

4.Set your terminal program to 9600, N81 with no flow control
(hardware or software). Also make sure the COM port you're using in the
terminal program matches the COM port the TiVo is plugged into.

5.Power up the TiVo and IMMEDIATELY hit enter in your terminal program
``once''. The timing on this is a tad tricky. If you're having trouble getting the timing right you can press enter repeatedly, just be careful not to overshoot the prompt.

6.The TiVo will prompt you with a ``Verify: '' prompt. The password is
``factory'' (no quotes). The password was discovered by sorphin. This
password seems to work with some units. If your unit doesn't take the
factory password see section 4.8 on how to change the password.

NOTE: currently it is not possible to get to the PROM prompt/into the
PROM (aka "diagnostic mode") with newer TiVos (including DTiVos),
using PROM version of 1.88 or higher.

This procedure is for 1.3 or previous units only. This will NOT work in 2.0, as the "shondss" variable has been removed.

1.Follow the steps needed to get into the diagnostic screen.

2.From the diagnostic menu type ``X'' to see the extended menu.

3.Use option ``P'' to change the boot parameters.

4.The system will display your current boot parameters. You will want
to append the string ``shondss=true'' to the current boot parameters.
Also if you have added any other parameters you should append them also.

5.For example, if your current parameters are ``root=/dev/hda7'' you
will change the parameters to ``root=/dev/hda7 shondss=true''. It is
very important to maintain whatever the current boot parameters in
your unit are. The boot parameters can vary from unit to unit.

6.Type ``B'' to continue booting.

7.Remember to remove the ``shondss=true'' if you need the DSS serial
port for control of your DSS receiver. If you use the IR port for
control you can leave the BASH mode active. Your TiVo will still function.

"Bash" is a command shell (the "Borne Again SHell"); you enter command
file names and arguments, it executes those commands -- much like running
"command.com" in DOS. A TiVo doesn't have a console, so we have
to create a command shell on the available serial port.

To do this, we have to modify the TiVo disk from a regular PC where we
can already get a command shell.

If you use Dylan's bootdisk or a Linux system (compiled with the TiVo
partition support), you can mount the partition containing your current
kernel on your TiVo "A" drive, then edit the /etc/rc.d/rc.sysinit file to
get a bash prompt on the TiVo's DSS serial port.

Special Note: If using Dylan's bootdisk remember that you CAN'T
connect a TiVo disk drive setup as "master" on the primary IDE bus, it
will not mount. While booting Dylan's bootdisk, just before
displaying the "login:" prompt, the console should display all the
Tivo partitions on the disk. If they are not displayed (and you can't
mount the disk), then the TiVo disk was probably put on the primary
IDE bus as a master. Note that the TiVo disk drive is jumpered to
master by default. You can cable the drive on the secondary IDE bus,
OR, (for the standard Quantum drive -- see instructions on the disk
for other drives) move the jumper from the first to the third pair of
pins in order to make the disk a "slave" rather than a "master" on the
primary IDE bus. If jumpered as master on the primary IDE bus, you'll
get the following errors trying to mount the drive:

Special Note #2: When connecting cables to a disk drive, it's usually not a problem to put the IDE cable in backwards (it won't boot/mount but it usually doesn't hurt anything), unless it's keyed, in which case, improper mounting can break off a pin:

The rule of thumb is: the 1 pin is next to the power connector on the disk (but not always). You can also look for a "1" on the circuit board by the connector on the disk. Also, the connector might be keyed: a hump on the outside of the cable connector should match the divot on the disk side of the connection. The cable might also have one pin-hole filled in: this should match the missing pin on the disk side of the connector.

All power connectors are keyed: while they require extreme force to remove, they should be simple to insert. If you're trying to use excessive force to connect the power connector, then you're probably putting it in backwards. If it's backwards, you'll fry the disk controller.

2.Your TiVo disk drive has many partitions. Two have bootable
kernels stored on them, and can be mounted as the root partition
("root" is the main partition,
like the DOS "C:" partition). They can't be mounted as root at the
same time -- one is backup should the other fail, and the dormant partition gets upgrades when available.
So all changes that you make to one root partition, you should mirror (copy)
on the other. Both root partitions contain an rc.sysinit file,
much like a DOS "autoexec.bat" file that is executed at boot time.
This file must be modified to get the "bash" command shell prompt on the
serial port. You should edit both files on both partitions.

If you'd rather just edit the file on one partition, then you can determine
which partition will boot as root by examining the 2nd byte on the first
sector of the TiVo "A" drive. If the value is a 3 then edit your
/etc/rc.d/rc.sysinit file on partition 4, if it is a 6 the file is
on partition 7. But, we're not going to tell you how ;)

3.Enter the following to mount partition 4:

mount /dev/hdX4 /mnt

Where X is the letter
representing the IDE port where the TiVo "A" drive is connected on
your motherboard:

(that's all one line, use the quotes, don't forget the ">>" -- using a
single ">" instead will destroy/replace the entire file with the one line)

If you use "echo" rather than "joe", then skip to step 8.

5.Go to the bottom of the file and add the following on a line all by
itself.

6.``/bin/bash </dev/ttyS3 >& /dev/ttyS3 & '' (without the quotes)

7.Save the changes. (CTRL-K CTRL-X)

8.If you have any other files you wish to put or edit on the TiVo
(rather than using zmodem over the serial line), you can do it now
(put those files on an alternate floppy, mount the floppy with "mkdir
/foo; mount /dev/fd0 /foo", then copy the files with "cp
/foo/<whatever> /mnt/<whatever>").

9.Type ``umount /mnt'' (without the quotes).

10.Repeat steps 3-9 to edit partition 7. In step 3, use "/dev/hdX7" rather
than "/dev/hdX4".

10 (alternate). Mount partition 7 on another mountpoint, and copy
the files from partition 4 to partition 7. This should only be done if the TiVo partitions are the same version. First, remount partition
4, since we unmounted in step 9:

mount /dev/hdX4 /mnt

Then, make another directory, and mount the other disk there:

mkdir /mnt7
mount /dev/hdX7 /mnt7

Then, check the versions of the two partitions:

cat /mnt/etc/build-version /mnt7/etc/build-version

If the versions are the same, then copy your rc.sysinit file from one partition to the other (otherwise, modify rc.sysinit with "echo" or "joe" as detailed in section 4.6):

cp /mnt/etc/rc.d/rc.sysinit /mnt7/etc/rc.d/rc.sysinit

If you have any other files modified under /mnt, copy those changes too.
Make sure to unmount your partitions:

umount /mnt /mnt7

11.After powering down the PC, remove the TiVo disk and install it
back in the TiVo. If you moved the disk's jumper from the "master" to
the "slave" position in step #1, make sure to return the jumper to the
"master" position.

12.Connect your DSS (serial) port on the back of the TiVo to your PC's serial
port. Your TiVo should have included a connector that plugs into the
DSS Serial port on the back of the TiVo and has a 9 pin D-Type
connector on the other end. You will need to put a ``null modem''
adaptor on the 9pin and also a gender changer to be able to use it
with your PC. You can buy these at most computer stores, or Radio Shack.

13.Run your favorite terminal program on Linux or Windows. Minicom
works great and comes with most Linux distributions; Hyperterminal with
Windows works fine also.

14.Connect the serial cable between the TiVo and the PC uses the above
mentioned cables and adaptors.

15.Set your terminal program to 9600, N81 with no flow control
(hardware or software). Also make sure the COM port you're using in the
terminal program matches the COM port the TiVo is plugged into.

16.Turn on your TiVo. After the ``please wait a few more seconds
message'' is displayed on the TV, you should get a shell prompt in your
terminal program.

17.If you do not then check your COM port settings and cables. If you
only edited one rc.sysinit script you may have gotten the wrong one.

18.If it works you can now explore your TiVo while it's running and do
all kinds of dangerous things!

19.If pressing the "enter" key causes the next "bash" prompt to be displayed
immediately below the cursor on the next line, rather than the first column of the
next line, then enter:

Make sure you have the serial out connected to your PC and not the IR
output.

Make sure you have a null modem and gender bender connected to the
cable between the TiVo and your PC's COM port.

Make sure you have the cable between the TiVo and PC connected to the
COM port your Terminal software is set to use.

Make sure the software you are using is set to 9600,N,8,1 and that
software and hardware flow control are off.

If your TiVo it set to use the serial port for DSS control you will
need to go in and switch it to the IR port. You can put it back to
serial control when you are done using the bash shell.

If you're using a DirecTiVo running 2.0 you will need to 'chattr +i' any changed files to prevent their deletion by the filesystem scan performed at startup; this trick will not work on DirecTiVo units running 2.5.

If your TiVo does not accept the ``factory'' password you can do the
following to get it working.

1.You need to get a bash prompt on your TiVo. See section 4.4-4.6 for the steps needed. You will have to use Dylan's bootdisk to do this since your unit does not accept the ``factory'' password.

2.Once you get a shell prompt on the Tivo type the command listed in step 3 below. The quotes are needed in the below example. You will also want to change the "password" to your desired TiVo diagnostic screen password. So whatever you set it to, make sure you remember it!

3.crypto -u -srp "password"

4.Reboot your TiVo and try to access the diagnostic mode with the
password you just set.

There is a environment variable you can set called ``runideturbo''.
This variable needs to be set to false. You can do this in a couple of different ways, both described below. Setting this variable allows non-Quantum
drives to work in the TiVo as A drives. You will want to use either of the below
methods after making the copy of the original TiVo A drive onto a non-Quantum drive.

The first way to do this is to connect your newly made non-Quantum A
drive to your PC (do not connect as the Primary master or you will
not be able to mount the drive). Then do the following.

1.Boot the PC with Dylan's bootdisk

2.At the login prompt type ``root'' and hit enter.

3.Type the following followed by the enter key. ``mount /dev/hdX4 /mnt'' where the X is the either b, c, or d, depending
on if you connected the non-Quantum A drive as your PC's primary slave,
secondary master or secondary slave, respectively.

4.Type the following. ``cd /mnt/etc/rc.d'' and hit enter

5.Then type ``joe rc.sysinit'' and hit enter

6.This will place you in a text editor. Add the following as the
second non-commented line in the file. ``runideturbo=false'' (no "#" in front of it)

7.Hold the CTRL key down and hit the K key. Then release the CTRL key
and hit the X key. Save your changes.

8.Type ``cd /'' and hit enter.

9.Type ``umount /mnt'' and hit enter.

10.Repeat steps 3 - 9 except use the command ``mount /dev/hdX7 /mnt''
instead in step 3. This is so both Linux partitions on the TiVo are
modified. If you know which is the active kernel partition you can
just modify that one, if not do both just to be safe.

11.After finishing step 9 the second time through you can power down
the PC and use the non-Quantum drive in your TiVo.

1.Make sure you have copied your A drive data onto the non-Quantum
drive. Connect this new drive to your TiVo as the Primary drive. Turn
on the TiVo and get into the diagnostic screen as noted in section 4.3.

2.From the diagnostic menu type ``X'' to see the extended menu.

3.Use option ``P'' to change the boot parameters.

4.The system will display your current boot parameters. You will want
to append the string ``runideturbo=false'' to the current boot
parameters. Also if you have added any other parameters you should
append them also.

5.For example, if you current parameters are ``root=/dev/hda7'' you
will change the parameters to ``root=/dev/hda7 runideturbo=false''. It
is very important to maintain whatever the current boot parameters in
your unit are. The boot parameters can vary from unit to unit.

All the variables below can be set up either from the diagnostic
menu of the TiVo or using Dylan's bootdisk as noted above in the
section on using non Quantum drives as the A drive in your TiVo.
Variables will be detailed below, with their effects. The quotes
surrounding the variables should be ommitted when placing them in the
boot parameters or in the /etc/rc.d/rc.sysinit file. NOTE. When placing
these variables in the rc.sysinit file you should put the word "export" in
front of them. For example "MYWORLD_ENABLE_BACKDOORS=1" would look like
"export MYWORLD_ENABLE_BACKDOORS=1". Do this for any of the variables in this section.
You do NOT need to do this if you are placing them in the boot sector,
and can use them exactly as shown below.

"MYWORLD_ENABLE_BACKDOORS=1" (not in 2.0)

This allows you to access some hidden features of the TiVo. If this
variable is set the TiVo should say ``Backdoors Enabled'' in the system
information screen. When this mode is active, several TiVo remote
key sequences, called ``backdoor codes'', will access special features. See section 4.25 for all the details.

Adding this will also have your TiVo show more information in the System Information screen. The TiVo will show how long it has been up since the last power cycle (uptime).

"LIVE_CACHE_SIZE=20700" (not in 2.0)

Adding this changes your live TV buffer from 30 minutes to 60 minutes.
If you set it to 10350 that will give you the normal 30 minute buffer.
So increase it by 10350 for each additional 30-minute interval you want to add to
the live buffer. A few things should be noted about this hack:

Don't try creating a buffer larger than your free space. So if you have a 30 hour unit and you have 29 hours of shows recorded, do not try to increase your live TV buffer to 4 hours (82800).

The TiVo ``green bar'' indicator still thinks the live TV buffer is 30 minutes, but it will still work with your new settings.

"TIVO_CORRECTION_OFFSET=2000" (not in 1.3)

This appears to be the value used to back up after play is hit while fast forwarding or rewinding (auto known as autocorrection). It's in milliseconds. 2000 is the default.

"TIVO_CORRECTION_DELAY=1000" (not in 1.3)

This appears to be a variable to define how much time it takes for the IR command to be processed. 1000 appears to be very close to the default value, although the exact default value is unknown.

I like 1000,750 (offset,delay) better... I tried setting offset
to zero and found that it was a bit harder to gauge it at different
speed settings. So I upped it back to 1 second and lowered the delay
from 900 to 750 and now it nails it right on the money.

It's recommended that you try various settings for these two values until you find what works for you.

Also, sometimes the values may not seem to have any effect. As posted by Otto:

Try playing a recorded show and pausing and doing a frame advance. I
think this causes it to reload some parameters.

That should cause it to take effect if you are having problems adjusting the settings.

More than likely your TiVo just upgraded its software to version 1.3 or 2.0. You probably added the variables
to the rc.sysinit file. When TiVo upgrades their software they format
and install the new software onto the other inactive Linux partition.
So any changes you made to your rc.sysinit file will be lost. You will
need to redo them. People who set the ``runideturbo'' variable to true
to use a non-Quantum drive as an A drive will have to reset this
variable before they can even boot their TiVos after an upgrade. It is
advisable to use the diagnostic mode to set these variables since they
have not been modified in a software upgrade (yet).

** Note. A single drive TiVo has a 512MB MFS App partition. A from-the-factory dual-drive TiVo will contain a 260MB MFS App partition
on both drives. You will see below that a user-blessed B drive
contains a tiny MFS App partition since the original A drive already
contains the 512MB partition.

Device Name Description
=========== ===================================================
/dev/ttyS0 IR Port on front of TiVo and IR blaster on the back
/dev/ttyS1 TiVo Modem
/dev/ttyS2 Debug Port on the TiVo. Not available
/dev/ttyS3 DSS Serial port on back of the TiVo

Here is the layout of the two Root ext2 partitions on the TiVo. These
are partitions /dev/hdX4 and /dev/hdX7. Only some partitions are
detailed below (mainly partitions with binaries in them). It should
be noted that paths like /devbin may not exist on some units. During
the upgrade process some directories may be removed.

To execute these programs you will need to have the BASH shell prompt
described in sections 4.4-4.6 working. Note some of these files may not
exist on non-virgin units, a unit that has run guided setup, or a
unit that has had a software upgrade.

cs22 files: Any files with the cs22 extension are On Screen Display
still images that can be loaded on your TiVo by using the
osdwriter program to view them. They seem to be Run
Length Encoded image files. Located in /dev/hdX4/tvbin

mpv files: MPEG encoded video files. The MPEG file format used by
TiVo on MFS partition 11 has not been determined.

osdwriter: By executing this program and passing it the filename of
a cs22 file on your TiVo you can force the TiVo to display
that static image on the screen. You can hit your TiVo
button on the remote to remove the image from your screen.
Located in /dev/hdX4/tvbin

myworld: This seems to be the main TiVo executable that is run to
get the TiVo doing its thing. If you shut this program
down your TiVo will be dead except for the shell prompt.
Start it back up and your TiVo should come back to life.
Located in /dev/hdX4/tvbin

bootpage: Program that is used to write out a bootpage to block zero
on the specified device. Location /dev/hdX4/sbin

updatekernel: Script to allow you to update to a newer kernel. The script
does all the work for you. Location /dev/hdX4/sbin

updateprom: Script that allows you to update your PROM from a PROM image
file. Do not use this unless you know what your doing.
Programming an invalid PROM could render your TiVo useless.
Location /dev/hdX4/sbin

Yes, you can run LinuxPPC binaries on your TiVo. This provides an
easy way to get lots of software going quickly.

BUT, the ld.so and libc.so that come with the TiVo are incompatible
with LinuxPPC binaries. You need to put copies of the LinuxPPC ones
in /lib but not overwrite the ones that are already there. This
is possible because you can give them different names. For libc this
is easy as LinuxPPC binaries look for libc.so.6 instead of libc.so
but for ld.so you need to edit the LinuxPPC binaries to look for the
right dynamic loader. I chose to call the LinuxPPC loader ld.so.X
and edited my LinuxPPC binaries to change the "1" in ld.so.1 to a "X"
I've put copies of the ld.so.X and libc.so.6 files I used
in my download area at http://tivo.samba.org/download/tridge/.

Warning: use of any of these codes may cause unknown amounts of harm to your
TiVo's data (setup parameters, recorded or scheduled programs, preferences,
guide data, etc.). They could conceivably cause your TiVo to act in some way
that might upset TiVo Inc. and cause them to terminate your service. Who
knows!? Try these codes entirely AT YOUR OWN RISK! They will void your
warrenty, turn your hair white, make your friends spit at you, and cause your
parents to claim they have no idea who you are anymore. But hey, if you're okay
with it, so are we.

Some of these codes WILL damage your unit if you do not read this entire
document for the warnings. Read everything here before going and actually doing
any of this crazy stuff, okay?

Most of this information comes from the TiVo Hack FAQ and from various postings
to the TiVo forums. Unless otherwise noted, this information only applies to version
1.3 of the TiVo software, although some codes have been reported to work on the
UK software, version 1.51 .

Enabling Backdoor Mode
----------------------
The Backdoor mode can be entered using the remote by doing a "Browse By Name"
for "0v1t" (TiVo spelled backwards with zero and one instead of "O" and "I")
followed by the "Thumbs-Up" key. The only known way of exiting Backdoor mode is
to reboot the TiVo (see "C-E-C Fast-Forward" below).

The backdoor code for 2.0 systems is done the same way, except the code is
"2 0 TCD". There is one space between the "2" and the "0", and another space between
the 0 and the TCD".

The backdoor code for 2.5 systems is done the same way, except the code is
"B D 2 5". There is one space between each character.

Select-Play-Select Codes
------------------------
SPSXS is a code of the format "Select Play Select Something Select". These do
not appear to require backdoors to be enabled for them to work.

``S-P-S-9-S - Toggles the Clock display in the bottom right corner. When you are
watching LiveTV or a recording, this will show the time and where you are at in the
recording. It's a toggle, so do it again to turn it off. However, when you turn it off,
it doesn't disappear, you must go into a Tivo menu and return for it to go away.

``S-P-S-InstantReplay-S - Toggles a Status display in the bottom right corner. This
displays what the Tivo is currently doing. Bit useless, really. Do it again to toggle it
back off. Like the clock code, it doesn't disappear when you turn it off, you must
go into a menu to make it disappear.

``S-P-S-Pause-S - Toggles the fast disappear of the Play bar. Appears to have no
other major effect, but who knows?

``S-P-S-3-0-S (1.3, also 2.5, not 2.0 or 2.01) - Toggles 30 second skip mode. This
turns the Skip to End button into a 30 second skip button. This was removed in
2.0x, but added back in 2.5.

Clear-Enter-Clear Codes
-----------------------
C-E-C stands for "Clear Enter Clear". Note: the claim is that all "C-E-C something"
combinations will make the same confirmation tones, but they may or may not do
anything. Here are the known and likely unknown ones.

``C-E-C Thumbs-Up - Will allow you to access the TiVo's log files on your TV screen.
Page up and page down allow you to move through the log information and the
right arrow you to move through the log files. Use the left arrow key to get back
out to the normal TiVo menus.

``C-E-C Thumbs-Down - Will shut down the myworld program on a TiVo. The
myworld program is the brain of the TiVo. Shutting it down is not advisable since
the only thing you can do with the TiVo at that point is use the BASH shell if you
activated one. If you do have a BASH prompt you can rerun the myworld program
to get the TiVo running fully again. If not you need to power down and up the TiVo
to get it fully functional again.

``C-E-C-0 (2.0) - This turns off the display of "scheduled suggestions" in the ToDo
List. Also makes the clock (see SPS9S) NOT have a black bar behind it.

``C-E-C-1 (2.0) - This turns off the display of "scheduled suggestions" in the ToDo
List. Also makes the clock (see SPS9S) have a black bar behind it.

``C-E-C-2 (2.0) - This turns on the display of "scheduled suggestions" in the ToDo
List. A "scheduled suggestion" is a suggestion the Tivo is planning on recording.
While you can remove these from the ToDo List, it doesn't appear to always cancel
the recording, and the suggestion may be added back, and may record anyway,
without any user intervention. Hey, it's only a suggestion though.. This may take a
while to take effect. Actually, it doesn't take effect until something changes in the
ToDo List.

``C-E-C-3 (2.0) - Appears to do the exact same thing as CEC2. I'm pretty certain
there's more to this than we are aware of right now.

**2.5 note**: C-E-C 0-3 (the above 4 codes) do not appear to work in 2.5, but
they do still affect the "black background" of the clock. They just don't do
anything for the suggestions in the ToDo List. To put suggestions in the ToDo list,
see the "thumbs thumbs" code below.

``C-E-C 4 - This forces suggestions to be rebuilt (same as 'sendkey dumpState'?).

``C-E-C 5 - Toggles the overshoot correction during fast forwarding on and off.

``C-E-C Fast-Forward - This resets (reboots) the TiVo

``C-E-C Skip-to-end - Turns on "Boat-Anchor" mode. This convinces the TiVo that it
should behave as if it has no guide data. Boat Anchor mode is automatic when the
unit runs out of guide data, so this is probably only for testing purposes. A bit
useless, really.

Enter-Enter codes
-----------------
E-E stands for "Enter Enter". The following codes must be entered in the "Browse
By Name"screen. These codes are generally used to set values on the Tivo. You
enter the code, and the prompt will appear, along with the red recording light
coming on. You then enter the value. You then enter the code again to set the
value in, and the recording light will go off. It doesn't actually stop recording if you
happen to be recording something, however. Entering invalid values will cause your
Tivo to reboot, so be careful.

``E-E-1 - Gives you Speed1: prompt. Turns the record LED on (indicating the
backdoor is open and can be changed?). Enter a number for how fast you want
the first scan speed to run at, and then press E-E-1 again. The record LED will go
out.

The last two digits of the number must be 00 for an integer multiple speed. The
digits to the left of the 00 indicate how many times normal playing speed the scan
is running. 300 (which is 3x) is the default Speed1 scan speed, but you can't see
that, you can only enter a number. A value of "1" is super slow motion (.01x
speed) Unit will revert back to default speed when rebooted.

Does not appear to work in 2.0, although the prompt is still there.

``E-E-2 - Gives you Speed2: prompt. Default is 2000. See Speed1 above. Does not
appear to work in 2.0, although the prompt is still there.

``E-E-3 - Gives you Speed3: prompt. Default is 6000. See Speed1 above. Does not
appear to work in 2.0, although the prompt is still there.

``E-E-4 - Gives you Rate1: prompt. Function unknown.

``E-E-5 - Gives you Rate2: prompt. Function unknown.

``E-E-6 - Gives you Rate3: prompt. Function unknown.

``E-E-7 - Gives you Inter: prompt. Function unknown. Same as
TIVO_INTERSTITIAL_INTERVAL environment variable (?). Interstitials were removed
a long time ago, so this is probably useless.

``E-E-9 - Gives you Int.disabled, or int.enabled prompt. Toggles "interstitials".
Intersititials were little TiVo guy animations that occurred between each menu
screen. Most of them were deleted as being too annoying, but the initial boot one
remains. Setting the TIVO_DISABLE_INTERSTITIALS environment variable to 1
disables it. Toggling "Int." from the remote causes the animation to play every time
you hit the TiVo button. (Reported, may not work for everyone).

``E-E-Tivo - If in Debug mode (see C-C-E-E 2 below), lets you set the TiVo's clock.
Warning: setting this value may cause all of your Guide data to get "expired". If
you want to play with this, keep in mind that TiVo may get mad at you for
downloading several copies of your Guide data over the course of a couple of
days. The best way to fix a messed up clock without reloading all the Guide data is
to do the "Make a Test Call" option. The format of the time entry you use is the
same as the format for the settime command. (?)

``E-E-Rewind - Lets you set the "Offset:". Defaults to 2000.

``E-E-FastForward - Lets you set the "Delay:". Defaults to 957.

``The Offset and Delay control the overshoot correction. When you set them, go to
any recorded program, play it, pause it, and press FF to do a frame advance. This
makes the new values you put in take effect. For 1.3 like correction, use Offset of
1000 and Delay of 750.

``C-C-E-E 2 - Turns on or off "Special Mode: DEBUG" (Note: you have to leave the
"System Information" screen and re-enter it to see this flag turned on.) Starts
sending debugging output to the /var/log/tvdebuglog file. This setting will STAY ON
after a reboot. Not advised to leave this on for long periods of time.

``C-C-E-E 3 - Seems to initiate a call. (a special one?)

``C-C-E-E 7 [works even without Backdoors enabled] - Causes a message to be
written to /var/log/tven saying: SetupDebugContext::onNumber[94]: USER
PROBLEM LOGSTAMP .

I'm guessing that Customer Support tells customers who are having problems to do
CCEE7 around the time that the problem occurs, and then when they upload the
logs, they can help locate what was going on when the problem happened.

``C-C-E-E 8 - Takes you to the "Channels You Watch" page with NONE OF THE
CHANNELS SELECTED! I guess this might be a quick way to clear your channel list.
Fortunately you can just back out of it without losing your current channel list. I
didn't try going forward from that screen... AVS Forum member "android" warns
that this doesn't work ... and that it just hangs his machine..

``C-C-E-E 0 [works even without Backdoors enabled] - It allows you to enter your
own "Dial-in configuration code"! It does not appear to let you directly change the
TFA value.

TFA stands for Toll Free Authorization.
Possible values:
0=[Access] denied ["you probably didn't ask, but you used a local, so QED"]
1=No decision [made yet] (you got time)
2=Oh you requested (we'll get back to ya)
3=Yeah, I guess so
4=Researched and you are out of luck
5=You had your chance but did nothing

The Dial In Access code (the 000 part) can be changed via some special key
sequences.... Anyway, when Tivo CS gets a really unusual problem that needs files
downloaded to the unit, they can tell the customer to change the access code
and it'll then download certain types of files.. These may be predefined debugging
type things or may be files the guy just then put on the server.

Teach Tivo (not in 2.5?)
-----------------------
To activate Teach Tivo, turn on Backdoors, then go to the suggestions list.
Special codes here:

1,2, or 3 - Goes directly to different sections in Teach Tivo.
4 - Turns on the "Teach Tivo" menu item in the suggestions list. This won't be
immediately visible until the list rebuilds or you change the list in some way (thumb
down a program and move the cursor will do it).

Triple Thumb codes (new to 2.5?)
--------------------------------
New codes, it seems like. There's only a few of these, and they are still being
found. Consider them experimental.

``- Thumbs Down, Thumbs Down, Thumbs Up, Instant Replay - If done in the ToDo
List, it will turn on "Scheduled Suggestions". If done in the Now Playing List, it will
display the "hidden" recordings, like the Teleworld Paid Program. These recordings
are those in reserved space.

``- Thumbs Down, Thumbs Up, Thumbs Down, Instant Replay - If done in Now
Playing, it will take you to a new menu called "Clips on Disk". This menu has the
same content as the hidden recordings, but broken up into clips like they are in the
Showcases. If you don't have any clips for whatever reason (haven't gotten any
yet, your cable operator pre-empts the clips program, etc), this will reboot the
machine.

``- Thumbs Down, Thumbs Up, Thumbs Down, Record - Do it from the Tivo Central
main menu to get the "MenuItem Back Door". It shows the current date in both the
number of days since Jan. 1st, 1970 (an internal date format) and also in the
normal style. Not sure of the purpose here. This also seems to do something (don't
know what) if you do it from the Showcases screen.

The TiVoNet adapter creates an ISA bus on the TiVo using the factory
test connector (that looks like a PCI edge connector) on the front of
the TiVo motherboard. It's important to note that the TiVo does not
include provisions for either a PCI or ISA bus, and this ISA bus add-on
is not fully ISA compliant, but it does allow for NE2000 compatible and
3COM 3C503 NIC cards that don't require DMA.

Andrew Tridgell was instrumental in developing this board. He's well
respected in the Linux community for developing "Samba" (by Ethernet
packet sniffing, he reverse engineered the Microsoft proprietary SMB
networking protocol used to share files between Windows boxes, so
Linux machines can act as Windows file servers and clients).

NOTE: The moment you take off the cover of the TiVo unit, your
warranty is void.

NOTE: This FAQ entry is intended to be the simplest method to get your TiVoNet up and running (for example, if all goes well, you'll never need serial port shell access). Only use the following instructions when using a professionally
built and tested TiVoNet system with an included NE2000 compatible card (i.e. the 9thTee package). Many
testing steps are skipped that you should perform if building your own
card or integrating the TiVoNet with an untested NIC card; the FAQ URLs listed above are better resources in these cases. There is a
script (etc...) available from 9thTee that follows these instructions
somewhat automatically (the script can be customized from Windows).
Note that this is still beta:

This script is intended for those who haven't already upgraded their TiVos. If you've already hacked your TiVo, then the script may screw up what you've already done. The script has been successfully used on TiVo v1.3 and v2.0.1 systems.

NOTE: do remember to plug the TiVoNet internal floppy-style power adapter in correctly --
if you plug it in backwards, you could apply 12v where 5v is expected
and fry your TiVoNet board.
The power connector on the board has "red" and "black" printed on the
board next to the posts that connect to the red and black power/ground
wires. When properly powered, the TiVoNet board's LED should light up
(and not the capacitors ;). If you have a two-wire connector, then you should
not have to worry about this problem (just don't cross power and ground,
make sure all four posts are connected to the floppy-style power connector).

NOTE: when assembling the TiVoNet on your TiVo, put the NIC together
with the TiVoNet first (holding each board in one hand), then put the
combined unit on the TiVo motherboard. Make sure both ISA and PCI connectors are
firmly seated. When seating the PCI connector, you need to place your fingers on the back of the TiVoNet board, where the pins of the PCI connector stick out, then press towards the TiVo motherboard to seat. The pins sticking in your fingers can hurt a bit: use an eraser (not from the end of a pencil, but a long, flat, stand-alone one) between your finger and the pins.

NOTE: the TiVo's internal power supply is unprotected. It's adjacent to where
the main (120v) power plug connects to the box. It'll give you a good jolt
even if the TiVo's power cord is unplugged. Keep your (and your kids)
distance from this
part of the unit.

NOTE: to protect the components from static shock, make sure to properly ground yourself when dealing with the
TiVoNet board, the NIC adapter, or the TiVo motherboard. I find it sufficient
to touch an exposed (unpainted) part of the chassis of another computer that's
plugged in (grounded), before touching components.
Radio Shack sells a wrist strap to keep you constantly
grounded.

--End of important notes.

Assuming the complete TiVoNet installed: the NIC drivers must be loaded,
the interface and route configured, and the telnet daemon must be
started.

The best way to do this, if you're starting with an unhacked TiVo
(no bash prompt on the serial port), is to follow the instructions for
"Getting a BASH prompt" in section 4.6 of this hacking FAQ, with the
following exceptions and additions...

1. Create another floppy disk with the files "8390.0", "tivone.o", and
"probe.o" from:

You might also want to load this floppy with "nfs.o" (the NFS kernel
module, for mounting directories from other Unix systems), "smbfs.o"
(The Samba file system kernel module) and "smbmount" (for mounting
Windows "shares" onto the tivo), an ftp daemon, or "rsync". Most of
those are available at the 9thtee site:

4-Alternate #2. modify "gw" from the boot PROM (see how to modify boot PROM parameters elsewhere in this FAQ).

5. Section 4.6, steps 4-7, refer to modifying the /mnt/etc/rc.sysinit
file. In addition, at the end of the file, add the commands to load
the drivers and configure the interface and start up the telnet daemon:

Where "192.168.1.72" is the Ethernet address you want for your TiVo,
and "192.168.1.1" is your gateway (replace those values with your
desired values, appropriate for your network).

"tivoether" is a boot PROM parameter. Setting these parameters is
covered in the hack FAQ in sections 4.3 and 4.8. This allows you to
turn on and off booting with the TiVoNet from the PROM monitor.

If you're feeling lucky, then just set "tivoether" to true before the
predicate, i.e.:

export tivoether=true

(put this before the predicate in rc.sysinit, shown at the top of this
step 5.)

If the Ethernet board (or just mis-coded driver) hangs your TiVo, then
having tivoether in the boot parameters is a quick way to revive your
system. If you set it to "true" in rc.sysinit, and it hangs the TiVo,
then you'll have to reboot the TiVo without the TiVoNet hardware to
revive the system (assuming bad hardware caused the hang). If that
still hangs the system, then the above predicate hung the system, and
you'll have to remove the drive, reboot with Dylan's boot disk, and
remove this predicate from the rc.sysinit (using the "joe" editor).

Note that, if you halt the system with the root partition mounted R/W,
then the system will delay for a long period of time during booting
while checking the root partition. This is just a delay, not a hang.

Rather than hand editing this predicate into rc.sysinit using "joe",
you can create a file on your floppy that contains this predicate, and
append this file to the end of rc.sysinit after booting Dylan's boot
disk. For example, let's say you called the file containing this
script "tivostartup.txt" and put it on the secondary floppy (mounted
in step 2):

cat /mnt/floppy/tivostartup.txt >>/mnt/etc/rc.d/rc.sysinit

Will append the contents of this file to the end of rc.sysinit.

If you create this text file from a Windows machine, make sure to run the file through a "dos2unix.exe" utility to replace CR/LF's appropriately.

If you chose to modify "tcphonehome.tcl" per step "4 Alternate #1" or set the gateway address up from the PROM monitor in step "4 alternate 2", then make sure to use the normal "route" command, rather than "route.tivo" in the modified rc.sysinit script.

Make sure, as detailed in section 4.6, to modify rc.sysinit
on both partitions 4 and 7.

6. Copy any other files you want on your TiVo system (see examples
above), and modify rc.sysinit accordingly, if necessary.

7. Make sure to unmount the TiVo partitions before turning the PC
power off (as described in section 4.6) and replacing any changed jumper
on the hard disk.

8. After starting the TiVo with its modified disk and the network
card cabled correctly, you should be able to telnet directly to the IP
address you configured for your TiVo -- bypassing using the serial port
BASH prompt altogether (unless you need to set the "tivoether" boot
parameter -- in which case you'll need to use the serial port to access
the PROM monitor, then set this parameter).

If you telnet in sucessfully, you're set! It's time to think about security -- can people connect (and perhaps hack into) your TiVo? You may be protected by NAT, or the root password may be sufficient, but you should think at least briefly that your TiVo is now a not-particularly-secured UNIX system on the Internet.

If not, then continue to the debugging section:

DEBUGGING:

1. If you changed jumper settings to boot your TiVo disk in a PC, did you change the
jumper settings back to the way they were before reinstalling the disk in the
TiVo?

2. Start by logging in via the serial console, as described in section 4.6
of this FAQ. If you can't log in, then rc.sysinit was possibly not
correctly modified or the NIC card drivers are hanging the system.

(Note: step 5, above, gives some detailed examples for debugging this problem,
depending on how you set the "tivoether" variable.)

Remove the TiVoNet from your TiVo, and try booting again. If it boots correctly,
and gives you a serial prompt, then your NIC card is most likely not set up correctly.

3. If it still doesn't give you a serial prompt, then put your TiVo's hard
disk back on your PC and boot
Dylan's boot disk and check that all the previous instructions have
been followed. If you found something wrong with your setup, then
retry the reassembled TiVo with the TiVoNet card.

If you can't find anything wrong with the setup, then
remove the "tivoether" predicate from rc.sysinit and reboot the reassembled
TiVo without the TiVoNet card and see if the serial prompt works.

If the serial prompt now works, then try loading the driver modules and configuring
the interface from the command prompt.

If the serial prompt still doesn't work, then you're not setting up
the serial prompt correctly or not
correctly setting up the cable for the serial port, or not setting
up your host terminal properly
for the serial connection, OR: you've got serious problems..

Otherwise, if you have a serial prompt and still can't telnet in...

4. Run:

ps -auxww

This shows running processes. See if the "tnlited" telnet daemon is running. If not, start it up with:

tnlited 23 /bin/bash -login

There have been numerous reports of certain Windows and RedHat Linux 7.1 telnet clients that actually kill the TiVo telnet daemon. If this is the case, see if you can find another telnet client for your host.

If you can ping your TiVo from your workstation ("ping <ip address>"), but you can't keep your telnet daemon running on the TiVo, then this is probably the problem.

Note that "ps" may not work if it's not in your "PATH" or uninstalled. The "tivonetfloppy.zip" installation does install the "ps" command. Also, the "ps" command is builtin to the "tivosh": enter the "tivosh" command; at its prompt, enter the above "ps" command.

The first line indicates the route to the local network. It's saying: you can get to (in the example) "192.168.0.x" via eth0. This route is created by the ifconfig command. If it's wrong, then something is wrong with the ifconfig statement you're using to configure the interface.

The second line indicates that you can get to anywhere (0.0.0.0 or x.x.x.x) by sending packets to the gateway, which is "192.168.0.1" (in the example).

8. If the drivers are loaded, the interface is configured, and the telnet daemon is running, then go fix the workstation you were trying to telnet from!

It describes, in great detail, how to setup the Tivo to do a dedicated PPP to a computer over the serial port connection (assuming you're not using the serial port to connect to a DSS box) and will let you configure it to do your daily calls over a cable modem or DSL line, etc.

5. Credits and contact information

This FAQ would not be possible without the help of many people. This
list by no way is complete, but I will do my best to give it a shot!
They are in no particular order. If I missed someone please let me know.