These are the original instructions that were posted to AVS
Forum detailing how to add a second hard disk to a TiVo Personal TV Receiver.
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. 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/Phillips units have a drive locking mechanism that makes it very hard to
mount their A drives in a non-TiVo Linux box.
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.
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.
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.
And PLEASE - be careful when you open the
unit. Its power supply is unshielded! Stay away from it.
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.
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.
I used a Quantum lct10 30 gig drive (part number QML30000LB-A) that I bought
from 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 Sonys. 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 drive's jumper to slave.
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
ftp://ftp.curry.org/pub/tivo, ftp://ftp.rotorway.org/incoming/tivo, 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.
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".
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.
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:
Then run: "pdisk -d /dev/hdX" and type these commands:
|
| C 2p 4M "Second MFS application region" MFS |
| C 3p 3p "Second MFS media region" MFS |
| x |
| m |
| 3 |
| x |
| w |
| y |
| q |
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.
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".
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).
Credit for figuring out this procedure goes to cc, Peter Creath, TivoTechie,
and Ron Curry.
6/21/00