PDA

View Full Version : Beyond hard drive expansion...



sparx
03-17-2005, 06:49 PM
I've already upgraded my Tivos (a TCD24004A series 2 standalone and a DirecTv Hughes SD-DVR40) to 120 GB each using the mfstools backup and restore to copy the software, expand the volume and preserve my recordings. Now I want to try some of the hacks, like setting my DirecTv box to update across the Internet instead of a phone line.

My current understanding is that to do this I need to get a bash script and telnet access going. I've tried using a serial cable and didn't have any luck. I'm guessing that both of these Tivos have newer versions of the PROM that do not allow shell access. I'm not sure how to determine the PROM version in each, but the SA has version 7.1a software and the DVR40 has version 3.1.1.e software. Can anyone confirm that shell access doesn't work by default for these models?

My next effort was to mount the drives and use the 'monte' tool to install the appropriate hacks. However, the 'monte' tool says it can't find the boot partition and stops. IIRC it also says bootpartition=-1 or something similar. I've tried this on both my original 40G disk and my new 120G disk with the same results. Any ideas?

My goal is to enable both boxes to have HMO features and preferably MRV features. I'm aware of the TyTools server which allows datalinking video from the Tivo, but I don't know whether TyTools works with 3.1 (as opposed to 4.0) or whether it is compatible with the Tivo 7.1a software on my SA box.
Any ideas?

Finally, what are the features enabled using the 3.1u5 (userland) kernel? I've read various sets of instructions that say how to install it, but nothing that tells me why I would want to do it. Similarly, many other hacks are known by names that provide no useful information about what actual features are added or why a person might want to install them, e.g. the 'sleeper' hack.

The hacks of most interest to me are:
- setting the DirecTv box to update across the Internet instead of dialing on the phone
- setting up my SD-DVR40 to serve files like HMO does
- changing the default geometry at which programs are recorded to 720 x 480 or some other HDTV compatible geometry
- enabling multi-room viewing between the SD-DVR40 and the standalone
- turning off scrambling, so I don't have to unscramble everything on a PC again before I can view the videos on a Mac under OS X
- changing the time period for the skip-back feature when fast-forwarding because it always jumps back too far

Please don't tell me to go read the Tivo Hacking FAQ--I've been there and done that. I already read several other FAQs as well and a few Hacking the Tivo-type books. Much of the information is too obsolete to be much help.

captain_video
03-17-2005, 07:35 PM
Your best bet is to read through the sticky threads in the forums that pertain to your interests. Some of them are quite long but it's not too hard to skim through them and find the posts that have any meaningful content. The Tivo hacking books are fine for some basic background info but they don't really get into the meat of hacking your Tivo.

Tivo hacking info is like watching the news. What's valid today may or may not be valid next week so the best thing to do is start reading and get yourself caught up with the current methods for hacking your Tivo. Learning what hacks to perform is important but not as important as understanding why they are done.

sparx
03-17-2005, 10:01 PM
Your best bet is to read through the sticky threads in the forums that pertain to your interests. Some of them are quite long but it's not too hard to skim through them and find the posts that have any meaningful content. The Tivo hacking books are fine for some basic background info but they don't really get into the meat of hacking your Tivo.

Tivo hacking info is like watching the news. What's valid today may or may not be valid next week so the best thing to do is start reading and get yourself caught up with the current methods for hacking your Tivo. Learning what hacks to perform is important but not as important as understanding why they are done.

Part of the problem with reading the threads is the lack of context. Your DTivo Hacking FAQ is pretty good--I hadn't even heard about Tivolater 3.1 yet--but I'm still not sure about some of the hacks. For example, there are numerous references to killinitrd and killinitrd-compatible kernels, but I have yet to see an explanation of what problem killinitrd actually addresses. I know it has something to do with a protective mechanism in the Tivos, but that's all I'm sure of at this point.

The other big problem with the thread and FAQs is the amount of conflicting information. For example, some FAQs say that to get the shell prompt on the Tivo I must hit 'enter' once within the first 2 seconds after bootup. Others say to hit 'enter' multiple times because of the timing issues. And another FAQ says to hit it after 20 seconds pass. Similarly, I've seen different conflicting information about the terminal settings to use when establishing contact including 9600/8/n/1; 38400/8/n/1; 115200/8/n/1, etc.

It gets frustrating--getting a terminal prompt on the Tivo shouldn't be this much effort. Surely someone must have found a way of mounting the Tivo fil system from Linux to allow direct copying of files to the disk when it is present in a PC for the upgrade? Maybe that's what the 'Dylan' disk is?

I'm just getting a bit frustrated. To be useful this information needs to be organized better, preferably by Tivo model and software version. If the PROM version is the determining factor, then it would be *very* helpful to know how to determine what the PROM version is.

PlainBill
03-17-2005, 11:24 PM
Now I want to try some of the hacks, like setting my DirecTv box to update across the Internet instead of a phone line.

Your DirecTiVo does NOT update via the phone line. It gets guide information (and sooftware upgrades) from the satellite, just like a regular DirecTV receiver. The phone line is used to report viewing habits to TiVo, and PPV information to DirecTV. If you don't plug a phone line into the DirecTiVo it will continue to work. OTOH, your TiVo must get it's guide data from Tivo. This can be done over the internet without hacking the system.

I suggest you start by reading the stickies in this forum. They do not answer all your questions, but may help you learn more quickly.

PlainBill

sparx
03-18-2005, 12:34 AM
Your DirecTiVo does NOT update via the phone line. It gets guide information (and sooftware upgrades) from the satellite...

PlainBill

Actually I knew that, having read earlier posts. I just mis-spoke (mis-wrote?). A better way to say what I meant is that I want to connect my DirecTivo to my home network, like the way I connected my SAS2 to my home network so the SAS2 can update across the Internet instead of tying up my phone line. For reasons that should be obvious, I would install an IP filter to keep the DirecTivo from "phoning home" if I connect it to my home network.

bozzaj
03-18-2005, 10:20 AM
The other big problem with the thread and FAQs is the amount of conflicting information. For example, some FAQs say that to get the shell prompt on the Tivo I must hit 'enter' once within the first 2 seconds after bootup. Others say to hit 'enter' multiple times because of the timing issues. And another FAQ says to hit it after 20 seconds pass. Similarly, I've seen different conflicting information about the terminal settings to use when establishing contact including 9600/8/n/1; 38400/8/n/1; 115200/8/n/1, etc.


I just forced a 6.2 upgrade on my SD-DVR120 last night (first time hacking a Series 2), so I can tell you that you can, in fact, turn on a bash prompt via the serial. I didn't do anything else after I forced the upgrade - in fact I turned off my bootpage settings - so I can't really help beyond that, but I can help you with your first part.

First of all, I used the disk from PTVupgrade (http://www.ptvupgrade.com/products/software/lba48/index.html) to access my drive. Then I used killhdinitrd (already on the PTVupgrade boot CD), along with a virgin kernel from 3.1.1c. You can find information about killhdinitrd in this thread - Links to Virgin kernels are also located in this thread:

http://www.dealdatabase.com/forum/showthread.php?t=36693

I had to change a couple of things. First, the "opposite information" in step #5 doesn't apply to the PTVupgrade boot CD. Secondly, no matter what I tried, bootpage would *NOT* work to update the bootpage settings. Luckily, after much searching, I found tpip (also already on the CD) that did work. tpip works almost exactly the same as bootpage, but you'll want to run the command by itself to figure out your command.

Luckily, I work with FreeBSD (similar to Linux) and Solaris at work all the time, so I understand Unix commands and structure and was able to interpret the threads.

After that, I mounted the root partition and added these tools:

http://www.dealdatabase.com/forum/showthread.php?t=37602

creating the needed rc.sysinit.author file (and chmodding it to be executable) with the export line and my bash line. It took me a little while to figure out the bash line, mainly due to my problems with bootpage and the fact that searching the forums using the forum search utility doesn't work the way you'd expect. I used the Google search at the top and that worked much better. Regardless, this is the line that enables a bash shell:


/bin/bash < /dev/ttyS2 >& /dev/ttyS2 &
I found this thread just now that explains the bash prompt:

http://www.dealdatabase.com/forum/showthread.php?t=24038

The talk about the modded prom doesn't apply, but the bash line is fine.

Once I did all that, I put the drive back into my DTivo, hooked up my serial cable, set my software to 115200, 8-N-1 (The 115200 settings are defined by the bootpage/tpip settings I ran above. If I used 38400 above instead of 115200, those would be the settings I'd used to connect), and turned on my DTivo. I didn't touch ANYTHING until I saw the information from the DTivo booting up. I was continually getting the "What is Password?" prompt previously, but I think that was due to the fact that bootpage wasn't working for me. Once I used tpip and the bootpage settings actually updated, everything else went smoothly. I don't think I even needed to press ENTER twice or anything like that, though I did after I saw boot data, which brought up the bash prompt.

At that point I ran the installSw script to upgrade to 6.2 (my system already had the needed upgrade file), so I'll leave you here. Once you get in, it sound like you have enough information to do the rest.

I agree that finding the information can be a pain in the ass, but I'd definitely recommend using the Google search (selecting DealDatabase.com) to search the forums. You'll probably have much better luck, since you can search on phrases and include/exclude other words.

Good luck!

sparx
03-19-2005, 03:11 PM
I just forced a 6.2 upgrade on my SD-DVR120 last night (first time hacking a Series 2), so I can tell you that you can, in fact, turn on a bash prompt via the serial.

From the other information in your post, it sounds like your DTivo had already downloaded the 6.2 software, so you ran a script to force it to upgrade itself. Is that right? I ask because I haven't seen any 6.2 images floating around yet.

I went back and tried to access the bootpage again but got the same results. Maybe I just have a bad cable--I've never tried using it before. Were the initial settings that you used 9600/8/n/1? I tried 9600, 38400, and 115200 but with the same non-results.


I didn't do anything else after I forced the upgrade - in fact I turned off my bootpage settings - so I can't really help beyond that, but I can help you with your first part.

First of all, I used the disk from PTVupgrade (http://www.ptvupgrade.com/products/software/lba48/index.html) to access my drive. Then I used killhdinitrd (already on the PTVupgrade boot CD), along with a virgin kernel from 3.1.1c. You can find information about killhdinitrd in this thread - Links to Virgin kernels are also located in this thread:

http://www.dealdatabase.com/forum/showthread.php?t=36693


I'll try this next. Accessing the drive from inside Linux should be much more straightforward than futzing with the serial interface.

Thanks!

bozzaj
03-20-2005, 12:19 PM
From the other information in your post, it sounds like your DTivo had already downloaded the 6.2 software, so you ran a script to force it to upgrade itself. Is that right? I ask because I haven't seen any 6.2 images floating around yet.

Correct. My unit had downloaded the correct slice on 2/26/05. I didn't find this out until I hacked the unit, but I suspected the file would be there. Of course, if it wasn't there, I would have been stuck, but I was lucky.

The file is stored on one of the MFS partitions, so you can't see if it's there until you bash into your unit.


I went back and tried to access the bootpage again but got the same results. Maybe I just have a bad cable--I've never tried using it before. Were the initial settings that you used 9600/8/n/1? I tried 9600, 38400, and 115200 but with the same non-results.

Like I said, every time I used the bootpage, the settings wouldn't stick. I would follow my "bootpage -P" command (that sets the boot args) with a "bootpage -p", which prints out the current args. No matter what I did, the settings wouldn't take. When I switched to tpip (which actually uses the same command arguments to set the boot args), the settings changed and I was able to get in. I tried 115200 originally, then slower, but when I realized the settings weren't actually changing, I went back to 115200.


I'll try this next. Accessing the drive from inside Linux should be much more straightforward than futzing with the serial interface.

Since the main partitions are just normal Linux partitions, I'd definitely recommend doing as much editing and adding from within Linux. I had a problem with job control with the serial interface bash (No Ctrl-C, etc), so it was a pain. I didn't bother to try and fix it since I was only going to be in there for a short time.

sparx
03-20-2005, 10:25 PM
Thanks for the assist--I got quite a bit further and now understand some of the reasons I was having so much trouble.


Like I said, every time I used the bootpage, the settings wouldn't stick. I would follow my "bootpage -P" command (that sets the boot args) with a "bootpage -p", which prints out the current args. No matter what I did, the settings wouldn't take. When I switched to tpip (which actually uses the same command arguments to set the boot args), the settings changed and I was able to get in.

Bootpage was the first problem I found. Once or twice I got the bootpage settings to stick when using the -C option, but most of the time it just ignored my efforts to update. In contrast, tpip works fine.


Since the main partitions are just normal Linux partitions, I'd definitely recommend doing as much editing and adding from within Linux. I had a problem with job control with the serial interface bash (No Ctrl-C, etc), so it was a pain. I didn't bother to try and fix it since I was only going to be in there for a short time.

The second major problem I found is that one of the root partitions (7 in this case) was corrupt. I could mount and work with 4, but not 7. I overwrote the content of 7 with the content of 4 using dd. I don't recommend the procedure, but it seemed to work properly.

I still haven't gotten a BASH shell working, but I'm getting quite a bit of information from the Tivo during the boot process. It's quite a little chatterbox now. I have figured out that it is not running my modified rc.sysinit file. I modified both the copy in partition 4 and in partition 7. My best guess is that it is running something from the boot kernel area. I'll try the kernel swaps next.

Thanks.

bozzaj
03-20-2005, 11:45 PM
The second major problem I found is that one of the root partitions (7 in this case) was corrupt. I could mount and work with 4, but not 7. I overwrote the content of 7 with the content of 4 using dd. I don't recommend the procedure, but it seemed to work properly.
As long as you dd'd the killhdinitrd kernel to both 3 and 6, I don't see what you did being a problem. You *may* have moved back a version or so. In my system, 4 was actually 3.1.1[something not e] - Whatever was first on my system when I got it back in October. I know that it upgraded to 3.1.1e when I ran the first call.


I still haven't gotten a BASH shell working, but I'm getting quite a bit of information from the Tivo during the boot process. It's quite a little chatterbox now. I have figured out that it is not running my modified rc.sysinit file. I modified both the copy in partition 4 and in partition 7. My best guess is that it is running something from the boot kernel area. I'll try the kernel swaps next.
Sounds like your bootpage settings are working. I'm not sure how you added the bash command, but if you created an rc.sysinit.author file, you need to make sure the file is executable. If you added it to the rc.sysinit, check the file to make sure it wasn't overwritten again. If you didn't dd the hacked kernel over, the system may have "fixed" the file.

I'm not sure whether or not copying 4 to 7 would have worked perfectly, now that I think about it. Which partition did your system think it was running out of? 4 or 7? If it was 4 and your boot kernel was 3, you should be ok just focusing on 4. If it was 7 and your boot kernel was 6, there might be something else happening.

sparx
03-24-2005, 12:36 AM
As long as you dd'd the killhdinitrd kernel to both 3 and 6, I don't see what you did being a problem. You *may* have moved back a version or so. In my system, 4 was actually 3.1.1[something not e] - Whatever was first on my system when I got it back in October. I know that it upgraded to 3.1.1e when I ran the first call.

I fixed the problem and got BASH working. That was a few days ago now, but IIRC the rc.sysinit file was being overwritten because I forgot to overwrite the kernel in the image with a killhdinitrd'd kernel after replacing the disk image. I've taken to writing down what steps I've executed now to avoid missing any steps. I'd been playing with different kernel version and software versions to see if I could find a common image that would work when installed in either a SAS2 or a DTivo with a RID.

I'd like to get both of my boxes running the same software to simplify maintenance and compatiblity issues--think of it as a one-image-to-rule-them-all/one-image-to-bind-them approach. I'd started off playing with 4.0, but couldn't get it running on the DTivo. I'm still trying to figure that one out. I think the solution is to boot into a killhdinitrd'd 3.1.1c kernel and then load the 4.0 software, but I'm still trying to understand the mechanics of the process from reviewing the emails on the topic.

bozzaj
03-24-2005, 09:38 AM
I fixed the problem and got BASH working. That was a few days ago now, but IIRC the rc.sysinit file was being overwritten because I forgot to overwrite the kernel in the image with a killhdinitrd'd kernel after replacing the disk image. I've taken to writing down what steps I've executed now to avoid missing any steps. I'd been playing with different kernel version and software versions to see if I could find a common image that would work when installed in either a SAS2 or a DTivo with a RID.
Funny thing - I did the same exact thing when I upgraded a friend of mine's. It ended up wiping out the installSw.itcl file and my rc.sysint.author file. I had to restore the installSw file from backup. I realized immediately upon boot the I didn't dd the patched kernel.

Like I said previously, I was only looking at forcing my upgrade a month or two before it would actually happen (and I'm really glad I did!), so I can't help beyond that. Good luck with your hacking!