A while back I picked up a second hand Series 1 Tivo from my friend Josh. After living with it for a few months I really don’t know how people watch TV without them. Along with all the cool features they have already they are extremely hackable. This weekend I finally got around to hacking mine and I thought I’d post a geeky summary so I’ll remember how to do it again if I need to and so someone else might learn a bit from my mistakes.
!!Disclaimer!!
This is just how I did it. It’s probably not the best way and it might not work for you.
If it doesn’t work or cause your Tivo to change into a smoldering pile of ashes don’t blame me!
The setup:
40 hour series one Tivo
120GB replacement HD
#10 torx screwdriver
spare computer to plug drives into
TurboNet card (in my case already installed)
Hacking Tivo Second Edition and companion CD
MFSTools 2.0 CD
Hinsdale drive replacement instructions
FAT32 Hardrive (anything over 1gb should be fine)
The Hard Drive Upgrade:
To do the drive upgrade I followed the directions on the Hinsdale page. The only exception was that with the current version of MFSTools I don’t think you need the gunlock software to fix a locked drive. I’m not 100% sure about this but when I booted the CD it mentioned something about unlocking drives so it may be built in now.
The most important thing to keep in mind during this step is to keep track of which drive is which, use this table as reference:
Primary Master = HDA
Primary Slave = HDB
Secondary Master = HDC
Secondary Slave = HDD
If you’re not sure which drive is plugged in where, pull up the system bios and it should show you, if all the drives don’t show up monkey with your jumpers, the software can’t address a HD that the BIOS won’t recognize!
I also skipped the test step after restoring the original image, it’s not really necessary (although probably a good idea).
Installing the hacks:
1. Boot the CD that came with Hacking the Tivo Second Edition, or really any usable Linux boot disk will do.
2. Mount the Tivo Drive:
mount /dev/hdc4 /mnt
< -- pretty sure on this, I don’t have the reference material handy. Remember your drive name may be different.
3. Make a directory for your hacks, I choose /var/hack since it seems to be the most popular spot to put them. Of course this is currently /mnt/var/hack/ since we’re not booting from the Tivo drive.
4. Untar the hack file from the Hacking The Tivo CD to /var/hack.
Now all the goodies are ready and waiting to be used!
The Hacks 1- Telnet:
1. Follow steps 1 and 2 from the section above.
2. Either use a text editor from the boot disk or just echo to add the following line to your /mnt/etc/rc.d/rc.sysinit
The syntax for using echo is:
echo "/var/hack/bin/tnlited.sh &" >> /mnt/etc/rc.d/rc.sysinit
Yes you could start the telnet daemon directly (tnlited 23 /bin/bash -login) but the nifty little shell script will restart the daemon if it manages to crash.
3. /etc/rc.d/rc.sysinit MUST be system readable! I just chmod’d it to 777 every time, this is uber important or it won’t boot and you’ll have to stick it back in the PC and tinker.
4. Do a shutdown and stick your Tivo drive back in the Tivo and boot it up. Don’t bother screwing it down quite yet in case you borked something.
5. Test it out! Telnet to your Tivo’s IP address and you should get a command line.
Notes: The default shell is pretty shitty, it echoes two lines with each return which is odd and it doesn’t support several very useful features such as ls and ps. The CD from the book includes a copy of BusyBox which is a fantastic all-in-one shell tool. Included in the tar was a series of Symbolic links for the tools it contains all pointing to BusyBox. If you want to enable those I suggest changing you bash shell to include /var/hack and /var/hack/bin in the path.
You do this my creating a file called .profile in the root directory that contains the following line:
PATH=$PATH:/var/hack:/var/hack/bin
The next time you log in via telnet you’ll have a much more operable shell.
The Hacks 2- FTP:
1. Telnet in to your tivo.
2. Start the FTP daemon:
/var/hack/bin/tivoftpd
3. Test it out! FTP to your tivo with a blank username and password (I recommend Filezilla).
Notes: If you want to start FTP with each restart of the machine you have to add it to the rc.sysinit.
If you use ftp to transfer files be aware that it’s friggin slow and it doesn’t support a lot of stuff (file renames/permission changes, etc) AND it is likely to bork file permissions so set them manually from the command line, or at least double check them.
The Hacks 3- Tyserver:
1. Download the latest TyServer/Tytool package from The Deal Database Forum. Yes you will have to register and yes it’s weird using software distributed on a message board, but it’s totally legit. I promise.
2. FTP the contents of the TSERVER_series1 folder to somewhere on your Tivo. I made a new directory for hacks I installed (/var/hacks/ians_hacks/) but you can put it wherever.
3. CD to the directory where you put the tserver and NowShowing.tcl files.
4. Start the tserver from the command line.
4. Test it out! Run the TyTool9r18.exe (or similar) on your PC and enter the IP address and try to connect to it.
Notes: Tyserver needs to know the location of the NowShowing.tcl file so use a line like this in rc.sysinit:
/var/hacks/bin/ty_server/tserver -s /var/hacks/bin/ty_server/NowShowing.tcl &
This is necessary because each line in rc.sysinit is run as if it was executed from the root directory.
The Hacks 4- TivoWebPlus:
1. Download the latest TivoWebPlus Binary. Get the tarball NOT the zip file.
2. Un-tar it
tar xzvf binaryfilename.tar
be sure to do this one directory above where you want it to be since the tar file will make its own directory.
3. Edit the tivoweb.cfg file, add a password and a username and possibly change the port if you alreayd use port 80 on your real world IP address and you want it accessible from anywhere.
4. Start it with
/var/path/to/file/tivoweb &
from the command line.
5. Test it out by surfing with a web browser to whatever IP yout tivo currently has (optionally appending it with :xxx where xxx is the port you switched the server to run on. If it works add it to your /etc/rc.d/rc.sysinit
Even More Stuff:
1. For the love of god, don’t put the Tivo back together until you are done hacking it completely just in case you screw something up and you need to mount it with a CD to edit stuff again.
2. If you want to change anything on the system partition (such as stuff in /etc) you’ll need to remount as R/W with this command:
mount -o rw,remount /
You will need this for editing of the rc.sysinit. When you are done be sure to remount it again as read only:
mount -o ro,remount /
3. When editing files on your windows machine be sure to use a text editor that supports Unix line endings like Textpad or ultraedit.
4. Every hack you start from rc.sysinit MUST be followed by the ‘&’ character. This makes the program start in the background, otherwise nothing else will run until that line has executed.
5. Here are the final lines from my rc.sysinit as a reference.
#Hacks added by Ian
#start telnet server using the shell script
/var/hack/bin/tnlited.sh &
#Start tivoftpd
/var/hack/bin/tivoftpd &
#Start tytool
/var/hack/bin/ty_server/tserver -s /var/hack/bin/ty_server/NowShowing.tcl &
#Start TivowebPlus
/var/hack/bin/tivoweb-tcl/tivoweb &