PDA

View Full Version : 30K foot software upgrade process...



tivomaster
08-15-2003, 07:45 PM
Now that I understand the boot process thanks to mrblack. I would like to get a handle on the software upgrade process.
How does this work?

Nearest I can tell...

1. During the daily call a file is sent to /var/packages/NewSwVersion.
2. The TiVo creates a panic reboot upon reciept of this file with a code of 173.
3. This panic code sigals rc.sysint to set swupgrade variable to true
4. Later in rc.sysinit it checks for this variable set to true and if so calls /tvlib/tcl/updateSoftware.tcl
5. UpdateSoftware.tcl takes the file NewSwVersion and compares it to the running software version.
6. If it is different then the software is dowloaded via NFS? and installed....

This does not look right but from my "reading" of the code it appears to be the way it works.... Experts?

mrblack51
08-15-2003, 08:19 PM
Originally posted by tivomaster

6. If it is different then the software is dowloaded via NFS? and installed....

um, downloaded via NFS? eh?

do you mean the software is loaded into the mfs?

tivomaster
08-15-2003, 08:29 PM
Originally posted by mrblack51
um, downloaded via NFS? eh?

do you mean the software is loaded into the mfs?

That is why i put a ? on it... I was looking that the updateSoftware.tcl and it was looking like it did the update via a NFS mount. I knew that couldn't be true but I'll be heck if I can figure out how updateSoftware does it differently....

Teach me obwan......

GREEK
08-15-2003, 08:31 PM
READ, READ, oh little one, and expirement then you shall be taught............OK just ask

tivomaster
08-16-2003, 06:49 PM
Ok, I figured out where I was going wrong with the nfs stuff..

How about looking at this....

1. During the daily call (tclient) a file is sent to /var/packages/NewSwVersion.
1a. Files called slices are put in /var/packages/ directory. These files contain the update.
2. The TiVo creates a panic reboot upon reciept of this file with a code of 173.
3. This panic code sigals rc.sysint to set swupgrade variable to true
4. Later in rc.sysinit it checks for this variable set to true and if so calls /tvlib/tcl/updateSoftware.tcl
5. UpdateSoftware.tcl takes the file NewSwVersion and compares it to the running software version.
6. If it is different then the software is unpackaged from the slice files and installed the unused boot partition....
7. The bootpage is modified to point to the new boot partition
8. Reboot and away we go....

Am I close? :confused: