Ryan's TiVo Hacking Journal

In the Beginning...

As I'm sitting here, waiting for my A drive to copy, I'm thinking I should document my experiences with the marvel known as TiVo. I'm writing this at about 11:45PM on 4/28/01; the following events are from my memory. Names has been changed to protect the guilty.

Sometime Last Year - I see this thing called TiVo... Cheezy name, cheezy graphics, it'll never catch on.

Sometime in February/March - A co-worker of mine, let's call him Jason (oh, wait that's his real name... ahh well), has been talking about TiVo. His girlfriend finally broke down and bought him one, a Sony 30 hour unit. From that point on, he was a fanatic... TiVo can do this, TiVo can do that... It was interesting listening to him. At one point he bought a backup A drive and an 80GB Maxtor drive, and created a huge-ass TiVo. Woo!

Thrusday, 4/12/2001 - Okay, I couldn't take it anymore. I was going to get a TiVo, right after work. As I was driving away from the BART station to go to Best Buy to buy one, I saw a woman in the car behind me waving her arms and pointing at my car. I pulled over and saw that my car was leaking fuel. Great. I figures the best thing was to drive home right away. TiVo will wait. I took the car to the shop the next morning. (I swear, this is relevant.)

Monday, 4/16/2001 - The car was ready, I was going to pick it up the next morning. I went home that night to find (*groan*) my house had been broken into. They took the TV, VCR, DVD, receiver, NES and SNES, a power drill and a $20 cordless phone. However, they rummaged around, but did not take, any of the computer equipment or my digital camera. Go figure. (See, I told you it was relevant. My car breaking down saved me $300.)

Tuesday, 4/17/2001 - Cleaned up, installed some door and window alarms, picked up the car. Later that night I bought a PC TV card. Over the next few days, I played around with some PC-based digital VCR software. All that did was get me more excited about TiVo.

Sunday, 4/22/2001 - I went to Best Buy and bought a Phillips HDR212 TiVo. Sure, I didn't have a TV, but instead, a 15" monitor. Either way... I made the first mistake later that night when I plugged the unit in and set it up. As I'm writing this, I'm kicking myself for doing that. Backups take forever unless it's in a virgin state. Anyways, after setting it up, I had one question on my mind.... What takes only 10 minutes to download, and 3 hours to process? I was so bored, I took a screen shot and doctored it up to produce this image, which may provide some insight as to what the TiVo is doing all that time. (Don't follow that link if you are offended by the word "wanking" :)

Tuesday, 4/24/2001 - Jason called me in the evening, asking how many hard drives were in my TiVo. See, Jason wanted to go into the business of selling modded TiVos on eBay. He bought 3 refurbished Phillips HDR312 units, and the Maxtor 80GB drives arrived that day. One little hangup... the models he bought consisted of two 15GB drives, and the first rule of TiVo is if there is a second drive added to a TiVo, you cannot remove it. That is why backups are ESSENTIAL when hacking a TiVo. Anyways, with some reluctance, I grabbed a Torx screwdriver, broke the seal on the back of the unit and checked -- one drive. Sucks for Jason though... The only way to mod his units is to forget the 15GB drives, get some 20GB drives, write an image of my drive to them, then mod those. Too much hastle, and buying a 20GB drive would severly cut into the profit.

Wednesday, 4/25/2001 - Jason went about selling the drives and units. He asked me if I wanted to buy one of the drives. I didn't have much extra money, but he got the drives at a good price, so I bought one. It remained on my desk at work until Sunday evening.

Thursday, 4/26/2001 - That night I decided to back up the A drive on my unit. Since I didn't have a extra drive big enough (that I remembered), I took the gzip approach and wanted to put it as a single file on my windows drive. At about 1AM I realized that a single file on a FAT32 filesystem can be only 4GB. Damn.

Friday, 4/27/2001 - Friday night, I realized that the old FreeBSD box in the corner has a 20GB maxtor drive. I back up the stuff I need and do a dd copy from the TiVo A drive to the Maxtor. That began (Saturday morning) at about 12:10AM. At 2:30, the copy process was still going on, so I went to bed.

Saturday, 4/28/2001 - I wake up to find that the HD light on the copy computer was no longer red -- the process was finished. The dd command appeared to have succeeded. At that point I thought it would be safer to use the Maxtor backup A drive in the TiVo so if something happens to that, I can just back up the original drive to a new one again. I edited the linux partitions and put "runideturbo=false" into /etc/rc.d/rc.sysinit (this is needed when using a non-Quantum drive in the TiVo). I plugged the drive and turned the unit on. It booted up normally, displayed the "suspended service" notice (I hadn't signed up for service yet), and as soon as I pressed "select" to dismiss the notice, it froze up. So I turned it off and tried again. No such luck. I thought there would probably be something in the logs, but you need a null modem cable and a gender changer to hook up the serial port on the back of the unit to a computer. I got dressed, drove to Radio Shack, and bought the necessary hardware. Sure enough, I saw these errors:

Apr 28 21:40:32 (none) TmkTransform::Trace[82]: Error creating stream: errFsRegionFull
Apr 28 21:40:32 (none) TmkTransform::Trace[82]: Error unlinking stream: errOk
Apr 28 21:40:33 (none) TmkMediaswitch::Trace[91]: TUNE LOCK LOST ON 0
Apr 28 21:40:36 (none) TmkMediaswitch::Trace[91]: TUNER RELOCK

It looks like the TiVo thinks the MFS partition is full. From some help on the TiVo Underground boards, I found that the Quantum lct15 series 20.0GB drive is actually a 22GB drive, and the dd actually failed. I got back in the car and drove to Fry's to get a new hard drive, a Western Digital 30GB drive for $109. On the way back, I stopped by work in downtown SF and picked up the Maxtor 80GB drive. (Note to self, driving in the Bay Area SUCKS. It took over 4 hours to drive from Richmond to Fremont, go over the San Mateo bridge, swing by work, go over the Bay Bridge and return home. Bah.) I set up the original A drive and the new 30GB drive in the copy machine and started dd'ing. That was at about 9PM.

Well, that brings me up to this moment. It's almost 1AM Sunday, and the little red light on the copy PC is still on. Ho hum... On the plus side, I found out a little utility that claims to be able to expand a drive that was copied over from a smaller original A drive. If that works, the last 8GB on the drive I'm copying to might be usable. We'll see...

Here are some pictures I just took...

At this point I'd like to give provide some links to pages and software that have helped me.

Sunday, 4/29/2001, 3:31AM - The disk finally finished copying! Wow, 61/2 hours...I'm going to put it in the TiVo just to make sure it works as a standalong before doing the modifications.

Sunday, 4/29/2001, 3:36AM - What the.... nothing, no booting on the TiVo, and now it won't show up on the copying PC. I swear, this was working. I even had to mount the linux partitions to add the "runideturbo=false". They mounted just fine...

Sunday, 4/29/2001, 3:48AM - Ahh, got it. Turns out WD's idea of Master and Single are strict. I originally switched the jumper from "slave" to "master" on the drive and put it in the TiVo without any other drives... same with the PC. Like I said, WD must be strict on that. "Single" is for one drive only, "Master" is for two drives, itself being the master. Anyways, after finding that out, I switched to "single" and tried it on the TiVo. Worked fine. Next was the modifications. I followed Trevor's instructions, enlarging the used size of the WD drive from 22GB to 30GB. I then ran the BlessTiVo program to bless the 80GB Maxtor. Everything went well. Now I'm psyching myself into putting them into the TiVo...

Sunday, 4/29/2001, 4:07AM - WOOOO! Worked perfectly! Check it out, 130 hours, 58 minutes! Wow... Well, I forgot to enable the serial shell, I'll do that tomorrow. I'm going to bed now...

Sunday, 4/29/2001, 12:17PM - Just got up (is is still Sunday?), took the drives out of the unit, and put the A drive into the copy box to enable the serial shell again. Works fine. Now I just have to find a use for a bash shell :) Here's a few new pictures:

Sunday, 4/29/2001, 1:10PM - Watched The Fifth Element for awhile, then went looking for something to do with the shell. I found this page which listed (among other things) a tcl script to change the font on the tivo. I downloaded that and his sample font, and ran the script. Now the TiVo display looks like this. Pretty cool...