PDA

View Full Version : Request>> an hdvr2 thread for n00bs



Insomnia
04-29-2003, 10:30 PM
OK, here goes. I am totally into this whole manual hack thing we got goin on with the lack of any utility like we had for the series 1, but I, for one am having a really hard time putting all the pieces together. I have successfully bashed my S2 using Igineers how-to, and I've messed with a couple of files on the unit, but the rest is all greek to me. Am I alone here in this? Am I the only one that just can't grasp what it is that mrblack is explaining in his now famous thread on his hacking experience? Well, maybe I should rephrase that, not so much what he is explaining, but more that my lack of linux skill and knowledge of the inner workings of the programming seems to keep me from filling in the holes myself. Ingineer did a great job on that thread on bashing the unit, now if someone could just help us out, in starting a less technical thread in accomplishing what we do know we can do with the unit (basically picking up where ingineer left off) i.e. getting fixsub goin and locking the unit to updates via the stream, I know that is my next goal (I'll save my HU compatibility problem for a dss forum) it would be great! And much appreciated, I might add by I'm sure many others as well.

tinman
04-29-2003, 10:53 PM
I'm with you. I came to learn -- and no I don't mean be spoon fed. I have access to TV thru my hacked T-60 so I'm not looking for a quick fix to free TV. In fact, I gave up another perfectly hackable unit for my HDVR2 because I wanted to face the challenge and learn how the box works, what the commands are, and how it all fits together.

Believe me, I've read MrB's post on the initrd replacement at least 10 times. Even his post on hacking the box is now dated since you can't use the U5 version forever unless you never hook up to the stream. I spent most of this weekend reading here and at the tivo underground trying to understand this stuff. That said, I did notice a recent post here that in a few short paragraphs explained in 5 mins or less almost everything I'd learned about hacking this unit in over 80 hrs of reading.

My impression is there are a few true masters here, like MrB and Kraven, and then there's a bunch of other people like me who are stumbling around who want to learn more but need some basic understanding of linux and the commands (and yes, I've read the faq). I even bought and installed SuSe linux on one of my computers in the hope it would help. It didn't.

Like anything with computers, hands on experience helps. It took me literally hours to figure out how to find my rc.sysinit file let alone mod it.

mrblack51
04-30-2003, 12:29 AM
Originally posted by tinman
I'm with you. I came to learn -- and no I don't mean be spoon fed. I have access to TV thru my hacked T-60 so I'm not looking for a quick fix to free TV. In fact, I gave up another perfectly hackable unit for my HDVR2 because I wanted to face the challenge and learn how the box works, what the commands are, and how it all fits together.

My impression is there are a few true masters here, like MrB and Kraven, and then there's a bunch of other people like me who are stumbling around who want to learn more but need some basic understanding of linux and the commands (and yes, I've read the faq). I even bought and installed SuSe linux on one of my computers in the hope it would help. It didn't.

well, as for the tivo specific stuff, ask away...
if you are looking for stuff like "how do i edit a file, change directories, copy files, etc. in linux" or whatnot, i strongly suggest the many linux faqs/how-tos...or even a basic linux book like "linux in 24hrs" or "linux for dummies". my best advice is to figure out what you want to do, and then look for info on how to do it.

for example, lets say i want to edit my rc.sysinit (lets hope i know what i want to change), and i only have bash via serial. my first search would be on this board for "transfer files bash serial", which would turn up a number of threads. once i got my answer, i would look up how to edit unix text files. course, a lot of this info it available on the board, as well as other sources.

would it be easier to have a set of 123 directions for every single hack? possibly. am i going to write them? probably not. if people feel like writing them, go ahead. until that happens, just keep reading and searching. we are awesome at tivo questions, so feel free to ask those. Im not trying to be elitist, so i hope thats not what you think. while i understand your frustration, you guys are doing the right thing by read read reading...99.9% of the answers are there.

Insomnia
04-30-2003, 02:59 AM
With all due respect, MrB, and believe me, you deserve plenty and then some, there is a huge grey area between understanding some of the quite technical lingo in the the hdvr2 threads and, as you put it ""how do i edit a file, change directories, copy files, etc. in linux" I certainly didn't mean it that way, and I don't believe that tinman meant it that way either. I, for one have read your thread on your hdvr2 hacking experience at least 5 times and I still can't seem to understand much of it. Sure, I can copy and past that code into the file, and get it into the /var/hack... but I still don't understand what I accomplished in doing so.

bash-2.02# bootpage -p /dev/hda root=/dev/hda7 upgradesoftware=false BASH_ENV=`mount$IFS-n$IFS/dev/hda14$IFS/mnt;echo$IFS/mnt/hacks` I have seen this and it looks like something I need to do, but I'm not sure when to enter that at the bash, or
bootpage -P "root=/dev/hda7 upgradesoftware=false BASH_ENV=\`mount\$IFS-n\$IFS/dev/hdaXX\$IFS/mnt;echo\$IFS/mnt/hacks\`" -C /dev/hdX where do I put this line, it looks an awful lot like one in ingineers thread, with a few added goodies that I entered when I was initially preparing the drive... is it too late to do this, and if it's not, where do I put it? I know this is starting to sound an awful lot like a gripe, and it's not, I'm just trying to make a point, that point being that while some of this stuff is just a given to some of you, it leaves a lot of what I like to call "holes" to many like myself. I read the code, I know the commands to put it there, I just don't know where to put it, or when to put it there. Take fixsub for instance, I have read at least 6 diff ways of doing it, and I don't know which way is right, which really doesn't matter because I don't understand half of it anyway. Heck, no matter what I do, I still can't seem to produce a fix-sub.tcl file from that 31fixsub file I downloaded (I won't even get into my frustration with figuring out what the best method for preventing future updates to the the unit is, and the whole 'swupgrade=false' thing). In any case, I've ranted long enough, I hope you all understand what I'm trying to say here, and if anyone who truly understands this stuff would care to take a moment of thier time to actually claify how to do some of this stuff in this thread, or any thread, it would be great, that is all I set out to say, and that is really all that I am saying now. Thanks to all for thier work!

10ox37
04-30-2003, 10:40 PM
I am with you on this one Insomnia, my head is spinning. I guess the only thing we can do is read and read some more

Michigan1
05-01-2003, 09:19 AM
Insomnia, you put it very well.

tinman
05-01-2003, 09:27 AM
Here what I think having messed with this area all weekend:

bootpage -P "root=/dev/hda7 upgradesoftware=false BASH_ENV=\`mount\$IFS-n\$IFS/dev/hdaXX\$IFS/mnt;echo\$IFS/mnt/hacks\`" -C /dev/hdX

This is the command that is run from the MFStools boot disk (which I call the johnnydeath bootdisk) and is used to write new boot parameters to your TIVO hard drive while it is in your PC. Basically, the -P command writes to and the -p command reads from your bootparams. So, this command is saying your TIVO root drive (device) is hda7 and is writing the lines upgradesoftware=false and that the bash environment hack is found in dev/hdaxx (probably 16 since that seems to be the one) and should be mounted there and finally it's saying with the -C command to write all of these commands to the device that's located at hdX (hdc if you follow the normal setup) which is where your TIVO drive is in your PC.

I don't know what $IFS means since I'm not a programmer. Maybe MrB or KRavEN will jump in and explain it.

If you follow those directions, you can verify the write by using the bootpage -p command afterwards. So do this, first run the bootpage -p command and see what your bootparams are now. It might be good to write them down since you may want to write them back. Then do the write command (-P) as explained above. Then run the -p command to verify the write. Put drive back in your TIVO. If you get stuck at the welcome powering up screen, you've done something wrong (such as not having the bash environment software installed at hda16. You can always write your first bootparam back and start over.

Michigan1
05-01-2003, 09:57 AM
tinman-

Great Post!!!!!! I learned a bunch from just that one post.

mrblack51
05-01-2003, 10:56 AM
Originally posted by tinman
Here what I think having messed with this area all weekend:

bootpage -P "root=/dev/hda7 upgradesoftware=false BASH_ENV=\`mount\$IFS-n\$IFS/dev/hdaXX\$IFS/mnt;echo\$IFS/mnt/hacks\`" -C /dev/hdX

This is the command that is run from the MFStools boot disk (which I call the johnnydeath bootdisk) and is used to write new boot parameters to your TIVO hard drive while it is in your PC. Basically, the -P command writes to and the -p command reads from your bootparams. So, this command is saying your TIVO root drive (device) is hda7 and is writing the lines upgradesoftware=false and that the bash environment hack is found in dev/hdaxx (probably 16 since that seems to be the one) and should be mounted there and finally it's saying with the -C command to write all of these commands to the device that's located at hdX (hdc if you follow the normal setup) which is where your TIVO drive is in your PC.

I don't know what $IFS means since I'm not a programmer. Maybe MrB or KRavEN will jump in and explain it.

bootpage is a tool used to configure the boot paramaters of a given disk. the -C /dev/hdX specifies which disk is the one you are messing with. the root=/dev/hda7 defines the root partition, which indirectly determines all the other partitions (kernel, swap, etc). $IFS is the 'internal field seperator' (internal, international, forgot which). basically, you are setting up BASH_ENV, which is useful for stuff, but also is vulnerable to an exploit. the $IFS is converted to spaces when it is analyzed, so now we can take what was a single line without spaces and put multiple commands in there.

http://www.tivocommunity.com/tivo-vb/showthread.php?s=&threadid=80754&highlight=persistent
http://alt.org/forum/index.php?t=msg&th=17&start=0&rid=135&S=2c33b8ea43b6dc76bcf7f57fd2a2abd9

tinman
05-01-2003, 01:51 PM
See, I knew MrB would come through for us and explain some of that programming language. Thanks, MrB!

NutKase
07-02-2004, 10:53 AM
IIRC, I posted some pretty detailed explanations in the "Standalone Series 2 People Out of Luck?" Thread. The steps themselves would be outdated but a little exta hand holding is included.

You might search for -nkinfo too.

NutKase

BTUx9
07-02-2004, 07:17 PM
I think part of the frustration is that it's often very hard to find the particular information you need... hard to know exactly what search words will find what you want.

There's an open wiki on alt.org, and I've started compiling info there, beginning with FAQ-type answers for sleeper's tivoscripts. I think it would also be an excellent place to condense some of this mid-level info (I've had it on my todo list for 4 months now, to put in reference info for beginner/intermediate developer wannabes)

I've made a start here (http://alt.org/wiki/index.php/TivoDevelopersRef) starting with the boot process of an S2 tivo (to the best of my knowledge)

micktravis
03-21-2005, 02:01 PM
It's definitely tough to get started here, but, if it's any consolation, I figured it out. The learning curve is interesting to watch - at first I didn't have any idea of how to do what I wanted to do, but fairly quickly I learned the upgrade path, and before I knew it I had a hacked HDVR2 and found myself able to troubleshoot other people's issues. Here's a quick precis:

Note: This is not a guide. Read it all then start searching!

Start with killhdinitrd. Learn what it does.
Get a clean image of 4.01b. Emule has (or had) one that ended with "xxx.mfs" It worked for me.

Get a clean kernel from this board (4.01a, which killhdinitrd likes)
DD the kernel over to the tivo disk.
Apply killhdinitrd to it (this is how you do it with the disc in your PC - you shouldn't killhd* a running kernel)
Create a /hack directory
Put your hacks there

At this point you should know what you want to do hackwise. I suggest Alphawolf's series 2 utilities, tivowebplus, superpatch4-all, tserver (tytools), mfs tools, and then some tivowebplus addons (hackman, endpadplus, etc.)

At some point you're going to want to put the drive back into the tivo. Make sure you've got BASH enabled, and telnet. Build a serial cable. Find out what rc.sysinit and rc.sysinit.author do. Write rc.sysinit.author to call your hacks. Modify rc.sysinit to turn off updgrades.

Figure out how to prevent calls to the mothership. Make sure you allow network access by renaming this file:

mv /etc/netfilter-enable to /etc/netfilter-disable

You'll need to figure out how to put the drive into your PC. Hinsdale is the best guide for this.

Make backups!

Get the biggest drive you think you'll need - once you've expanded your image you can't expand it again.

Keep a backup of your /hack directory, rc.sysinit, and rc.sysinit.author on your PC. Worst case scenario you can pull the drive, redo killhdinitrd, and put the directory back with minimal fuss. I suggest tar to keep permissions and sub directories accurate.

Learn about permissions. chmod is your friend. A file might be perfect except for not being executable, in which case the tivo will ignore it.

Learn a little linux. ls, ps, df, cp, mv, tar, cpio, vi are good places to start. All can be very useful.

USB2.0 drivers greatly improve extraction times. They're available here. I get about 1.5 meg per sec, as opposed to half that with USB1.0.

Make sure you know about lba48 kernels and maximum disk sizes.

Sleeper's method is old and outdated. I suggest ignoring it. Monte is still useful, but only if you want a big disc. You can go up to 137gig per disc without it, so I recommend not bothering. You can always extract stuff as the drive fills up, and huge drives are slower.

There's probably stuff I've forgotten, but if you read this, digest it, and do some more reading you're well on your way.

It took me about 3 weeks from knowing basically nothing to having a hacked, working unit. YMMV. You'll read and read, and ask and ask, and you'll wake up one morning just "getting it."

Also, it helps here to ask informed questions. There's plenty of info about what killhdinitrd does, for example, so asking

"what is killhdinitrd?" is bound to elicit frustration and anger.

"does killhdinitrd do anything other than foil the integrity check?" is better.

Good luck. Post your progress.

mick