6.2 Slice Upgrade Guide
Last updated: 8.17.05 12:00 PM
David Dellanave - ddn - projects - david

In standard form, this guide is a composition of information from DDB. The Only Druid has posted a lengthy description of everything you would want to know about 6.2. However, despite cries to the contrary, it seems that a step-by-step guide remains useful. If you start to notice how similiar this is to the 4.x Installation Guide you are probably starting to actually learn what is going on as opposed to just typing commands. As usual, thanks are in order to the people who figure this stuff out to begin with. If only they were a little friendlier. AlphaWolf, rc3105, adh and others deserve thanks. Of course, I'd like to improve this guide, so any SPECIFIC suggestions are welcome. - ddn


# This guide serves people who wish to upgrade to 6.2 via slices (retaining all settings and shows) from 3.1.1 or 4.0.1 to 6.2. At this point, there are no instructions here to intially hack your TiVo to gain network access to this upgrade. For now, thats an exercise for the reader. If you're at 4.0.1, you already have network access, if you're at 3.1.1e I suggest PTVnet to get network access.

# This guide assumes you have a working knowledge of unix and linux. While I believe the steps here are fool-proof, it doesn't always seem to be the case. This is not a tutorial, and I will not answer basic Unix questions. I did this in one day with tremendous previous Linux experience, and ZERO Tivo hacking experience.

If you have no Linux/Unix experience, you will become frustrated if things don't work exactly as they should. I suggest a beginner tutorial in Linux. It should get you started on the basic commands.

### You will need a USB Ethernet adapter to complete this and use all your new features. A serial cable is not necessary to complete this guide. However, if it doesn't work a serial cable is mandatory for figuring out whats wrong. Get yourself over to 9th tee and get a TiVo Null Modem Serial Cable. Or make yourself one. Go get yourself a USB200M or USB10TX or similar.

#### I applied this to my SD-DVR40. This guide applies to both RID and Non-RID TiVos. Unlike the 4.x guide, RID is not an issue here. Carry on.

##### This guide uses LBA48 kernels etc. Technically you only need to do this if you plan to use disks larger than 137GB. However, I know of no reason that using LBA48 with smaller disks would cause a problem, so there is no reason not to.

*** Hard to read?   Click here for fancy stuff around the commands.

1: Download the following files into a directory. Unzip zips, and unrar rars. Leave .tar's intact.

62 init_framework_ddn.tgz Download Local
This is a simple init_framework including the kernel AlphaWolf posted in his init. Hopefully you don't mind.
Download here

tivotools.tar (extract it from the .rar file)

Download here
Only needed if using PTVnet to initially hack the TiVo (or tivotools wasn't installed)
Clicking these links and downloading the attachments is not a substitute for reading EACH of the threads they were posted in. You will gain a tremendous amount of knowledge of each utility, and answer any questions you might have.

2. Download a set of 6.2 slices. I would really like to host these locally, and since 6.2 is germane on DTivo hopefully I can. For now:



3. The 6.2 slices you've download contain an error in them, so we'll unpack them, fix it, and just package up the ones you need.

3a) Unzip the 62_dtivo_slices.zip file.
3b) Take a look at the index.txt file (Notepad won't display the Unix line endings correctly, use Wordpad or Metapad). Your TiVo service number should start with 3 digits. Yup, look on the back of the TiVo. On my SD-DVR80, it is 321. In the file you'll see the slices for each service number. For example, my DVR80 needs 6.2-01-2-321. The string "6.2-01-2-321" is important, write it down or remember it. So I want these files:


3c) Figure out which ones you need, and un-gzip each one of them. Then un-gzip loopset-dtv-Series2.slice.gz, and THEN do it AGAIN to the same file. On Linux you need to rename the file to .gz again otherwise it won't recognize it as a gzip file. This could all be done quite easily on the TiVo, but now with those 5 files you have a nice package you don't have to mess with again.

4. Upload the 5 6.2 slices to the TiVo into /var/packages/. Since I use Linux as my main system, I usually tar these 5 files up into a tarball, and just upload that. Also upload the tivotools AIO toolset if you TiVo doesn't have it or lacks the dbload command.

ftp # FTP to the IP of the tivo
cd /var/packages/
put GZcore-44090111-2.slice
put GZkernel-44090113-2.slice
put swsystem-44090120-2.slice
put utils-44090115-2.slice
put loopset-dtv-Series2.slice
put tivotools.tar

4. Telnet into the TiVo and execute this command to load the slices into the database:

mount -o remount,rw / # Get this out of the way, although not needed until later

mkdir /tivo-bin/ # If you don't have tivotools
cd /tivo-bin # If you don't have tivotools
mv /var/packages/tivotools.tar ./ # If you don't have tivotools
tar -xvf tivotools.tar # If you don't have tivotools

cd /var/packages
/tivo-bin/dbload *.slice
# You might have your toolset in /busybox instead of /tivo-bin.

5. Two modifications must be made to the installSw.itcl script. One is to remove the reboot command, the other is to add an extra argument ($name) to the updateroot command call. If this is nonsense to you, well, thats fine.

vi /tvbin/installSw.itcl # a vi quickstart guide

Original: file mkdir /var/utils
exec $env(TIVO_ROOT)/tvbin/jpm -p $fil
putlog "Executing updateroot /dev/hda /install /var/packages"
exec /var/utils/updateroot /dev/hda /install /var/packages >&@ stdout
$swsys setActive
# Clean up
Edited: file mkdir /var/utils
exec $env(TIVO_ROOT)/tvbin/jpm -p $fil
putlog "Executing updateroot /dev/hda /install /var/packages $name"
exec /var/utils/updateroot /dev/hda /install /var/packages $name >&@ stdout
$swsys setActive
# Clean up

Original: # Say goodbye
putlog "Attempting reboot..."
} else {
putlog "ERROR could not find the utils archive"
Edited: # Say goodbye
putlog "Attempting reboot..."
putlog "..not rebooting.."
exit 0 #reboot

} else {
putlog "ERROR could not find the utils archive"

6. Time to let TiVo update the software. Hopefully all goes well here. Keep an eye on the output and see which partition (hda4 or hda7) the new root goes to. I have actually experienced errors here that should occur when the installSw.itcl file isn't edited, but was. A lot of people are having problems with the installSw script and I suspect that a lot of the issues stem from copying the file to a PC to edit it. You really need to be careful when you're doing that not to screw up line endings or anything else. Maybe even more importantly, if you DO use vi, make sure not to screw up anything else in the file.

/tvbin/installSw.itcl 6.2-01-2-321 # Yes, that number from before is what you insert here to tell the TiVo, "Hey update to this software version from the MFS database".

7. All went well? I sure hope so. installSw.itcl will have installed a new root and flipped the bootpage, so if you reboot now everything will work but your system will revert to being "unhacked". Take note of the new root ie: "Old root is on /dev/hda7, new one goes on /dev/hda4". Hopefully you have some idea of where your hacks are, so you can make sure you get everything.

mkdir /tivo
mount /dev/hda4 /tivo # Mount the new tivo root to /tivo (hda4 or hda7).
cp -Rfpd /tivo-bin /tivo/
cp /etc/rc.d/rc.sysinit.author /tivo/etc/rc.d/
cp -Rfpd /hacks/ /tivo/ # If you have /hacks
cp -Rfpd /ptvupgrade/ /tivo/ # If you used PTVnet
mkdir /tivo/init
cp -Rfpd /init/ptvflags /tivo/init/
cp -Rfpd /var/hacks/ /tivo/ # If you have /var/hacks

** At this point you have a choice. You can either install a monte or chainload configuration, or you can boot a kernel directly. There are advantages to using the monte process, such as easily being able to drop a replacement kernel into place. If you want to use the traditional monte, continue on to step 8 and 9. If not, skip 8 and 9, and go to step 9.8.

8. Upload the new 62_init_framework_ddn.

ftp # FTP to the IP of the tivo
cd /tivo/
put 62_init_framework_ddn.tgz

9. Unpack the init_framework and fix the bootpage. Once again, since I am assuming your system is already hacked, you should have a killhdinitrd'ed TiVo kernel in your boot partition. The nice thing is that we're going to use this same kernel. updateroot flipped the bootpage, but all we have to do is flip it back to boot from the same kernel.

cd /tivo/
tar -zxvf 62_init_framework_ddn.tgz
bootpage -f
mv /tivo/etc/netfilter-enable /tivo/etc/netfilter-enable.not

9.8. Skip this step if you performed steps 8 and 9. You're going to need kernel version 2.4.20 for this, more often known as the kernel from 3.1.5. The easiest way to get this is from the PTVupgrade Enhanced LBA48 CD which you probably already own. On the CD is a folder called s2_kernels, and then 3.1.5. Grab the kernel out of there, and upload it to your TiVo. This kernel already has had killhdinitrd applied to it, and is ready to go. If you are sourcing your 2.4.20 (3.1.5 tivo version) kernel from somewhere else, you will need to killhdinitrd it.

ftp # FTP to the IP of the tivo
cd /var/packages/
put vmlinux.px
dd if=/dev/zero of=/dev/hda3 # write zeros to the boot partition
dd if=/dev/zero of=/dev/hda6
dd if=/var/packages/vmlinux.px of=/dev/hda3 # write the kernel to the boot partitions
dd if=/var/packages/vmlinux.px of=/dev/hda6
mv /tivo/etc/netfilter-enable /tivo/etc/netfilter-enable.not

10. Unless I've forgotten something, reboot. You'll get a blue DirecTV screen that says "Preparing service update...this will take an hour". This is the TiVo updating its database, and will probably take significantly less than an hour.

11. Upload superpatch and set_mrv_name

ftp # FTP to the IP of the tivo
cd /var/packages/
put superpatch-67all-NutKase-1.0.tcl
put set_mrv_name_67.tcl

12. Telnet to the IP of your tivo. You should get a bash prompt like:



mount -o remount,rw / # TiVo mounts the drive read-only, changes would not be applied to the disk. This remounts it read-write.
cd /var/packages/
chmod 755 superpatch-67all-NutKase-1.0.tcl
chmod 755 set_mrv_name_67.tcl
./set_mrv_name_67.tcl YOURTIVONAME # (Type in the name for your Tivo, if you have more than 1, choose something descriptive ("Bedroom Tivo"). If you use spaces, you need quotes "around it")
mount -o remount,ro / # If this errors, go ahead and reboot anyway.

13. Reboot. That's it.

It doesn't work! What should I do?

Noticing that most of the links are from DealDatabase you might be tempted to go post there and expect someone to figure out the problem for you. Fight the temptation. Re-read the guide and make sure you've done every step correctly. Read the threads with the linked files in them. Search the DealDatabase forum for things relative to your problem. Whatever problem you have, it is not unique to you or your setup. Someone has had it before, and a solution has been presented. Before posting, I strongly recommend reading the guidelines outlined by ESR. If and when you do post a question, post in the Newbie Forum and make sure to be extremely specific. Explain what hardware you are using, what software you are using, what you have done, and what you are trying to accomplish. If you don't, at best you will be ignored, and at worst they will make you cry.

So easy a kid could do it!