Page 1 of 2 12 LastLast
Results 1 to 15 of 16

Thread: Newbie Guide to the HR10-250 Updated

  1. #1
    Join Date
    Aug 2004
    Posts
    63

    Newbie Guide to the HR10-250 Updated

    This is an updated version of my original Newbie Guide to the HR10-250, updated to version 6.3 and with extraction instructions. I've posted the versions of the binary files that I use. These are not guaranteed to be the latest versions. See the appropriate threads for the latest versions of these binaries.

    Mark

    Here's a newbie guide to hacking the HR10-250 (HDTivo or HDT)

    Common Questions:

    [1] Do I need to program the PROM to hack the HDT?

    A. No. At one time you needed to, until the HDTeam figured out how to alter the boot so that software from the drive is run in a normal linux fashion. Now, it's all software.

    [2] Do I need to take my HDT apart to hack it?

    A. Yes, you need to do things to the hard drive (such as back it up).

    [3] What do I get when I'm done?

    A. With the current generation of stuff, you get ethernet access (via a USB ethernet adapter you buy), FTP access to the Tivo files, FTP access to the Tivo Videos, a Web-based Tivo control system, and the ability to save Tivo files to a networked PC hard drive (encrypted or unencrypted or in MPG format).

    [4] How big are Tivo files?

    A. For standard definition you can expect about 1-5GB/hour. For high definition it's about 5-10GB/hour. Size varies all over the place depending on how much compression DirectTV has applied to the video (how much bandwidth they allot the show).

    [5] Can I use a Linux computer for editing drives rather than booting with the MFSTools CD.

    Yes, I recommend that. Standard X86 based linux stores the partition table in a different byte order so you will need to run tivopart. The syntax is
    tivopart.i686 r /dev/hdc
    You can test that this ran correctly by trying to mount the drive data. Create a /mnt/tivo folder if you don't have one then
    mount /dev/hdc4 /mnt/tivo
    If you can view the files after it's mounted then everything is ready. Note that the files flipflop from hdc4 to hdc7 depending on version.
    Attached Files Attached Files
    Last edited by MarkZ; 05-27-2007 at 05:50 PM.

  2. #2
    Join Date
    Aug 2004
    Posts
    63

    Step 1 - Copy the Drive

    A. The first thing you will need to do is remove the hard drive from the Tivo. This has been discussed elsewhere, but you need to remove the cover (5 screws in back) and then remove the hard drive bracket (2 screws on bracket) and disconnect the drive cables. The drive then comes out on the mounting platter.

    B. Remove the drive from the mounting platter then take your new blank 250GB drive (you must have a blank for a copy unless you're an ***** and want to mess up your existing drive when you screw up) and put both into a linux computer (preferably) or windows computer. DO NOT BOOT INTO WINDOWS with the drives installed.

    C. Take an MFSTools CD and boot from CD with the drives installed. If you have a linux computer you can just add both drives into the computer and power it on.

    D. Copy the original Tivo drive to your new blank drive. Assuming the Tivo drive is primary slave (hdb) and the blank is secondary master (hdc).

    1. You can get a serious speed increase by enabling DMA first (on a linux box this is usually the default), to do that type

    hdparm -d1 /dev/hdb
    hdparm -d1 /dev/hdc

    2. You want to run dd (the linux diskcopy command) as...

    dd if=/dev/hdb of=/dev/hdc

    In typical Linux fashion dd says nothing while it's running but on my mediocre linux box it took about 6.5 hours to make the copy. Just be patient.

    E. When the copy completes, do a shutdown and power down the computer then take your original drive and put it somewhere dry and not-hot for storage. We have a bit more to do on the blank before putting it back in the Tivo although you might want to reinsert it and boot the Tivo to make sure everything worked ok.
    Last edited by MarkZ; 05-26-2007 at 08:39 AM.

  3. #3
    Join Date
    Aug 2004
    Posts
    63

    Step 2 - Run killhdinitrd on the active kernel (3.1.5)

    By default the Tivo will go through a sequence that ignores / rewrites files you put on the drive. To defeat this you must run killhdinitrd on the drive.
    See here killhdinitrd thread for killhdinitrd.

    Following instructions all pertain to the new copy of the drive (the original is stored somewhere safe). My assumption is that your Tivo has version 3.1.5 on it (the original version with the DTivo). The best version is 3.1.5e for further work (the kernel can be used with 6.3).

    Insert the drive into your computer (again) and we'll assume it's secondary master (hdc). If primary slave use hdb below. For ease of use put killhdinitrd on a CD or floppy for use once the computer is booted.

    A. Boot the PC using the MFSTools CD. On a linux computer just boot the computer and rearrange the partition table for the Tivo drive (see the first post).

    B. Copy the kernel somewhere else on your computer if at all possible. This can be done using dd
    dd if=/dev/hdc6 of=kernel3_1_5.orig
    this should create a 2MB file copy of your kernel (the entire 6th partition).

    C. Insert the CD/floppy with killhdinitrd on it and run

    killhdinitrd /dev/hdc6

    which says to patch partition 6 of the secondary master. Other partitions should gracefully fail if you mistype. This patch takes almost no time but killhdinitrd will print a nice success message if it works.

    D. Save the hacked kernel, as well, if at all possible.
    dd if=/dev/hdc6 of=kernel3_1_5.hack

    Note that as versions get updated to the drive the kernel resides on either partition 3 or partition 6 (it ping pongs back and forth with each version).

    Note that you can not run killhdinitrd on version 6.3.


    The next step also edits the drive so don't turn things off. Just go to step 3.
    Last edited by MarkZ; 05-26-2007 at 09:16 AM.

  4. #4
    Join Date
    Aug 2004
    Posts
    63

    Step 3 - Create the startup script (3.1.5)

    These instructions pertain to version 3.1.5 only. If you have version 6.3 already then read on.

    Now you need to enable the USB ports and add a driver for your ethernet adapter and enable bash/telnet (login). That's all done with one simple little file named rc.sysinit.author in the /etc/rc.d directory that gets autorun at boot.

    A. Mount the 7th partition (the standard tivo root) so you can access the files on it. Do this by typing

    mount /dev/hdc7 /mnt/tivo

    Note that MFSTools bootup has an /mnt/tivo folder for you to mount to. If using standard Linux you will need to create a /mnt/tivo folder.

    B. Create the bootup file. There are lots of ways to do this, the easiest is to create an empty file and then use vi (the standard unix editor) to edit the file. A simpler approach is to build the file on your pc first and then copy it to CD and then to the Tivo.

    filename: rc.sysinit.author
    directory: /mnt/tivo/etc/rc.d

    Note that caps are important in unix so use all lower case for all of this.

    The file contents depend on what USB/ethernet adapter you are using. I used a Linksys USB200M (USB 2.0 ->ethernet adapter) but lots of others work.

    My starting rc.sysinit.author file:

    #install usb and ethernet drivers
    insmod /lib/modules/usbcore.o
    insmod /lib/modules/ehci-hcd.o
    insmod /lib/modules/ax8817x.o
    sleep 10

    #configure ethernet
    ifconfig eth0 192.168.0.19 broadcast 192.168.0.255 netmask 255.255.255.0
    sleep 100

    #telnet
    tnlited 23 /bin/bash -login &

    #ftp
    /etc/rc.d/tivoftpd.mips

    Lines that start with # are comments. The modules listed here (except for tivoftpd.mips) all come with the HDTivo. This should enable bash, ftp, your usb port and ethernet adapter. See the forum for instructions for other adapters.

    When you're done editing the file (or have copied it over) make sure you make it executable

    chmod +x rc.sysinit.author

    Now, copy over the ftp program to /etc/rc.d (not really the right place for it, but it works) and make it executable using lines such as...

    cp /mnt/cdrom/tivoftpd.mips /mnt/tivo/etc/rc.d
    chmod +x /mnt/tivo/etc/rc.d/tivoftpd.mips

    Finally, unmount the drive to avoid writing anything further to it.

    cd /
    umount /mnt/tivo

    Things you may do differently

    a) The first four lines initialize the usb and ethernet. Set them for your hardware.

    b) The ifconfig line sets the ethernet for my local network (based at 192.168.0.x with a free spot at 192.168.0.19).
    Last edited by MarkZ; 05-26-2007 at 09:12 AM.

  5. #5
    Join Date
    Aug 2004
    Posts
    63

    Step 2a - Run killhdinitrd on the active kernel (6.3)

    If you have version 6.3 already installed, you'll need to find a 3.1.5e kernel. If you followed my original instructions with 3.1.5 you saved a version of the kernel (original and hacked).

    This is easiest done by inserting the drive into a Linux computer. If you don't have a linux computer you'll need the MFSTools CD and a way to put a few files onto the drive and save a few files.

    I'll assume you're inserted into a linux x86 computer. The following steps will save your active kernel then replace it with an older hacked kernel. As far as I can tell the old kernel works fine with the exception of the dhcp client.

    A. Power on the computer

    B. Rearrange the partition table using tivopart. The syntax is
    tivopart.i686 r /dev/hdc

    C. Find the active partition. You can use bootpage for that.
    bootpage -p /dev/hdc
    This will be either partition 3 or 6 for the kernel (4 or 7 is active). I'll assume 3 for the next two steps.

    D. Back up the active kernel.
    dd if=/dev/hdc3 of=kernel6_3a.orig

    E. Put the hacked 3.1.5 kernel in place of the 6.3 kernel
    dd if=kernel3_1_5.hack of=/dev/hdc3
    If the kernel wasn't hacked just run killhdinitrd as in the 3.1.5 step after you copy it in.
    Attached Files Attached Files
    Last edited by MarkZ; 05-27-2007 at 05:33 PM.

  6. #6
    Join Date
    Aug 2004
    Posts
    63

    Step 3a - Create the startup script (6.3)

    Version 6.3 is quite different from the original 3.1.5. It has most of the USB drivers built in. For my linksys USB200M I need no drivers at all.

    Conversely, you can not set the IP address the same way as in 3.1.5. In 6.3 the IP address is set via MFS, since 6.3 support networking natively. You probably could find a way to use dhcp (although the 3.1.5 kernel doesn't work right with dhcp I think) but I prefer a fixed address.

    So, setting up the startup script with an IP address requires two files in 6.3. The startup script file (/etc/rc.d/rc.sysinit.author) and a tcl script to update the IP address. You can combine this into a single operation, though.

    A. Create the rc.sysinit.author file using VI or some other text editor (I use gedit). Make sure it has no carriage returns in it (Unix standard). Here's my current file (the Echo statements just help with debugging if something fails).
    #!/bin/bash
    echo "Starting rc.sysinit.author"

    #export list... I'm not sure what's really needed here
    export MFS_DEVICE=/dev/hda10
    export IGNOREEOF=1000
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib/modules:/usr/local/lib:/lib
    export TERM=xterm
    export PS1='\h:\w$ '
    export TERMINFO=/usr/local/terminfo

    #this sets up the ip address for the next boot cycle
    #syntax: netconfig.tcl IPaddress SubnetMask Gateway DNSServer
    /etc/rc.d/netconfig.tcl 192.168.0.19 255.255.255.0 192.168.0.1 192.168.0.1
    echo "Ran netconfig"

    #run telnet
    tnlited 23 /bin/bash -login &

    #disable the firewall
    /sbin/iptables -F

    #start ftp
    /var/hack/tivoftpd

    B. Put the file into /etc/rc.d. Don't forget to mark it executable.

    C. Get the netconfig.tcl file and put it into /etc/rc.d as well. Mark it executable, as well.

    Note that you really only need to run netconfig once, and it doesn't take effect until a reboot (so you'll need to boot the Tivo twice with this setup). You could remove the netconfig line later if you wish.
    Attached Files Attached Files
    Last edited by MarkZ; 09-01-2007 at 11:49 AM. Reason: add iptables firewall disable

  7. #7
    Join Date
    Aug 2004
    Posts
    63

    Step 4 - Test your patches

    Finally it's time to really put the drive-copy into the tivo. The number of screws you use for this step depends on your confidence level (I used none).

    1. Install the drive in your HDTivo and close the case.

    2. Before you apply power connect the USB/ethernet adapter.

    3. Power up the Tivo. Turn on the TV during this process.

    You should see the usual starting up... screen and then the just a few more moments screen. If you don't see the usual sequence you've done something like hookup the hard disk incorrectly.

    4. After the screen goes blank for standby mode look at the ethernet adapter. The lights showing power should be on and (if it's already in your network) it should have some read/transmit lights on. If you've upgraded to 6.3x you'll need to reboot the Tivo once (the IP configuration is set but not being used yet).

    5. Try to find the tivo from your other network computers. I use ping to find it. Remember from step 3 that my Tivo is at 192.168.0.19 so I used

    ping 192.168.0.19

    This should find the Tivo and return a ping result. If this fails you're fated to remove the drive again and try to figure out what went wrong. Most likely rc.sysinit.author is not executable or your module set is incorrect for the adapter.

    6. See if you can telnet into the tivo. Use the Run command (Start / Run) to run telnet 192.168.0.19 (use the ip address you set in ifconfig). If telnet connects then you're golden. You can enable ftp, make stuff executable, and generally fix whatever may be wrong. I usually use Putty as the telnet client but the windows telnet works.

    7. See if you can ftp into the tivo. Run internet explorer and type ftp://192.168.0.19 in the address bar (use the ip address you set in ifconfig). If the ftp site comes up then everything is working. You can use ftp to transfer in a new rc.sysinit.author (if needed) and to transfer in any other utilities you want.
    Last edited by MarkZ; 09-14-2007 at 05:16 PM.

  8. #8
    Join Date
    Aug 2004
    Posts
    63
    You'll probably want to patch your Tivo to at a minimum remove content security. See here
    Version 6.3 patch locations.

    or here for 6.3e

    Version 6.3e patches

    or here for 6.3f

    Version 6.3f patches

    or for 6.4a use this

    Version 6.4a patches

    What you do next depends on what you want to do with the tivo. Primarily, you can disable encryption, add a video ftp server, add a web control server.

    To Disable Encryption

    You can do this by changing four bytes in the tivoapp program. Use telnet (I use putty as the windows client) to do this by

    A. Make the root drive read/write.
    mount -o remount,rw /
    B. Copy the tivoapp program to a copy (just in case)
    cd /tvbin
    cp tivoapp tivoapp.original
    C. Change the bytes shown in the clickthroughs above
    echo -ne ... ... see above
    D. Make the drive read/only
    mount -o remount,ro /
    E. run restart to reboot the tivo.

    If you want to check that this worked there is a nice program ciphercheck.tcl that can tell you whether you've correctly done these steps. If you haven't, use the original tivoapp and try it again. I usually just record a short time, then try to play it back locally after downloading it.
    Last edited by MarkZ; 06-23-2008 at 09:39 PM. Reason: add 6.3e/f patch locations, more detail on rw syntax and 64a

  9. #9
    Join Date
    Aug 2004
    Posts
    63

    Getting the movies from your Tivo by drive

    Although this is covered in gory detail in the streaming & extraction forum, it's hard to find that detail.

    Every few months I used to pop the drive from my Tivo and insert it into a Linux computer (I use Redhat Linux). This makes extraction really easy. You can stream from the Tivo (see the post 2 below) but this is trivial and doesn't require a well hacked Tivo. It also works after your Tivo was upgraded. Note that now I use the gettyfiles program I wrote to get the files in chunks.

    The process is

    A. Insert the drive into your Linux computer
    B. Boot the linux computer
    C. Rearrange the partition table to be readable.
    D. Get a list of the movie slices.
    E. Get the slices as .ty files.
    F. Convert the .ty slices into .mpg slices

    I prefer a bunch of .mpg slices instead of big DVD compatible files. Each slice is approximately 500MB so they are easy to copy/view. When I first did this I created 3GB merged files (the DVD limit) but they were unwieldy.

    What tool to use for conversion isn't crisp. I've used TyTools but it isn't well supported and has a tendency to lose the audio. Now I use TyTompg, which seems to work remarkably well and is convenient in batch mode.
    Last edited by MarkZ; 09-01-2007 at 10:49 AM.

  10. #10
    Join Date
    Aug 2004
    Posts
    63

    Getting the movies from your Tivo (detail)

    Once the drive is inserted into your Linux computer and the partition table is rearranged....

    A. Get the slice listing.
    1. Find a copy of mfstools for your linux distribution/cpu. For redhat and my x86 computer I've included the mfstools I use.

    2. Get the stream list
    export MFS_DEVICE="/dev/hdc"
    ./mfs_streams >streamlist.txt
    The streamlist will look like this
    Listing streams in /Recording/NowShowingByClassic
    1596231 The Puffy Chairs 1629957 1629963 1629964 1629969 1629975 1629980 1629984
    1596209 Return of the Jedec 1626674 1626716 1626765 1626947 1627215 1627270 1627279 1627300
    1585635 The Daily Show Without Jon Stewart 1626284
    This shows two movies with a bunch of slices and one tv show with a single slice. The slice numbers are on the right.

    B. For each slice, extract it to a .ty file by using mfs_stream
    as in:
    ./mfs_stream 1629957 >/usr/local/PuffyA.ty
    I usually create a long batch(shell) file and run it to extract all of the slices in a single run. Obviously you need a pretty big hard drive on the Linux computer to do this. Do not put the .ty files on the Tivo drive.

    C. Once all of the slices are extracted you can put the Tivo drive back into the Tivo or you can just keep going.

    D. Convert each slice into a .mpg file.
    I do this from a PC networked to the Linux computer with shared directories, since the conversion program is a PC program. The syntax for a slice is
    tytompg -y -i PuffyA.ty -o "PuffyA.mpg"
    Attached Files Attached Files
    Last edited by MarkZ; 05-27-2007 at 05:41 PM.

  11. #11
    Join Date
    Aug 2004
    Posts
    63

    Getting the movies from your Tivo by network

    The problem with downloading files from the tivo is not only does it take a long time but there's no easy way to deal with those really large hd files.

    So, I wrote a little java app that downloads from the Tivo but in the original chunks (anywhere from 250MB to 1.2GB each). This is a lot more manageable than one large file.

    The program is not guaranteed (at all) but works for me. Ensure that you have NowShowing and a Tivo set of mfstools installed and in your local path on the Tivo (as well as dserver.tcl). Note that this is the same dserver.tcl as in tysuite with one additional command to stream a part. Check by just typing NowShowing and by typing mfs_streams on the Tivo.

    To use it, you must have java installed on your PC and then you can run the GetTy.bat file or do a java -jar gettyfiles.jar.

    1. Copy the dserver.tcl file over to your tivo and run it using a shell
      dserver.tcl 56178
      (the port number must match that in GetTyFiles but otherwise it doesn't matter).
    2. Run GetTyFiles and set the download directory, ip address, and port #.
    3. Click the refresh button to get a list of the downloadable content. If you don't get a list you don't have dserver.tcl running or at the right port.
    4. Select files you want to download and click the download button. Each file will produce multiple .ty files in the download directory named xxxA.ty xxxB.ty and so on.


    Mark
    Attached Files Attached Files
    Last edited by MarkZ; 09-01-2007 at 11:49 AM. Reason: update gettyfiles to support : in file names

  12. #12
    Join Date
    Sep 2002
    Posts
    65
    These are great instructions. This thread has been a great help. IS there something we should do to prevent the HR10-250 from downloading s/w updates and undoing everything I've done?

  13. #13
    Join Date
    Nov 2002
    Posts
    480
    Quote Originally Posted by opticalcarrier View Post
    These are great instructions. This thread has been a great help. IS there something we should do to prevent the HR10-250 from downloading s/w updates and undoing everything I've done?
    Read the first sentence in Step 2. Follow instructions.

  14. #14
    Join Date
    Jan 2005
    Posts
    997
    Quote Originally Posted by opticalcarrier View Post
    IS there something we should do to prevent the HR10-250 from downloading s/w updates and undoing everything I've done?
    You need to add 'upgradesoftware=false' to your bootpage arguments.
    ScanMan --> Just another Tivo hacker...
    Killhdinitrd SA S2 Monte S2 Unscramble Upgrade Tivo Software

  15. #15
    Join Date
    Aug 2004
    Posts
    4,085
    Quote Originally Posted by ScanMan View Post
    You need to add 'upgradesoftware=false' to your bootpage arguments.
    I also happened across this, which outlines other options on dtivos. It's a tivo wiki I hadn't seen before.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •