Welcome to The Tech 
Web www.thetechguide.com
Geeks with attitude
  • Home
  • How-To's
  • Tweaks
  • Hardware
  • Software
  • Games
  • Our Picks
  • Downloads
  • FAQ's
  • Forum
  • Chat
  • Tech Deals
  • Links
  • Email

  • Site News
    Our Black Friday section is now online! Click here to check it out.

    Active Discussions
    [an error occurred while processing this directive]


    Upgrading Your Hacked Series2 DirecTiVo to 6.2

    This is a howto on upgrading your already-hacked Series2 DirecTV DVR to 6.2. You do so at your own risk! You'll need at least some basic linux and TiVo knowledge to follow along. If you type blindly, you may come out ok, or you may end up with a dead TiVo. Also, the steps given may not be the best way to do certain things! This is what worked for "me", other ways may or may not work for you, but this worked for "me." I did it my way because I wanted a quick and easy way to get both upgraded to 6.2, and I admit I took some shortcuts with non-essential items (such as copying over the old busybox files instead of installing a newer package). I've also included some files that you may want to use, or you may not. Please read the guide before using any of the files. If at anytime you feel uncomfortable, then STOP! I am not responsible if you mess up your TiVo.

    You will need several files to complete this guide. First off, you need to download the slices via edonkey/emule. These may take a while to download, and are the most important. You need to have edonkey or emule running, and then click this link. If emule doesn't pick it up automatically, you'll need to enter it into emule manually.

    While you're waiting for that, download 62upgrade.zip. Next, download killhdinitrd from here. Lastly, download the superpatch-67all file from here. Unzip all the files into the same directory on your drive.

    You will need to run killhdinitrd from a linux box, cygwin may work, it may not. Support thread is here. If you have a FAT32 drive in your PC, you can boot to a Linux LiveCD (such as Knoppix) and run killhdinitrd on the kernel. After you changed to the directory with the files, you'd type:

    chmod 755 killhdinitrd
    ./killhdinitrd vmlinux-3.1.5-hacked.px

    Type YES to agree to the terms, pretty self-explanatory. If you don't have a FAT32 partition in your computer, there are other ways to accomplish this. If you have VMWare or Virtual PC, you can install linux in a virtual drive, connect to it via ftp, transfer the files over, run the commands above, then ftp them back to your main pc. If you have an actual linux server you can use (a webhost account that has ssh/telnet and ftp access would probably work fine), you can use that as well.

    Once the slices have been successfully downloaded, unrar them to a directory on your computer using WinRar. FTP all the files to your TiVo's /var/packages directory (from the root directory in your ftp client, select the var directory, then packages). Also ftp the dbload file included in the 62upgrade.zip file to /var/packages. Telnet to your TiVo. Type:

    mount -o remount,rw /

    This remounts your root partition writable. Next, type:

    cd /var/packages
    chmod 755 dbload
    gzip -d *gz
    mv loopset-dtv-Series2.slice loopset-dtv-Series2.slice.gz
    gzip -d *gz
    ./dbload GZ*
    ./dbload loopset*
    ./dbload swsystem*
    ./dbload utils*

    Ok, now you need to edit installSw.itcl in the /tvbin directory. You can probably use the one in the zip file provided, but it's not guaranteed. If you want to use it, ftp it to /tvbin/ and then type:

    chmod 755 /tvbin/installSw.itcl

    Otherwise, you can manually edit the one you have. I started with 4.0, your installSw.itcl may look different (it should be similar). First, change to the /tvbin directory:

    cd /tvbin
    joe installSw.itcl

    If you get an error starting joe, search for how to install it.

    Around line 86, change:

    set fSafe 0


    set fSafe 1

    Line 146, change:

    exec /var/utils/updateroot /dev/hda /install /var/packages >&@ stdout


    exec /var/utils/updateroot /dev/hda /install /var/packages $name >&@ stdout

    Line 156, change:



    exit 0

    That's all for installSw.itcl. Press Ctrl-K, then press X to save.

    If you had a monte install using the Sleeper's ISO (or a manual install where you used separate partitions, the "old" monte), your bootpage needs to be flipped. Please make sure you know what you're doing before you flip it! Make sure you have the old style monte, or used the Sleeper's ISO, before you use this. If you're not sure, then do not go any further!

    If you are absolutely sure you're using the old style monte, type:

    bootpage -f

    If you are using a killhdinitrd kernel, then you do not need to flip the bootpage. If you don't know, then do not go any further!!!

    Now, type:

    ./installSw.itcl 6.2-01-2-101

    If you get errors here, stop; if you can't figure out what went wrong then reflip the bootpage. If everything went ok, continue.

    If you have the old style monte, there's more you have to worry about. Type:

    bootpage -p

    You'll get something similar to this:

    No device name given, assuming /dev/hda
    root=/dev/hda4 dsscon=true console=2,115200 BASH_ENV=`mount$IFS-n$IFS/dev/hda $IFS/mnt;echo$IFS/mnt/runmonte`

    Now, we need to change this. You MUST keep the root=/dev/hdaX part the same as the output you saw above. It will either be hda4 or hda7 (I will assume it is hda4, if someone does a blind copy/paste and I have hdaX, it will not boot; if I choose one of the other, there's a 50% chance they'll be lucky). Type:

    bootpage -P "root=/dev/hda4 dsscon=true console=2,115200 upgradesoftware=false"

    Note that the above is all one line, it may be displayed in your browser on two lines but you must type it all on one line. Substitute the root=/dev/hda4 with the output you got above, it will either be hda4 or hda7. This is very important! If you just copy/paste exactly what I have without changing the root= part, you have a 50% chance of your TiVo becoming unbootable! Make sure the changes took, type:

    bootpage -p

    You should get:

    root=/dev/hda4 dsscon=true console=2,115200 upgradesoftware=false

    /dev/hda4 may be /dev/hda7, depending on what you typed earlier

    Now, take the killhdinitrd'd 3.1.5 kernel, ftp it to /var. Type:

    dd if=vmlinux-3.1.5-hacked.px of=/dev/hda3

    It will either be /dev/hda3 or /dev/hda6. Remember the bootpage command? The kernel will be one less than what was in the bootpage results. So if you had root=/dev/hda4, then you would type:

    dd if=vmlinux-3.1.5-hacked.px of=/dev/hda3

    If you had root=/dev/hda7, then you would type:

    dd if=vmlinux-3.1.5-hacked.px of=/dev/hda6

    Note, if in doubt, type both commands. It should not hurt anything to copy the kernel to both hda3 and hda6, since you no longer will be using a monte setup.

    You need to mount the new root partition, again assuming a new root of /dev/hda4:

    mount /dev/hda4 /install

    Next, we need to copy some of our old files over to the new partitions. Type:

    cp /bin/tivoftpd /install/bin/
    cp /bin/hostname /install/bin/
    cp /bin/dir /install/bin/
    cp /etc/rc.d/rc.sysinit.author /install/etc/rc.d/

    I didn't have to chmod these files, but you may want to just in case. The commands would be:

    chmod 755 /install/bin/*
    chmod 755 /install/etc/rc.d/rc.sysinit.author

    Now, we need to disable the netfilter and dhclient (if you want to use dhcp then you can leave dhclient alone; I have not tried dhcp and can't guarantee it'd work, but others have reported it works fine).

    cp /install/etc/netfilter-enable /install/etc/netfilter-enable.bak
    cp /install/etc/netfilter-disable /install/etc/netfilter-enable
    mv /install/sbin/dhclient /install/sbin/dhclient.bak

    Important change if you're using this guide with 6.3! If you're using this guide to upgrade to 6.3, you MUST do one additional step now. Run these commands, else you will end up in a reboot loop.

    mv /install/sbin/iptables /install/sbin/iptables.bak
    echo -e '#!/bin/bash\nexit 0' > /install/sbin/iptables
    chmod 755 /install/sbin/iptables

    Now, change to the /etc/rc.d directory on the new root, remember to add the /install!

    cd /install/etc/rc.d

    Ok, now we need to edit your rc.sysinit.author file.

    joe rc.sysinit.author

    This will open up rc.sysinit.author in your joe editor. There are a few things you will want to take out or comment, so they will not load. If you were running 3.1.1 before, then you need to take out the lines that loaded the network drivers. Either delete or comment like so:

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

    Next we need to set the IP address. If you had 4.0 it's possible you never set this up, if you had 3.1.1 then you already have this. If you want to use dhcp, you can leave this out, but I won't guarantee it'll work (it should, but no guarantees). My example below has the IP address set to, and the gateway is If your IP addresses are in a different range you may need to change a few things, the main one being the broadcast IP (it generally is the same as the ip address, except with 255 at the end).

    #Set the IP address
    ifconfig eth0 broadcast netmask
    route add default gw netmask metric 1

    Ok, now edit out any lines that load mfs_ftp, tivoweb, and most importantly kmem! Now hit Ctrl-K, then X. This will exit joe, saving your changes.

    At this point, it'd be a good idea to double-check everything. If you reboot now and something wasn't done right, your TiVo will most likely not boot up, or you won't have access to it via the network. Worst case would probably be that you have to open it up and use a utilities cd to figure out what went wrong and fix it. How to fix a non-booting TiVo is beyond the scope of this how-to, but I'd start by flipping the bootpage around again, dd'ing the kernel to both hda3 and hda6, etc.

    Now, cross your fingers and reboot. I'd just reboot from the TiVo menus, you could probably type "restart" and have the same results, but it's possible that'd just kill the processes but not actually reboot. If so, just unplug and plug back in. If you did everything right, then in a couple minutes you'll see a screen that says its updating. This may take a while, and the TiVo will not be reachable via the network. Once it reboots itself, networking should come up before the main screen does. Once it's done, telnet in. We have a few more things to do.

    Remount the root partition writable:

    mount -o remount,rw /

    Now we need to mount the old root partition. By now you've probably forgotten what was hda4 and hda7, so let's just double-check. Type:

    cat /etc/fstab

    And you'll get something like:

    /dev/hda4 / ext2 ro 1 1
    /dev/hda9 /var ext2 rw 1 2
    /dev/hda8 swap swap defaults 0 0

    The first line has hda4, so the old root is hda7. If it had said hda7, then the old root would have been hda4. Assuming hda7 is the old root, type:

    mount /dev/hda7 /install

    We're going to copy some old files over, but we don't want to overwrite any newer versions. We get around this by copying the new files over the old, any that aren't overwritten, were not part of the original TiVo installation. When we're copying the files back over, you may get a "Text file busy" message, that can be safely ignored.

    cp -rd /bin/* /install/bin/
    cp -rd /install/bin/* /bin/
    cp -rd /install/busybox /
    cp -r /install/usr /

    Again, I didn't have to do a chmod, but if you want to, the commands would be:

    chmod 755 /bin/*
    chmod 755 /busybox/*

    Open your ftp client and connect to the TiVo. You need to ftp superpatch-67all-NutKase-1.0.zip and netconfig.tcl to the var directory.

    In your telnet client, change to the /var directory and unzip the superpatch file.

    cd /var
    unzip superpatch-67all-NutKase-1.0.zip

    We need to chmod the tcl files, quick way is:

    chmod 755 *tcl

    This next step is purely optional. I did not like the idea of having backdoors always enabled, and running the superpatch does this. I edited out the line that enabled backdoors. Open superpatch-67all-NutKase-1.0.tcl with joe:

    joe superpatch-67all-NutKase-1.0.tcl

    Around line 102 you see this:

    array set patch_6_2 {

    0x00a67d58 "1040001d 1440001d"
    0x00ae521c "00008821 24100001"

    0x0053412c "00408021 24100001"
    0x00542fe4 "00408021 24100001"
    0x0055a9d4 "00408021 24100001"

    Take out that second line with the hex numbers, so it'll be:

    array set patch_6_2 {

    0x00a67d58 "1040001d 1440001d"

    0x0053412c "00408021 24100001"
    0x00542fe4 "00408021 24100001"
    0x0055a9d4 "00408021 24100001"

    Close the file by pressing Ctrl-K, then X.

    Now run the superpatch.


    If you are upgrading from 4.0, had networking setup, and are using the same ip address as before, this step is not needed. If you are upgrading from 3.1.1 or never setup networking in 4.0, then this part is required to be able to use HMO and MRV. We need to have the network values entered in mfs, make sure the values you use here are the same as in your rc.sysinit.author file. The syntax for netconfig.tcl is "./netconfig.tcl ipaddress subnetmask defaultgateway dns-server" without quotes. Using the sample values we used earlier in this guide, the command would be:


    In this example, is the ip address, is the subnet mask, the first entry is the gateway address, and the second entry is the dns server (you may substitute an actual dns server address, but this is unneeded and possibly undesired for most setups).

    Lastly, we need to name our TiVo, you can pick something other than LivingRoom:

    ./set_mrv_name_67.tcl LivingRoom

    Ok, you're pretty much done. You can stop here, but you may get nags about not calling in. Use the fakecall.tcl provided in the zip file. If you used sleeper's iso in the past, you probably have a file named fixsub.31.tcl in your /usr/scripts directory, and a line that says "/usr/scripts/callfixsub.sh /usr/scripts &" near the bottom of rc.sysinit.author. You can check this by typing:

    dir /usr/scripts

    If you see callfixsub.sh and fixsub31.tcl, then check your rc.sysinit.author:

    cat /etc/rc.d/rc.sysinit.author

    See a line that says "/usr/scripts/callfixsub.sh /usr/scripts &" anywhere? If so, then here's the easy way to get it going. Ftp fakecall.tcl to your /usr/scripts directory (from the root directory in your ftp client, select usr, then scripts). From your telnet window, type:

    mv fixsub31.tcl fixsub31.tcl.bak
    mv fakecall.tcl fixsub31.tcl
    chmod 755 *

    You can of course use other methods to call fakecall, cron would be a good choice, but this is a quick and easy way to do it. It's not necessary, but does stop the nags.

    Questions? Ask in the forum or email me.

    For the Privacy Policy, click here.
    Past Articles
  • Build your own Apple Clone
  • AllofMP3 Review
  • Tutorial to Basic Windows 2000 DOS
  • Extracting and joining MPG2 files from SVCD
  • Modifying your Windows XP Boot Logo
  • Unlocking WinXP's setupp.ini
  • Making a Full Screen Bios Logo
  • Making your WinMe CD bootable
  • Auto-insert your Win9x serial
  • Auto-insert your Office2kserial
  • Why FedEx Sucks