# Upgrade Script for S2 Tivos



## Da Goon

Updated version attached (upgrade-2.x.zip, old version is upgrade.zip). It has been tested for upgrading from 6.2 to 6.2a or 6.3x, from 6.3x to 6.3x and 8.1a to 8.3, and should work for other SA sw updates (works for 8.3 to 9.1 update). The script has been updated, and will now work for upgrading from 3.1.5x to 6.3x. I don't have any S2.5 tivos, so I'm sure there may be a few things it's missing in regards to those units. It's just a simple shell script, nothing fancy, feel free to edit it all you want (but you better not sell it under ANY circumstances. *period*. Is that clear enough blhirsch?) 

This script will edit installSw.itcl and run it for you. Then it will copy over the hacked kernel you've been using, and copy over startup scripts that it finds (.profile, test.conf, rc.sysinit.author, rc.runfirst, and rc.runlast). It also copies over /etc/group and /etc/passwd for cron. It will copy over backported drivers and your usb.map if you want also.

The script no longer requires a configuration file. A few lines at the top of the script can be edited to include full hack directories or just specific files. It currently looks like this :


Code:


export hackdirs="/busybox /tivo-bin /hack /hacks /enhancements /TivoWebPlus /init /ptvupgrade /chainload"
export hacks="/.profile /etc/rc.d/rc.sysinit.author /test.conf /etc/passwd /etc/group /etc/rc.d/rc.runfirst /etc/rc.d/rc.runlast"
/tvbin/crypto -u -srp factory

Just add anything else you'd need, and it will be copied if found. The crypto line sets the prom password to "factory", comment it out or edit it if you want.

Ftp over the script somewhere on your tivo, remove dos line endings just in case with *dos2unix upgrade.sh*, and then set permissions with *chmod 755 upgrade.sh*. Run the script with *./upgrade.sh* and answer any questions it asks as it goes along. When it finishes, double check things if you want, and then reboot when you're ready to install the new software.

The script will set network settings in MFS if you want. If so, you will need to reboot one more time manually after the update for the changes to MFS to take effect. It will set a static ip of your choosing, as well as netmask, gateway, and dns addresses. You won't be prompted for this information if you're using a SA tivo.

As always, YMMV and use at your own risk. As a wise man once said, "If it breaks your tivo, you own both halves"


----------



## Da Goon

*WARNING* : The only change that would need to be made by hand, is if the user is upgrading from 3.1.1x or 4.x software (not on the HR10). These software versions use different kernel builds. 3.1.1x uses a 2.4.4 kernel, and 4.x uses a 2.4.18 kernel, while 6.x and higher uses a 2.4.20 kernel. These differences make their respective kernel modules including usb drivers incompatible. If you are upgrading from 3.1.1x or 4.x to 6.x, you will need to manually install a 2.4.20 kernel (either 3.1.5 or 7.2.2-oth-K1 will work) before rebooting. Also make sure if this applies to you, to not copy over the same backported usb drivers that you have been using. You will need to manually install 2.4.20 drivers. Once again, this warning does NOT apply to HR10 users. For HR10 users or 6.x to 6.x users, regardless of software versions, the script should work as-is.

-edit- with the 2.x version, if you are doing an upgrade that requires a new kernel, you can put a compatible kernel named vmlinux.px anywhere on your tivo, and the script will install it if needed.


----------



## Soapm

Good, I'll try it when we get the replacement for 9.1


----------



## MurrayW

Da Goon, Thanks for making this available for others. I purchased the slicer back in January and have downloads available to update it to the newest version. Since I already have paid for the slicer, are there any advantages of using your script vs. the slicer on my zippered HR10-250's running either 6.3c or 6.3d to update them to 6.3e?
thanks,
Murray


----------



## Da Goon

I have no idea of any advantages/disadvantages since I've never used the slicer or looked at it's code. One thing that would set it apart I would think is the use of a config file to specify certain things to be copied. I don't believe the slicer does anything like that.


----------



## MurrayW

Da Goon,
I think I will give this a try. I have a few questions about the configuration file:

1. How do I create it? In windows, ftp it over then use the dos2unix command?
2. What do I name it?
3. Where do I put it?

thanks,
Murray


----------



## Da Goon

MurrayW said:


> Da Goon,
> I think I will give this a try. I have a few questions about the configuration file:
> 
> 1. How do I create it? In windows, ftp it over then use the dos2unix command?
> 2. What do I name it?
> 3. Where do I put it?
> 
> thanks,
> Murray


1. However you want. On your pc, on the tivo, just as long as you strip dos line endings with dos2unix if needed.
2. upgrade.conf (edited the OP, probably should have had that there huh?  )
3. anywhere on your tivo


----------



## MurrayW

I used your script on my 2nd HR10 and everything seems to be working fine, but I did receive quite a few warnings about no space or directory.


Code:


Initializing First Activation Date


Modifying bootparams to point to /dev/hda7

Creating upgrade messages
upgrade_721_mb.msg does not apply to 357
upgrade_721_ptcm.msg does not apply to 357
Flipping root, setting boot parameters to 'root=/dev/hda7 dsscon=true console=2,
115200 upgradesoftware=false'

OK, reboot the system to use the new root filesystem

11/11:02:07:42: /tvbin/omicron-percei-8.itcl:  Attempting exit 0...
Install script complete, continuing...

Post upgrade insanity check

Your new root and kernel partitions correctly
moved to /dev/hda7 and /dev/hda6 Congratulations!

Mounting new root /dev/hda7 on /install
New root mounted, continuing.
Copying hacked kernel...
dd: /dev/hda6: No space left on device
3+0 records in
2+0 records out
Trying again...
dd: /dev/hda6: No space left on device
3+0 records in
2+0 records out

Copying startup scripts, etc...
find: /proc/1203: No such file or directory

copying tools and other hacks
cp: /install/busybox/[: No such file or directory
cp: /install/busybox/[[: No such file or directory
cp: /install/busybox/ash: No such file or directory
cp: /install/busybox/awk: No such file or directory
cp: /install/busybox/bunzip2: No such file or directory
cp: /install/enhancements/varhacks/hack/bin/tivocid: No such file or directory

Disabling firewall

Do you need to copy over backport usb drivers? [y/n]
y

Alright, all done. Reboot for changes to take effect
Enjoy the upgrade

Is this anything I should worry about?
Sorry to pester you so much!  
Murray


----------



## Da Goon

Those error messages are 100% normal. [, ash, etc are all links to the busybox binary. They're copied first (alphabetical order) so technically the busybox binary wasn't there (yet) for them to be linked to. The error about not enough space is occurring during the kernel copy. It's normal also most likely due to bugs with older versions of mfstools. Nothing to worry about.


----------



## MurrayW

My second HR10-250 went through the upgrade with your script successfully without any of those error messages -- either that or I didn't notice them at 4 AM. So I used the Da Goon script for 2 HR10's and the slicer for my other HR10. To answer a question I asked earlier, I would recommend the Da Goon script since your hacks are kept intact.

thanks,
Murray


----------



## blueshoo

Just wanted to say thanks, Goon. Was able to update a couple HR10-250's to 6.3e using your script and other information.


----------



## Soapm

Went to 9.1a today. All's I can say is THANKS!!!

Took about 20 minutes top.


----------



## blueshoo

Goon, not sure if it was the upgrade script, but on the two HR10-250's that were upgraded to 6.3e using the script, the TivoWebPlus auto-upgrade wasn't working. The /TivoWebPlus/.dist directory wasn't there (units had originally been Zippered/rbautch'd). Once I replaced the directory with the contents of the TWP upgrade tgz, the auto-upgrade feature worked fine again.

Perhaps something to check out to make sure the script is catching 'hidden' directories.

[edit: the error had been: sh: /TivoWebPlus/.dist/extract.sh: No such file or directory Error Updating Package ]


----------



## Da Goon

hmm..never thought about that. I'll look into it.


----------



## Soapm

blueshoo said:


> Goon, not sure if it was the upgrade script, but on the two HR10-250's that were upgraded to 6.3e using the script, the TivoWebPlus auto-upgrade wasn't working. The /TivoWebPlus/.dist directory wasn't there (units had originally been Zippered/rbautch'd). Once I replaced the directory with the contents of the TWP upgrade tgz, the auto-upgrade feature worked fine again.
> 
> Perhaps something to check out to make sure the script is catching 'hidden' directories.
> 
> [edit: the error had been: sh: /TivoWebPlus/.dist/extract.sh: No such file or directory Error Updating Package ]


Thanks for this post, I had this same trouble.


----------



## frozn000

I have a HR10-250 fully modified. Please help me. I am having the hardest time getting these slices to work. Let me tell you what I have done. I downloaded the slices from the DVRUpgrade link that Da Goon posted on another post. I've put the 6.3e slices into /var/packages:

GZcore-89631583-2.slice
GZhpk-Series2-89631596-2.slice
GZkernel-Series2-89631594-2.slice
swsystem-89631609-2.slice
utils-89631581-2.slice

I have ran these commands while in the /var/packages directory:

./dbload ./GZcore*.slice
./dbload ./GZhpk*.slice
./dbload ./GZkernel*.slice
./dbload ./swsystem*.slice
./dbload ./utils*.slice

When I run echo mls /SwSystem | tivosh

all I see is:

Directory of /SwSystem starting at ''

Name Type FsId Date Time Size
---- ---- ---- ---- ---- ----
6.3c-01-2-357 tyDb 146989 02/12/07 05:05 796
ACTIVE tyDb 146989 02/12/07 05:05 796

Please tell me why I can't get these slices to show up? What am I missing? How do I load the 6.3e-01-2-357 when I finally get it? I have been at this for months!


----------



## Da Goon

Wow, 3 posts and a PM. Those are 6.3C slices. 6.3e slices are named:

GZcore-105664607-2.slice
GZhpk-Series2-105664885-2.slice
GZkernel-Series2-105664862-2.slice
swsystem-105665701-2.slice
utils-105664588-2.slice


----------



## allonon

I'm trying to use the script to upgrade an HR10-250 and it won't read the keyboard input into the variable. At the first question about saving the network info, I hit "y"<enter>. It continues on like I did not enter a key. When I ctrl-c, I see the "y" being written to the screen.

Could someone provide a hint or fix? thanks


----------



## Da Goon

Sounds like a problem with your terminal program. If you're using windoze command prompt then type unset crlf before you telnet to your box.


----------



## rmax

DaGoon,
I am running your script tonight and trying to upgrade to 6.3f.
I finally got the script to run and got the following error:


Code:


Enter the target sw version you wish to install
6.3f-01-2-357
You want to upgrade to 6.3f-01-2-357? {y/n}
y
Fixing installSw.itcl for ya
Now running install script
Install script complete, continuing...

Post upgrade insanity check

Your bootpage settings are screwed up somehow
You'll need to fix it before rebooting or
your tivo may be unhacked. Copying hacks anyways!
Or at least we'll try to...
Do you want to continue? {y/n}
y
Alright, let's go....

Mounting new root /dev/hda4 on /install
mount: mount point /install does not exist
Failed to mount new root filesystem
Buh-bye!

Could you give me an idea where to start fixing the problem? Thanks,
Randy


----------



## BTUx9

dunno anything about the script, but it does certainly seem like your tivo has some odd issues... the lack of /install is the biggest mystery (the boot params are understandable, given that you've had at least one failed upgrade attempt)

How was this tivo hacked, initially?


----------



## rmax

I used the zipper to hack it back when the zipper was on about rev 1.8
I did mess up the bootpage when trying to remove the upgradesoftware=false param.
I was able to set the bootpage to point at the right /dev but really don't know what It was originally.


----------



## Da Goon

I don't know why you'd be missing /install, you can create it with mkdir /install. Don't try to run the script again, it'll just crap out. At this point though, the box has upgraded the software, and will finish installing it when you reboot. It may be best to try to copy your hacks manually just to maintain bash. Maybe I should add a check for /install before initiating the install, I never thought that would be an issue. PM me if you need some help.

cat /etc/fstab will tell you what you're current root partition is.


----------



## BTUx9

might also want to add a switch to the script to allow multiple attempts at copying hacks (for cases. like this, where an unexpected error causes an abort halfway through)
or you could create an installation progress file, and have it auto-resume when rerun, but that's a lot more work

since fstab can ALSO be incorrect, is there any way (in Linux) of getting a definitive answer as to exactly which partition is mounted?


----------



## MungoJerrie

BTUx9 said:


> since fstab can ALSO be incorrect, is there any way (in Linux) of getting a definitive answer as to exactly which partition is mounted?


From a bash session do:


Code:


strings /tvbin/tivoapp | grep sandbox

That will tell you which software version tivoapp is running. The OP may be booting from non-contiguous partitions or otherwise booting into the wrong root partition. By using 'bootpage -b /dev/hda' and 'bootpage -a /dev/hda' - the OP can verify the active and alternate boot parts. Then modifying bootpage parameters and verifying with the 'strings tivoapp' above, he should be able to get the correct boot and root partitions lined up with the right ACTIVE software version.


----------



## BTUx9

afraid that isn't what I was looking for.

Unless I'm mistaken:
1) tivoapp CAN be running on a different partition than what it thinks (I've done plenty of copying of root to alternate to boot in case of a fatal mistake when playing on the tivo, to know this seems to be true)
2) the boot params are in an indeterminate state because installSW has been attempted several times

I was more looking for something in linux internals to determine this (the info mount returns could easily be inaccurate, because, AFAIK, it relies on fstab being accurate, which is NOT a given)


----------



## rmax

Sorry it took so long for me to get back to the computer. I have tried some more of the ideas and here is where i am at so far.



Da Goon said:


> I don't know why you'd be missing /install, you can create it with mkdir /install. Don't try to run the script again, it'll just crap out. At this point though, the box has upgraded the software, and will finish installing it when you reboot. It may be best to try to copy your hacks manually just to maintain bash. Maybe I should add a check for /install before initiating the install, I never thought that would be an issue. PM me if you need some help.
> 
> cat /etc/fstab will tell you what you're current root partition is.


here is what I get when I execute this:
den-TiVo# cat /etc/fstab
# Copyright (c) 2001 TiVo Inc.
/dev/hda7 / ext2 ro 1 1
/dev/hda9 /var ext2 rw 1 2
/dev/hda8 swap swap defaults 0 0

I am not sure what this means. I also get an error when trying to create the /install directory. Here is what I get:
den-TiVo# mkdir /install
mkdir: cannot make directory `/install': No space left on device

Thanks for any ideas,
Randy


----------



## rmax

MungoJerrie said:


> From a bash session do:
> 
> 
> Code:
> 
> 
> strings /tvbin/tivoapp | grep sandbox
> 
> That will tell you which software version tivoapp is running. The OP may be booting from non-contiguous partitions or otherwise booting into the wrong root partition. By using 'bootpage -b /dev/hda' and 'bootpage -a /dev/hda' - the OP can verify the active and alternate boot parts. Then modifying bootpage parameters and verifying with the 'strings tivoapp' above, he should be able to get the correct boot and root partitions lined up with the right ACTIVE software version.


here is the results of this suggestion:
den-TiVo# strings /tvbin/tivoapp | grep sandbox
/build/sandbox-b-firefly-takehome-release-mips/release-mips/root/include/dbcache/TvDbSignalSource.h
/build/sandbox-b-firefly-takehome-release-mips/release-mips/root/include/dbcache/TvDbSignalSource.h
/build/sandbox-b-firefly-takehome-release-mips/release-mips/root/include/mfs/nmentry.h

not sure what this is telling me though.
Thanks,
Randy


----------



## BTUx9

go into /tvbin, and remove all copies of tivoapp except the original, to free up some drive space

ls tivoapp.* to see them


----------



## tec007

Not feeling the love. Ran the Upgrade script on my 10-250 with no errors, set the network info, double checked it to make sure they were correct. Now I have no network connection. I also noticed the start up image (the Moon) is gone and the original startup "Almost there" image is back. I have rebooted four times now. No light on my FA120. The System does show that I'm at 6.3f

Does this mean I lost my hacks? 

Now what?


----------



## Da Goon

tec007 said:


> Now what?


Would need a kernel log or serial output capture to start with. I never bothered to look for a modified AlmostThere image so that's normal. What sw version were you upgrading from? How did you hack your box originally?


----------



## samhammer

I copied the files to the /var/tmp directory.
I was able to chmod 775 the two files.

But when I try to run it (./upgrade.sh) I just get an error

bash: /upgrade.sh: No such file or directory

Any ideas?

Sam


----------



## Da Goon

dos2unix


----------



## tec007

Sorry it took so long to reply. I didn't see the page 2. 

I was going from a to f on a 10-250 that was Zippered.

Here's the serial output...

Is the problem in RED below????

Restarting system. 
CPU revision is: 00005430 
FPU revision is: 00005410 
Primary instruction cache 32kb, linesize 32 bytes. 
Primary data cache 32kb, linesize 32 bytes. 
Linux version 2.4.20 ([email protected]) (gcc version 3.0) #22 Fri Feb 20 18:19 
:25 PST 2004 
Determined physical RAM map: 
memory: 08000000 @ 00000000 (usable) 
On node 0 totalpages: 32768 
zone(0): 32768 pages. 
zone(1): 0 pages. 
zone(2): 0 pa 
Kernel command line: root=/dev/hda7 dsscon=true console=2,115200 upgradesoftware 
=false 
Monotonic time calibrated: 81.00 counts per usec 
Calibrating delay loop... 161.79 BogoMIPS 
Contiguous region 1: 12582912 bytes @ address 0x80583000 
Contiguous region 2: 2097152 bytes @ address 0x81183000 
Contiguous region 8: 23068672 bytes @ address 0x81383000 
Contiguous region of 37748736 bytes total reserved at 0x80583000. 
Memory: 91240k/131072k available (1222k kernel code, 39832k reserved, 81k data, 
64k init, 0k highmem) 
Dentry cache hash table entries: 16384 (order: 5, 131072 bytes) 
Inode cache hash table entries: 8192 (order: 4, 65536 bytes) 
Mount-cache hash table entries: 2048 (order: 2, 16384 bytes) 
Buffer-cache hash table entries: 8192 (order: 3, 32768 bytes) 
Page-cache hash table entries: 32768 (order: 5, 131072 bytes) 
Checking for 'wait' instruction... unavailable. 
POSIX conformance testing by UNIFIX 
PCI: Probing PCI hardware 
ttyS00 at iomem 0xb4100100 (irq = 79) is a 16550A 
ttyS00 at port 0xbc010000 (irq = 133) is a unk 
ttyS00 at iomem 0xb4100140 (irq = 81) is a 16550A 
ttyS00 at iomem 0xb4100120 (irq = 80) is a 16550A 
Linux NET4.0 for Linux 2.4 
Based upon Swansea University Computer Society NET3.039 
Initializing RT netlink socket 
Starting kswapd 
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI en 
abled 
ttyS00 at 0xb4100100 (irq = 79) is a 16550A 
ttyS01 at 0xbc010000 (irq = 133) is a unknown 
ttyS02 at 0xb4100140 (irq = 81) is a 16550A 
ttyS03 at 0xb4100120 (irq = 80) is a 16550A 
Uniform Multi-Platform E-IDE driver Revision: 6.31 
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx 
hda: ST3400633A, ATA DISK drive 
ide0 at 0x400-0x407,0x438 on irq 87 
hda: 781422768 sectors (400088 MB) w/16384KiB Cache, CHS=48641/255/63 
Partition check: 
hda: [mac] hda1 hda2 hda3 hda4 hda5 hda6 hda7 hda8 hda9 hda10 hda11 hda12 hda13 
hda14 hda15 hda16 
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize 
PPP generic driver version 2.4.2 
PPP Deflate Compression module r 
NET4: Linux TCP/IP 1.0 for NET4.0 
IP Protocols: ICMP, UDP, TCP 
IP: routing cache hash table of 1024 buckets, 8Kbytes 
TCP: Hash tables configured (established 8192 bind 16384) 
ip_conntrack version 2.1 (1024 buckets, 8192 max) - 152 bytes per conntrack 
ip_tables: (C) 2000-2002 Netfilter core team 
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0. 
VFS: Mounted root (ext2 filesystem) readonly. 
Freeing unused kernel memory: 64k freed 
Starting rc.sysinit 
Running boot Stage A_PreKickstart scripts 
Scanning for configura 
Loading tivoconfig.o 
Invoking startup scripts for: 
platform 'phoenix' 
implementation 'Series2' 
implementer 'TiVo' 
Releasing /initrd and clearing ramdisk, if they exist 
umount: /initrd: not mounted 
Activating swap partitions 
Adding Swap: 130044k swap-space (priority -1) 
Loading core system drivers 
Loading fpga.o 
Parallel modem driver loaded, 1 ports starting at /dev/ttyS1 
Loading i2c_Series2.o 
Loading ircatch.o 
Found rev 'F' Si2433 modem on /dev/cua1 
Checking for Kickstart panic signal 
Running boot Stage B_PostKickstart scripts 
Cleanup /dev/hda9 pass 1 
ext2fs_check_if_mount: No such file or directory while determining whether /dev/ 
hda9 is mounted. 
/dev/hda9 was not cleanly unmounted, check forced. 
Inode 6148, i_blocks wrong 858 (counted=854). Set i_blocks to counted? yes

Inode 6146, i_blocks wrong 2918 (counted=2916). Set i_blocks to counted? yes

Inode 6152, i_blocks wrong 19230 (counted=19216). Set i_blocks to counted? yes

Inode 6155, i_blocks wrong 708 (counted=694). Set i_blocks to c

Fix summary information? yes

/dev/hda9: 108/32768 files (11.1% non-contiguous), 18822/131072 blocks 
Cleanup /dev/hda9 pass 2 
ext2fs_check_if_mount: No such file or directory while determining whether /dev/ 
hda9 is mounted. 
/dev/hda9: clean, 108/32768 files, 18822/131072 blocks 
/dev/hda9 is clean after pass 2 
Mounting /var 
/dev/hda9 on /var type ext2 (rw) 
Cleaning up files in /var 
Checking space in /var 
Mounting initial environment 
Starting logging daemons 
Found Silicon Labs "Si2433" modem, rev F, skipping modem p 
Scanning for phase1 repair scripts 
Running boot Stage C_MediaInitialization scripts 
Loading input section drivers 
Loading oslink.o 
Loading cobra.o 
cobra module was successfully installed, LNBPA 0x10 LNBPB 0x12 
Loading output section drivers 
Loading brcmdrv-rb.o 
Linux BCM7020 STB interface: version 510082104 
******** versionInfo->major is 2 ******** 
Using dual-tuner HD client priorities 
Changed Broadcom output format to 4800 
Broadcom DVI colorspace set to YCbCr 
Loading si9190.o 
Splash the screen 
Bound Hdmi Semaphore 
PHOENIX GETS MORE CONTIGMEM: height=1349 
Running boot Stage D_PreMfs scripts 
Remote control is TIVO 
MFS partition on /dev/hda10 
Loading Phoenix dssapp 
Look for debug board 
/tvbin/dssappAV: DSS Interface Version 1.24, compiled on Jun 15 2006 
Loading Phoenix ATSC tuner daemon (AtscTunerD) ... 
Loading Phoenix atscapp 
Loading irblast.o 
Loading ideturbo.o 
/tvbin/atscapp: ATSC (Hpk-Enabled OsServices-Enabled) Interface Version 0.7, com 
piled on Jun 20 2007 
<InitInputs> Found a total of 2 inputs. 
<InitInputs> got 2 ATS 
2004 probe 
Loading fan.o 
Loading therm.o 
Loading TvBus router 
Updating system clock 
Time set to: Tue Feb 12 23:50:15 2008 
<InitInputVcxoDevice> VcxoDevice for input #1 already opened, fileId = 7 
<BroadcomAtscInputResetMuxedInputForDirectv> Set tuner mux pin state to DSS 
<InitInputVcxoDevice> VcxoDevice for input #0 already opened, fileId = 8 
<BroadcomAtscInputResetMuxedInputForDirectv> Set tuner mux pin state to DSS  
<BroadcomAtscInputResetMuxedInputForDirectv> Set record type to RecordDirecTV_ES

<BroadcomAtscInputResetMuxedInputForDirectv> Set record type to RecordDirecTV_ES

Enabling local route 
Setting TCP keepalive parameters 
Checking for additional disk 
Start fan control 
First temperature parameters set: 
Terminal temp: 71 
Critical temp: 62 
Logging temp: 60 
Target temp: 50 
Lowest fan speed: 7 
/tvbin/fancontrol is running in the background. 
Starting TvLauncher 
Waiting for launcher to start. 
Launcher is running. 
Scanning for phase2 repair scripts 
Running boot Stage E_PreApplication scripts 
Checking for database conversions 
No upgrade to load 
Not upgrading software 
Scanning for phase3 repair scripts 
Running boot Stage F_ApplicationLaunch scripts 
Starting Services. 
Microcode version is TiVo! 
/lib/modules/usbcore.o: error reading ELF section data /lib/modules/usbcore.o: N 
o space left on device 
/lib/modules/ehci-hcd.o: /lib/modules/ehci-hcd.o: unresolved symbol usb_calc_bus 
_time 
/lib/modules/ehci-hcd.o: /lib/modules/ehci-hcd.o: unresolved symbol usb_hcd_pci_ 
probe 
/lib/modules/ehci-hcd.o: /lib/modules/ehci-hcd.o: unresolved symbol usb_hcd_give 
back_urb 
/lib/modules/ehci-hcd.o: /lib/modules/ehci-hcd.o: unresolved symbol usb_free_dev

/lib/modules/ehci-hcd.o: /lib/modules/ehci-hcd.o: unresolved symbol usb_connect 
/lib/modules/ehci-hcd.o: /lib/modules/ehci-hcd.o: unresolved symbol usb_hcd_pci_ 
remove 
/lib/modules/ehci-hcd.o: /lib/modules/ehci-hcd.o: unresolved symbol usb_new_devi 
ce 
/lib/modules/ehci-hcd.o: /lib/modules/ehci-hcd.o: unresolved symbol usb_submit_u 
rb 
/lib/modules/ehci-hcd.o: /lib/modules/ehci-hcd.o: unresolved symbol usb_alloc_de 
v 
/lib/modules/usb-ohci.o: /lib/modules/usb-ohci.o: unresolved symbol usb_claim_ba 
ndwidth 
/lib/modules/usb-ohci.o: /lib/modules/usb-ohci.o: unresolved symbol usb_release_ 
bandwidth 
/lib/modules/usb-ohci.o: /lib/modules/usb-ohci.o: unresolved symbol usb_check_ba 
ndwidth 
/lib/modules/usb-ohci.o: /lib/modules/usb-ohci.o: unresolved symbol usb_alloc_bu  
s 
/lib/modules/usb-ohci.o: /lib/modules/usb-ohci.o: unresolved symbol usb_free_dev

/lib/modules/usb-ohci.o: /lib/modules/usb-ohci.o: unresolved symbol usb_inc_dev_ 
use 
/lib/modules/usb-ohci.o: /lib/modules/usb-ohci.o: unresolved symbol usb_deregist 
er_bus 
/lib/modules/usb-ohci.o: /lib/modules/usb-ohci.o: unresolved symbol usb_disconne 
ct 
/lib/modules/usb-ohci.o: /lib/modules/usb-ohci.o: unresolved symbol usb_connect 
/lib/modules/usb-ohci.o: /lib/modules/usb-ohci.o: unresolved symbol usb_new_devi 
ce 
/lib/modules/usb-ohci.o: /lib/modules/usb-ohci.o: unresolved symbol usb_root_hub 
_string 
/lib/modules/usb-ohci.o: /lib/modules/usb-ohci.o: unresolved symbol usb_alloc_de 
v 
/lib/modules/usb-ohci.o: /lib/modules/usb-ohci.o: unresolved symbol usb_register 
_bus 
/lib/modules/usb-ohci.o: /lib/modules/usb-ohci.o: unresolved symbol usb_free_bus ApgLogFrequency( 0 sec ) 
Found binding for the hdmi semaphore 
ApgManager Transition from state INIT to BOOT 
<BroadcomAtscInputResetMuxedInputForDirectv> Set tuner mux pin state to DSS 
<BroadcomAtscInputResetMuxedInputForDirectv> Set record type to RecordDirecTV_ES

PHOENIX GETS MORE CONTIGMEM: height=1349 
Found binding for the hdmi semaphore 
PHOENIX GETS MORE CONTIGMEM: height=1349 
Scanning for phase4 repair scripts 
Running boot Stage G_PostApplication scripts 
starting rc.sysinit.author 
set environmental variables 
starting telnet and ftp 
starting serial bash 
running fakecall 
bash: no job control in this shell 
bash-2.02# ApgManager Transition from state BOOT to SECONDARY_BOOT 
ApgManager Transition from state SECONDARY_BOOT to FAST_LOAD 
Fakecall.tcl by AlphaWolf_HK 
"Call in" status updated.

ApgManager Transition from state FAST_LOAD to FAST_LOAD 
ApgManager Transition from state FAST_LOAD to FAST_LOAD 
ApgManager Transition from state FAST_LOAD to FAST_LOAD 
ApgManager Transition from state FAST_LOAD to FAST_LOAD

EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended 
Starting netserver at port 12865 
ApgManager Transition from state FAST_LOAD to FAST_LOAD  
/etc/rc.d/rc.sysinit.author: cd: /var/hack/sbin: No such file or directory 
/etc/rc.d/rc.sysinit.author: ./ncidd: No such file or directory 
/etc/rc.d/rc.sysinit.author: cd: /var/hack/bin: No such file or directory 
/etc/rc.d/rc.sysinit.author: ./tivocid: No such file or directory 
/etc/rc.d/rc.sysinit.author: /enhancements/TWPrun.sh: No such file or directory 
couldn't read file "/enhancements/endpadplus.tcl": no such file or directory 
ApgManager Transition from state FAST_LOAD to FAST_LOAD 
ApgManager Transition from state FAST_LOAD to STEADY_STATE 
crond: /var/spool/cron/crontabs: No such 
/etc/rc.d/rc.sysinit.author: cd: /var/hack/sbin: No such file or directory 
/etc/rc.d/rc.sysinit.author: ./ncidd: No such file or directory 
/etc/rc.d/rc.sysinit.author: cd: /var/hack/bin: No such file or directory 
/etc/rc.d/rc.sysinit.author: ./tivocid: No such file or directory 
/etc/rc.d/rc.sysinit.author: /enhancements/TWPrun.sh: No such file or directory 
couldn't read file "/enhancements/endpadplus.tcl": no such file or directory 
AtscNpkOpen atscapp tuner #0 pid=0x10a atscFd = 55 
AtscNpkOpen: Setting virtual 
SelectPriorityPmtProgramNumber (tuner 0, program 65535) 
received PAT for tuner 0, num_entries = 2 
received VCT for tuner 0, num_entries = 2 
received EIT for tuner 0 (length=336) 
received PMT 0 for tuner 0 
SelectPriorityPmtProgramNumber (tuner 0, program 65535) 
received PMT 1 for tuner 0 
SelectPriorityPmtProgramNumber (tuner 0, program 65535) 
publishing PAT 
<BroadcomAtscInputSetMuxedInputForAtsc> Set tuner mux pin state to ATSC 
<BroadcomAtscInputSetMuxedInputForAtsc> Set record type to RecordMpeg 
AtscNpkOpen atscapp tuner #1 pid=0x10b atscFd = 61 
Restarting system. 
AtscNpkOpen: Setting virtual number 1 
Service number is 357000190403FA6.
<BroadcomAtscInputSetMuxedInputForAtsc> Set tuner mux pin state to ATSC 
Build target = TiVo/mips/brcm/rel 
<BroadcomAtscInputSetMuxedInputForAtsc> Set record type to RecordMpeg 
reset - 
splash - 
color
SelectPriorityPmtProgramNumber (tuner 1, program 65535)- [ <new boot args> ]

received PAT for tuner 1, num_entries = 2t string> ] 
received VCT for tuner 1, num_entries = 2kip ] [ -3 | -6 ] [ <boot string> ] 
received PMT 0 for tuner 1 
iden
SelectPriorityPmtProgramNumber (tuner 1, program 65535)hat? reset 
Output enabled 
Serv
received EIT for tuner 1 (length=336) 
What is pa
received PMT 1 for tuner 
ApgManager Transition from state SECONDARY_BOOT to FAST_LOADsetMuxedInputForDirectv> Set record type to RecordDirecTV_ES
ApgManager Transition from state FAST_LOAD to FAST_LOAD

PHOENIX GETS MORE CONTIGMEM: 
ApgManager Transition from state FAST_LOAD to FAST_LOADd binding for the hdmi semaphore 
ApgManager Transition from state FAST_LOAD to FAST_LOAD 
ApgManager Trans
ApgManager Transition from state FAST_LOAD to FAST_LOAD 
ApgManager Trans
ApgManager Transition from state FAST_LOAD to FAST_LOAD 
Scanni
ApgManager Transition from state FAST_LOAD to FAST_LOAD 
Running boot Stage G_PostApplication scripts 
ApgManager Transition from state FAST_LOAD to STEADY_STATEt.author 
set environmental

ApgM
SelectPriorityPmtProgramNumber (tuner 0, program 65535) 
ApgM
received PMT 1 for tuner 0e FAST_LOAD to FAST_LOAD 
SelectPriorityPmtProgramNumber (tuner 0, program 65535)gManager Transition from state FAST_LOAD to FAST_LOAD 
publishing PAT 
received EIT for tuner 0 (length=336)ansition from state FAST_LOAD to FAST
<BroadcomAtscInputSetMuxedInputForAtsc> Set tuner mux pin state to ATSCwarning: 
received PMT 0 for tuner 1
SelectPriorityPmtProgramNumber (tuner 1, program 65535)
received EIT for tuner 0 (length=336)
received PMT 1 for tuner 0
SelectPriorityPmtProgramNumber (tuner 0, program 65535)
publishing PAT
received PMT 1 for tuner 1
SelectPriorityPmtProgramNumber (tuner 1, program 65535)
publishing PAT
<BroadcomAtscInputResetMuxedInputForDirectv> Set tuner mux pin state to DSS
<BroadcomAtscInputResetMuxedInputForDirectv> Set record type to RecordDirecTV_ES

<BroadcomAtscInputSetMuxedInputForAtsc> Set tuner mux pin state to ATSC
<BroadcomAtscInputSetMuxedInputForAtsc> Set record type to RecordMpeg
SelectPriorityPmtProgramNumber (tuner 1, program 65535)
received VCT for tuner 1, num_entries = 2
received PAT for tuner 1, num_entries = 2
received EIT for tuner 1 (length=336)
received PMT 0 for tuner 1
SelectPriorityPmtProgramNumber (tuner 1, program 65535)
received PMT 1 for tuner 1
SelectPriorityPmtProgramNumber (tuner 1, program 65535)
publishing PAT


----------



## Da Goon

That's definitely your problem (in the future, zip up your log and attach it to your post. much easier to read). Looks like your host/driver modules are mixed up somehow. Do you have a serial cable? What model usb dongle are you using? It shouldn't be hard to fix.


----------



## tec007

I do have a serial cable and am using the FA120.

BTW: Thanks for your help.


----------



## Da Goon

You can replace those drivers via serial or pull the drive. I took some time and took a look at the zipper script to see how it sets things up. On your zipper cd in the /drivers/2.4.20_Series2 folder (or the same folder in the zipper_tools dir from the main zip archive), are the drivers you need. Remove the ones in /lib/modules, then you can send the new ones over via hyperterminal or pull the drive and copy them from the zipper cd. If you pull the drive, you can mount the cd the same as you did before, then mount either partition 4 or 7 of your tivo drive (bootpage -p will tell you which one), and then copy the drivers to your tivo from the cd, they would be located in /cdrom/drivers/2.4.20_Series2.


----------



## tec007

In case in makes a difference, in the process of trying to fix the problem before I posted, I tried to re-install the Zipper. Zipper required me to uninstall first. Once I did of course it couldn rerun Zipper because of a DNS error, no network. So Zipper is currently uninstalled. :-(

In my situation it would probably be eaiser to send them via serial. Any guidance on using Hyperterminal to transfer files?

Again, thanks for your time.


----------



## Da Goon

tec007 said:


> Any guidance on using Hyperterminal to transfer files?


Use the transfer/send file function in hyperterminal, set protocol to zmodem, send the modules over and reboot.


Code:


mount -o remount,rw /
cd /lib/modules
rm {ehci-hcd.o,usbcore.o,usbnet.o,usb-ohci.o}
  send modules over via hyperterminal
mount -o remount,ro /
reboot


----------



## tec007

I'm back up and running.

Thanks for your help and script. This Community wouldn't be here without the people who write scripts and give support.

Thanks again.


----------



## temp357

Does this script work with the hr10-250 for upgrading from 3.1.5f to 6.3f? I tried the upgrade2 script on my zippered drive and got the following error. Any help would be greatly appreciated.


~~~~~~~~~~~~~~~
357-TiVo# ./upgrade.sh
Success - Determining current partition setup and making sure it makes sense - c
ontinuing...
Current kernel/root partitions are 3 and 4
Directory of /SwSystem starting at ''

Name Type FsId Date Time Size
---- ---- ---- ---- ---- ----
3.1.5f-01-2-357 tyDb 3180 09/29/06 23:56 700
6.3f-01-2-357 tyDb 154979 02/10/08 11:15 780
ACTIVE tyDb 3180 09/29/06 23:56 700

Enter the full name of the software version you wish to install
6.3f-01-2-357
find: WARNING: Hard link count is wrong for /: this may be a bug in your filesys
tem driver. Automatically turning on find's -noleaf option. Earlier results ma
y have failed to include directories that should have been searched.
Found kernel - /ptvupgrade/misc/vmlinux.px
This kernel will not work. you need a 2.4.20 kernel.
Fatal Error - Determining upgrade path to take - exiting...
357-TiVo#


----------



## Da Goon

temp357 said:


> Does this script work with the hr10-250 for upgrading from 3.1.5f to 6.3f?


Apparently not. My bad. I've fixed the script and updated the attachment. It should work now.


----------



## temp357

Thanks,
New challenges now. Here's what i get with the new updated script.

~~~~~~~~~~~~~~~~~~
357-TiVo# ./upgrade.sh
Success - Determining current partition setup and making sure it makes sense - c
ontinuing...
Current kernel/root partitions are 3 and 4
Directory of /SwSystem starting at ''

Name Type FsId Date Time Size
---- ---- ---- ---- ---- ----
3.1.5f-01-2-357 tyDb 3180 09/29/06 23:56 700
6.3f-01-2-357 tyDb 154979 02/10/08 11:15 780
ACTIVE tyDb 3180 09/29/06 23:56 700

Enter the full name of the software version you wish to install
6.3f-01-2-357
02/24:06:27:24: /tvbin/installSw-new.itcl: Bad arguments to installSw:
Fatal Error - Executing modified installSw.itcl - exiting...
357-TiVo#


----------



## Da Goon

temp357 said:


> 02/24:06:27:24: /tvbin/installSw-new.itcl: Bad arguments to installSw:


Note to self : don't consume alcohol while coding. Fixed it. I left out the argument for installSw.itcl. Attachment fixed.


----------



## temp357

Ok,
So this time i messed it up. I got all the way to copying the USB drivers and setting the IP address. I made a mistake typing the address and rebooted. it's updating to 6.3f right now, will i have to pull the drive and zipper it again?

Thanks for your help Da Goon!

Here's where it left off...

~~~~~~~~~~~~~~~~~

357-TiVo# cd /enhancements
357-TiVo# chmod 755 upgrade.sh
357-TiVo# ./upgrade.sh
Success - Determining current partition setup and making sure it makes sense - c
ontinuing...
Current kernel/root partitions are 3 and 4
Directory of /SwSystem starting at ''

Name Type FsId Date Time Size
---- ---- ---- ---- ---- ----
3.1.5f-01-2-357 tyDb 3180 09/29/06 23:56 700
6.3f-01-2-357 tyDb 154979 02/10/08 11:15 780
ACTIVE tyDb 3180 09/29/06 23:56 700

Enter the full name of the software version you wish to install
6.3f-01-2-357
02/24:20:44:48: /tvbin/installSw-new.itcl: id of /SwSystem/ACTIVE is 44090086
02/24:20:44:48: /tvbin/installSw-new.itcl: id of /SwSystem/6.3f-01-2-357 is 115
422985
02/24:20:44:48: /tvbin/installSw-new.itcl: Installing "6.3f-01-2-357".
02/24:20:44:48: /tvbin/installSw-new.itcl: Removing old package files
02/24:20:44:49: /tvbin/installSw-new.itcl: Getting packages from database
02/24:20:45:05: /tvbin/installSw-new.itcl: Executing jpm install of utils-1-1.c
pio
02/24:20:45:08: /tvbin/installSw-new.itcl: Executing updateroot /dev/hda /insta
ll /var/packages
Path prefix is /var/utils/
Sha1hash passed for updatekernel
Sha1hash passed for checkkernel.tcl
Sha1hash passed for messagelib.tcl
Sha1hash passed for buildskeleton
Sha1hash passed for SwInstall.tcl
Sha1hash passed for builddev

Searching /etc/fstab for current root

Old root is on /dev/hda4, new one goes on /dev/hda7

Creating new filesystem on /dev/hda7

Mounting new root filesystem on /install

Installing module core
Installing module hpk-Series2
Installing module kernel-Series2
Building basic filesystem skeleton on /install

Checking /install/etc/fstab

newroot is 7, copying fstab from fstab.alternate
Creating symlinks for /install/etc files
Dismounting /install and checking its integrity

Initializing First Activation Date

Modifying bootparams to point to /dev/hda7

Creating upgrade messages
upgrade_721_mb.msg does not apply to 357
upgrade_721_ptcm.msg does not apply to 357
Flipping root, setting boot parameters to 'root=/dev/hda7 brev=0x100A dsscon=tru
e console=2,9600'

OK, reboot the system to use the new root filesystem

02/24:20:47:47: /tvbin/installSw-new.itcl: Attempting exit 0...
Success - Executing modified installSw.itcl - continuing...
Success - Checking integrity of install - continuing...
Success - Mounting new root partition - continuing...
4096+0 records in
4096+0 records out
./upgrade.sh: dirname: command not found
cp: /install/busybox/[: No such file or directory
cp: /install/busybox/[[: No such file or directory
cp: /install/busybox/ash: No such file or directory
cp: /install/busybox/awk: No such file or directory
cp: /install/busybox/bunzip2: No such file or directory
Do you wanna copy usb drivers? {y/n}
y
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: /platform/lib/modules/usbcore.o: Cannot stat: No such file or directory
tar: /platform/lib/modules/ehci-hcd.o: Cannot stat: No such file or directory
tar: /platform/lib/modules/usb-ohci.o: Cannot stat: No such file or directory
tar: Error exit delayed from previous errors
cp: /platform/etc/hotplug/usb.map: No such file or directory
Do you need to set network settings in MFS? {y/n}
y
Enter your tivo ip
192.168.1.171^H^[[D^H
Enter subnet mask
255.255.255.0
Enter gateway (router)
192.168.1.17
[1]+ Stopped ./upgrade.sh
357-TiVo# ./upgrade.sh
Fatal Error - Determining current partition setup and making sure it makes sense
- exiting...
357-TiVo# sync
357-TiVo# reboot


----------



## dm999

Da Goon,

I've gotten the 6.3f slices down onto my Zippered HR10-250. Just want to verify I have all the stops down right before pulling the trigger:

1. Read through the tweak.sh and list all the directories/files created/updated by the script.

2. Verify all of above are captured/copied in upgrade.sh

3. Run upgrade.sh

4. Run SuperPatch-6.3f found here

5. Reboot

Thanks,

Trace


----------



## Da Goon

Superpatch after rebooting not before.


----------



## sooner

I've got a S2 standalone (TCD24004A) and current software version is 4.0.1b-02-2-240. Just to clarify before I get started on my upgrade, is there anything special I need to do before using the upgrade script? Do I need to worry about losing usb connectivity after the upgrade? Do I need to backup my drivers? 

Any kernel concerns? BTW, does the "240" on the end of my current version of software refer to kernel 2.40 ?

Thanks in advance for any and all help!

- Chris


----------



## Da Goon

sooner said:


> I've got a S2 standalone (TCD24004A) and current software version is 4.0.1b-02-2-240. Just to clarify before I get started on my upgrade, is there anything special I need to do before using the upgrade script?


Yep, the kernel you've been using is linux version 2.4.18 and all future sw versions use linux kernel version 2.4.20. You'll need to put a killhdinitrd'd 3.1.5 or 7.2.2-oth-K1 kernel somewhere on your tivo and name it vmlinux.px. If you don't do that, the script will refuse to run.



> Do I need to worry about losing usb connectivity after the upgrade? Do I need to backup my drivers?


Backing them up won't do much good since they're incompatible with your new kernel. You will lose connectivity if your usb adapter is dependant upon backported drivers (see the backport usb package readme if you're unsure). My script won't do anything about this, since there's several files involved and sometimes people put them in weird places. You'll need to install them manually if required. A serial cable is a tivo hacker's best friend. Get/make one if you don't already have one.



> Any kernel concerns? BTW, does the "240" on the end of my current version of software refer to kernel 2.40 ?


See above. The "240" references your model/tivo service number. 'uname -r' will tell you your linux kernel version.


----------



## sooner

Thanks for all your help Da Goon!

I finally got to a point where I can run your script - but it is exiting due to a 

"Fatal error - Determining current partition setup and making sure it makes sense
- exiting..."

After looking through some previous posts - I guess you need to know the following.....the result of cat /etc/fstab is: 

tivo:/var/tmp$ cat /etc/fstab
# Copyright (c) 2001 TiVo Inc.
/dev/hda4 / ext2 ro 1 1
/dev/hda9 /var ext2 rw 1 2
/dev/hda8 swap swap defaults 0 0

tivo:/var/tmp$ bootpage -p /dev/hda
root=/dev/hda7 dsscon=true console=2,115200 BASH_ENV=`mount$IFS-n$IFS/dev/hda16$
IFS/mnt;echo$IFS/mnt/runmonte`

tivo:/var/tmp$ bootpage -a /dev/hda
3
tivo:/var/tmp$ bootpage -b /dev/hda
6

What should I do next?

Again, thanks in advance for all the help!


----------



## dm999

Da Goon said:


> Superpatch after rebooting not before.


Sucessfully upgraded 2 Zippered HR10-250's!!!! 

Da Goon, mucho kudos!!!!:up::up::up::up:


----------



## Da Goon

dm999 said:


> Sucessfully upgraded 2 Zippered HR10-250's!!!!
> 
> Da Goon, mucho kudos!!!!:up::up::up::up:


Awesome.


----------



## Da Goon

sooner said:


> tivo:/var/tmp$ bootpage -p /dev/hda
> root=/dev/hda7 dsscon=true console=2,115200 BASH_ENV=`mount$IFS-n$IFS/dev/hda16$
> IFS/mnt;echo$IFS/mnt/runmonte`


Wow...BASH_ENV??? You've got a REALLY old exploit there. I honestly never used it, and the checks in my script are basically there to avoid trying to do a software upgrade if the box has been hacked that way, since I'm not exactly sure how to deal with it. Lemme think about it ..watch your pm box.


----------



## sooner

Da Goon, thanks for your help through PM! I finally was able to use your script to upgrade from 4.01 to 9.1. Your bootpage utility suggestions helped me get through your "partcheck" function. I had to manually set root to /dev/hda4. But later after running /tvbin/installSw-new.itcl, the bootpage info did not update to make /dev/hda7 root. So I had to manually change bootpage to /dev/hda7 and rerun your script without executing the "partcheck" function (or else it would have bombed).

There was one other modification I had to make to your script. I had to supply an updated 2.4.20 kernel which I obtained from dvrupgrade.com's LBA48 Boot CD version with Enhancements. I grabbed the file in \S2_KERNE\7_2.2_0\VMLINUX_.GZ. Your script looks within that file for a string "version 2.4.20-TiVo". However, the kernel I obtained from that CD only had the string "version 2.4.20". So I just took out the check for the "-TiVo" part of the string and it worked fine.

Bottom-line - I'm now upgraded all the way to 9.1 and can once again download program guide data. Hacks were retained and BASH access through serial connection was retained since I already BASH setup through rc.sysinit.author (and that of course was kept). And all my recordings were kept as well. Great Success!! 

I did lose USB connectivity which was to be expected - so the serial connection was a must. I wanted to upgrade to TiVo's Wireless G USB network adaptor anyway.

And that brings me to a final question I'm sure anyone could answer for me - I am assuming that with the TiVo Wireless G USB network adaptor (and now that I'm up to version 9.1 on my Series2 SA), I can connect at USB 2.0 speed now, right? I'm not just limited to a USB 1.1 speed? Just want to make sure.


----------



## bluerose98

I am new to this but how to upload the script to Tivo I have an Tivo Series 2 DT Digital Video Recorder i don't know what name brand. I bought mine from Big lots for $70 thats all i can tell you. You may pm me if you like to explain this to me thanks


----------



## Da Goon

bluerose98 said:


> I am new to this but how to upload the script to Tivo I have an Tivo Series 2 DT Digital Video Recorder i don't know what name brand. I bought mine from Big lots for $70 thats all i can tell you. You may pm me if you like to explain this to me thanks


You hack your prom first, then modify your kernel, then you actually hack the software. Then, you use ftp to move it over assuming you've installed tivoftpd. Much much much reading is in order if you wish to accomplish any of these things. My script is most definitely NOT the starting point.


----------



## Da Goon

sooner said:


> Da Goon, thanks for your help through PM! I finally was able to use your script to upgrade from 4.01 to 9.1....


Cool. Thanks for useful feedback. Your situation has given me a few things to try with the script. Glad you got it working.


----------



## Da Goon

sooner said:


> And that brings me to a final question I'm sure anyone could answer for me - I am assuming that with the TiVo Wireless G USB network adaptor (and now that I'm up to version 9.1 on my Series2 SA), I can connect at USB 2.0 speed now, right? I'm not just limited to a USB 1.1 speed? Just want to make sure.


Yes you'll get 2.0 speeds with the tivo brand adapter. However, since you're running 9.1, wireless adapters can sometimes be a ***** to get working. You have 2 options (for ANY wireless dongle).

1. Use replace_initrd to neuter a 9.1 kernel or build one from scratch (9.1 source code was posted recently - tivo.com/linux), and use monte to "chainload" it. This would be in conjunction with the stock usb drivers.
2. Use older drivers (7.3.1 maybe?) with your older killhdinitrd'd kernel.

I've tried both options, had limited success with #2, but #1 has worked every time.


----------



## sooner

Da Goon said:


> Yes you'll get 2.0 speeds with the tivo brand adapter. However, since you're running 9.1, wireless adapters can sometimes be a ***** to get working. You have 2 options (for ANY wireless dongle).
> 
> 1. Use replace_initrd to neuter a 9.1 kernel or build one from scratch (9.1 source code was posted recently - tivo.com/linux), and use monte to "chainload" it. This would be in conjunction with the stock usb drivers.
> 2. Use older drivers (7.3.1 maybe?) with your older killhdinitrd'd kernel.
> 
> I've tried both options, had limited success with #2, but #1 has worked every time.


Da Goon, I couldn't tell if you were implying I may also have trouble with my TiVo USB wireless adaptor or just any other brand but TiVo. But sure enough I am having trouble with the TiVo wireless adaptor. Every time I plug it into the USB port, it connects to my wireless network and then TiVo immediately reboots itself. If I leave it plugged in, I get an endless reboot cycle. Once I unplug it, the TiVo reboots normally.

This is what is displayed through my serial connection when I plug in the TiVo adaptor:



Code:


hub.c: port 1, portstatus 501, change 1, 480 Mb/s
hub.c: port 1, portstatus 501, change 0, 480 Mb/s
hub.c: port 1, portstatus 501, change 0, 480 Mb/s
hub.c: port 1, portstatus 501, change 0, 480 Mb/s
hub.c: port 1, portstatus 501, change 0, 480 Mb/s
hub.c: port 1, portstatus 511, change 0, 480 Mb/s
hub.c: port 1, portstatus 511, change 0, 480 Mb/s
hub.c: port 1, portstatus 503, change 10, 480 Mb/s
usb.c: USB device 2 (vend/prod 0xa5c/0xbd11) is not claimed by any active driver.
hub.c: port 2, portstatus 100, change 0, 12 Mb/s
hub.c: port 3, portstatus 100, change 0, 12 Mb/s
hub.c: port 4, portstatus 100, change 0, 12 Mb/s
hub.c: port 5, portstatus 100, change 0, 12 Mb/s
Switching to OHCI
hub.c: port 1, portstatus 101, change 1, 12 Mb/s
hub.c: port 1, portstatus 101, change 0, 12 Mb/s
hub.c: port 1, portstatus 101, change 0, 12 Mb/s
hub.c: port 1, portstatus 101, change 0, 12 Mb/s
hub.c: port 1, portstatus 101, change 0, 12 Mb/s
hub.c: port 1, portstatus 103, change 10, 12 Mb/s
hub.c: port 2, portstatus 100, change 0, 12 Mb/s
hub.c: port 3, portstatus 100, change 0, 12 Mb/s
hub.c: port 1, portstatus 501, change 1, 480 Mb/s
hub.c: port 1, portstatus 501, change 0, 480 Mb/s
hub.c: port 1, portstatus 501, change 0, 480 Mb/s
hub.c: port 1, portstatus 501, change 0, 480 Mb/s
hub.c: port 1, portstatus 501, change 0, 480 Mb/s
hub.c: port 1, portstatus 511, change 0, 480 Mb/s
hub.c: port 1, portstatus 511, change 0, 480 Mb/s
hub.c: port 1, portstatus 503, change 10, 480 Mb/s
hub.c: port 2, portstatus 100, change 0, 12 Mb/s
hub.c: port 3, portstatus 100, change 0, 12 Mb/s
hub.c: port 4, portstatus 100, change 0, 12 Mb/s
hub.c: port 5, portstatus 100, change 0, 12 Mb/s
hub.c: port 1, portstatus 100, change 3, 12 Mb/s
hub.c: port 2, portstatus 100, change 0, 12 Mb/s
hub.c: port 3, portstatus 100, change 0, 12 Mb/s
hub.c: port 1, portstatus 100, change 2, 12 Mb/s
hub.c: port 2, portstatus 100, change 0, 12 Mb/s
hub.c: port 3, portstatus 100, change 0, 12 Mb/s
Unable to handle kernel paging request at virtual address 00000018, epc == 8003eebc, ra == 800d1cd0
Oops in /build/sandbox-b-7-2-2-mr-release-mips-other/b-7-2-2-mr/os/linux-2.4/arch/mips/mm/fault.c::do_page_fault, line 395:
$0 : 00000000 9001fc00 818ebcc0 818ebcc0 00000000 00000000 00000000 0000002c
$8 : a9fe4615 80b3e08c 00000000 00110806 00010800 8037cef0 7fd7f640 06040001
$16: 00000000 8141c760 00000060 80b3e060 802b4080 8037cec8 00000806 00000000
$24: 00000000 00000000                   8037c000 8037cda8 02a3b16c 800d1cd0
Hi : 00000000
Lo : 00000000
epc  : 8003eebc    Tainted: P
Status: 9001fc03
Cause : 00000008
Process SystemServices (pid: 169, stackpage=8037c000)
Stack:    00000000 8013d48c 800d1a2c 804780f8 800d1cd0 8141c760 00000060
 80b3e060 802b4080 8037cec8 818ebc60 8141c760 800d244c 800d2438 8037cea8
 8013d48c 8037cea8 00008b21 80ca4200 8141c760 818ebc62 0000002a 800d69f4
 800d0f8c 818ca63c 10143860 8141c760 80ca4200 8141c760 80ca4200 801235e8
 801235b0 0102069b 00000005 804b2500 818ca620 00000000 0000002a 02c5bfc8
 80031fe0 ...

Trace: 8003eebc 800d1cd0 800d244c 800d69f4 801235e8 800ce094 800ce2f0 80045020
       800c2b88
Code: 27bd0018  27bdffe8  afbf0010 <8c820018> 00021382  30420001  1440000a  8fbf0010  c0830014
Kernel panic: Die called

 Core of 0 bytes written
Panic logged
Rebooting in 1 seconds..

Does this give anybody enough of a clue as to what is going on? Kernel problems I take it? I also have my log files from /var/log if those are needed to ascertain the problem.


----------



## Da Goon

That's what I was expecting to happen. From the usb backport readme :


jamie said:


> TiVo modified some kernel network data structures in TiVo software version 8.x. One side effect of this is that network modules compiled against an 8.x kernel will crash when loaded on a system with an older kernel and vice versa.


This applies to 9.1 also. You should be running an older kernel (3.1.5 or 7.2.2-oth-K1), since they are compatible with killhdinitrd. When your box loads the native 9.1 drivers, it will crash every time. As I said before, you have 2 options to work around this if you are using any wireless dongle. Either find older drivers from some 7.x source (usbcore.o,usb-ohci.o, and usb-cdc.o I believe), or use monte to load a 9.x kernel of some kind without changing drivers.


----------



## Da Goon

sooner said:


> tivo:/var/tmp$ bootpage -p /dev/hda
> root=/dev/hda7 dsscon=true console=2,115200 BASH_ENV=`mount$IFS-n$IFS/dev/hda16 $IFS/mnt;echo$IFS/mnt/runmonte`
> .....
> Your script looks within that file for a string "version 2.4.20-TiVo". However, the kernel I obtained from that CD only had the string "version 2.4.20"


I've fixed the script to account for both of these issues and updated the OP. If BASH_ENV is found in your bootpage the script will exit immediately. I also removed the "TiVo" part of the kernel string check, and can't seem to find why I put that in there to begin with. Thanks sooner.


----------



## sooner

bootpage question. If I do a 'bootpage -p /dev/hda' and I do not get "upgradesoftware=false" within the line that is returned, does that mean my TiVo will accept new software releases? How can one tell what upgradesoftware is set to?

I know my TiVo was not accepting (obviously) new software releases prior to using your upgrade script, Da Goon. So I assume that has not changed after using your script?

And if I ever decided to accept software updates, I assume I would have to issue a "bootpage -P ....... upgradesoftware=true" command. In other words, if you issue a "bootpage -P ...." command without including the upgradesoftware parameter then no change is made to upgradesoftware, correct? I sure hope my questions make sense - afterall, its after 2AM and my mind is mush!


----------



## Da Goon

You need to have the upgradesoftware variable set to false somewhere. Most put it in bootpage, before you probably had something like "export upgradesoftware=false" in rc.sysinit. You can type 'env' to see your environment variables or 'echo $upgradesoftware' to see if it's currently set to false. I'd recommend to stick it in your bootpage just to be sure.


----------



## sooner

Yes, but that is what is strange to me - echo $upgradesoftware returns nothing. When I do a list of the env, there is no upgradesoftware variable set.

And there is no "export upgradesoftware" in rc.sysinit or rc.sysinit.author. It doesn't exist anywhere. I know I was not allowing software upgrades before. I'm not sure how I was though. And if it doesn't exist as an environment variable and its not set in rc.sysinit - then does that mean it is neither true or false? Bottom-line - will my software update automatically?

I have read on DDB that at least one "guru" there prefers it being set as a bootpage parameter and as you suggested Da Goon. The suggestion is to do something like the following:
"bootpage -p /dev/hda". Take what is echoed back and insert it into:

bootpage -P "{echoed back info} upgradesoftware=false"

is there another /dev/hda or something like that required at the end of the command?


----------



## Da Goon

sooner said:


> Yes, but that is what is strange to me - echo $upgradesoftware returns nothing. When I do a list of the env, there is no upgradesoftware variable set.


That means it's not set anywhere. It was probably in rc.sysinit before, and since there are considerable differences with the 4.x rc.sysinit and 9.1 version, we didn't copy it over.


> Bottom-line - will my software update automatically?


Yep.


Code:


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

Will take care of it. Just make sure to change X to 4 or 7 as needed. 'dsscon' will give you serial output messages and 'console' will set terminal speed to 115200 baud. In the future, when installSw.itcl runs, it should update your bootpage simply by switching the root values between 4 and 7, and will leave the rest of the statement in tact.


----------



## bigrig

Any update necessary to the script to upgrade to 6.4a?

Thanks, 
Matt


----------



## temp357

i used the script to upgrade to 6.4 and it worked fine for the most part. It did not copy the backported drivers and I have no networking after the upgrade. I still have lockups on some channels that have low signal quality.

I expect to pull the drive over this next week and see if zipper works with it.


----------

