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
to:
set fSafe 1
Line 146, change:
exec /var/utils/updateroot /dev/hda /install /var/packages >&@
stdout
to:
exec /var/utils/updateroot /dev/hda /install /var/packages $name >&@
stdout
Line 156, change:
reboot
to:
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 192.168.1.25, and the gateway is 192.168.1.1. 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 192.168.1.25 broadcast 192.168.1.255 netmask
255.255.255.0
route add default gw 192.168.1.1 netmask 255.255.255.0 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"
Etc.....
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"
Etc.....
Close the file by pressing Ctrl-K, then X.
Now run the superpatch.
./superpatch-67all-NutKase-1.0.tcl
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:
./netconfig.tcl 192.168.1.25 255.255.255.0 192.168.1.1
192.168.1.1
In this example, 192.168.1.25 is the ip address, 255.255.255.0 is the
subnet mask, the first 192.168.1.1 entry is the gateway address, and the
second 192.168.1.1 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. | |
| |
|