PDA

View Full Version : Fixup - What am I missing?



kspades
08-28-2001, 12:55 AM
I've ran the fixup script on my dtivo. All seem to have worked, but somewhere I heard someone mention something about looping the script. What does that do? How do I do it? after fixup script is there anything else I need to do? Will my tivo die after 30 days? (on like day 15 now)...lemme know if you guys know of any gotcha's b4 my baby goes belly up in 15 days.

GoneSilent
08-28-2001, 01:40 AM
You wont have a full blown tivo. You will how ever be able to record and have a buffer pause tv and such. You will not have full blown tivo with the fixup script. As for the looping of the script. That post was about allowing the tivo to call tivo. It will remove the script for you. Thats why they want a loop to rerun the script after setting the time with the test call.

mrblack51
08-28-2001, 03:29 AM
actually, gonesilent is only partially right. the reason the fixup script works beyond 30 days where the nomorenagz doesnt lies in the fact that it sets a few extra variables. these variables are relate to the last successful call.

when a tivo makes a call, all the necessary variables are updated. with the nomorenagz script, all the necessary last successful call variables arent set, thus triggering the 30 day lockout on tivo features.

the fixup script fixes all the needed variables, BUT (this part is very important), those time dependant variables are set when the script is run. SO, if you don't run the script again, you basically have the same problem as with the nomorenagz. the only difference being that you were able to reset the dates, you will still hit the 30 day problem.

running the script in a loop will ensure that the variables are updated at whatever interval you run the script.

kspades
08-28-2001, 04:27 PM
Can someone point me to the looping thread, or post what I need to make the script loop? Right now I'm pretty happy with what the fixup script delivers. I can live with out Network Showcase and Tivolution Magazine (they were helpful on my SA, but such is the price of freeTV), so if I can just get this final peice out the way, I can move on to bigger issues...like why my emu works on my 5gen Sony but not on my Hughes dTivo...

milhouse
08-30-2001, 06:18 PM
Why not just put it in an infinite while-do loop and use the sleep command. i.e: (end of the modified fixup02c.tcl)

# We are starting from rc.sysinit so we need to
# allow time for Tivo to completely start up
sleep 5m
while :
do
set db [dbopen]
FIXUP $db
dbclose $db
sleep 5d
done

I have not tested this yet but I plan to tonight.

Milhouse.

Electron
09-09-2001, 04:12 PM
milhouse

Were you able to test and verify if this patch to Fixup02c.tcl
works?

I am starting to get the nags after the Fixup script was run 28 days ago.

Any other ideas on a loop for this script please post.

Thanks
Electron

Fugg
09-10-2001, 12:27 AM
-answerd my own question...:)

chipster
09-10-2001, 02:55 AM
Here are my DTivo mods. This loops fixup each hour - though once every 29 days is enough. Anyway you go - the timer has to be reset every 30 days (or sooner).

Earlier attempts (NoMoreNagz) never reset the "real" timer - and you died after 30 days no matter how often you ran it. Fixup resets the "real" timer. But it still counts down from 30 days, so either loop it or run it directly once a month.

Works on v2.0.0 and 2.0.1 DTivos. Can't say for 2.5 - that's a whole different issue right now...

And yes - you get a full - one-tuner - DTivo.

Put a file called ".bash_login" in the root (remember to chattr +i this file or it will be deleted on boot). This is the only way I was able to get the loop to start (and keep running) on boot. This also assumes that you modified rc.sysinit to call for an interactive bash on STTY3 - as this file only gets executed at that time...

".bash_login" should contain:

# Login Commands for Bash
stty 57600
stty sane
/var/loop.itcl&


Put a file called "loop.itcl" in /var. It should contain:

#!/bin/bash
##########
# Fixup Loop #
##########

sleep 180

while (true)
do
{
/var/fixup.tcl
/bin/sleep 3600
}
done



Put "fixup.tcl" in /var. It's too long to post - so I've attached it (with a .txt extension - change to .tcl on the DTivo) - included my mods (complete=1 to 7, some changes in date equations). Many thanks to khmann for his insight into the DB structures.



Chipster

surgeon
09-10-2001, 03:58 PM
Actually you don't need to put it in a 'loop' script at all! A much better approach in my opinion is to edit the TClient file located in the tvbin directory and add a call to the 'fixup' script to the end of the file. That way when the unit tries to make it's daily call (you do have the phone line disconnected, right?!!!) it just runs the script after it does it's housekeeping...

Just remember to set the 'imutable' bit as you would with any modified TiVo file...

And GoneSilent is mistaken... On a dTivo you *do* end up with a "full-blown" TiVo if sub'ed to DTV, and 99.5% if emu'ed (there's the scheduled PPV recording issue that still needs to be worked out; for now you'll have to schedule a PPV recording via the manual timer...)

-Surgeon-

Electron
09-10-2001, 11:29 PM
surgeon,


I need more help to figure this out.

These are the last few lines of TClient:
}
puts $fd "TClient::$phase:retcode $retcode"
puts $fd "TClient::backHaulDone $backHaulDone"
if [catch {close $fd} res] {
puts "TClient: failed to close $tclientResFile: $res"
}
delete object srBlock
delete object tcBlock
sync
exit 0


I have Fixup02c.tcl in /var/tmp

How would I call it ? Like this?:

/var/tmp/fixup02c.tcl
or
call /var/tmp/fixup02c.tcl

Or some other way?

Would I put this line before exit 0
or after?Then do I chmod +x TClient ?
or how do I set the imutable Bit ?

Thanks
Electron

surgeon
09-10-2001, 11:55 PM
Electron,

Just add the fixup line as shown below:

}
puts $fd "TClient::$phase:retcode $retcode"
puts $fd "TClient::backHaulDone $backHaulDone"
if [catch {close $fd} res] {
puts "TClient: failed to close $tclientResFile: $res"
}
delete object srBlock
delete object tcBlock

/var/tmp/fixup02c.tcl

sync
exit 0



Then do chattr +i TClient...


Enjoy...
-Surgeon-

Electron
09-11-2001, 12:03 AM
Thanks

I will try it later tonite

Electron

chipster
09-11-2001, 01:18 AM
Seems like a great solution. I will also try it out next weekend.

Electron
09-11-2001, 05:18 PM
Is there a way to test if this is working?

I did a forced daily call, It failed because of no dialtone.

But last sucessful call date did not change.

If I run the fixup02c.tcl from a bash prompt the date and time change to reflect the current day and time.

Is a forced call different than a regular daily call?

Or do I have something wrong?

Electron

surgeon
09-11-2001, 06:05 PM
Electron,

It's normal for the updated date not to change for an hour or two when using my TClient method... Not sure why but that's the way it works on mine too...

-Surgeon-

Electron
09-14-2001, 11:03 AM
Well I never could tell if it was working or not so what I did was:

Put fixup02c.tcl in /var/tmp
chattr +i fixup02c.tcl

Edited rc.sysinit with:

/var/tmp/fixup02c.tcl

I put this on the next to last line just before the command
to enable bash prompt.

This works on a virgin drive just fine, first boot the script runs
you can do a reset anytime and it will rerun the fixup02c script.

If you look at system info it is updated with the current date and time.

Anyone see any problem doing it this way?

Electron

milhouse
09-14-2001, 11:46 AM
I did something similar except I used a small bash script that is launched from the rc.sysinit. The script waits for 2 minutes to make sure that the tivo is completely up and running, then it goes in to a loop that runs the fixup script and waits a day etc.

added "/hack/hacktivo &" to the rc.sysinit, and saved the following as hacktivo in a directory I created in the root called /hack.



#!/bin/bash
#
# Initialize Tivo Hack
#
# Wait for TiVo to Startup
sleep 2m
# Loop Fixup script
#
while :
do
/hack/fixup02c.tcl
sleep 1d
done

This will run the script once a day and every time the unit starts up.

You may want to add a delay (sleep 120) to the fixup script if you run it directly from rc.sysinit.

Milhouse

porthos
09-14-2001, 05:18 PM
I ran fixup02c.tcl and it worked great. I ran it twice. I uncommented the test call complete line, redownloaded and now it says "No such file or directory" when try it. I downloaded the original and the same thing. Any pointers?

Thanks

Porthos

Electron
09-14-2001, 08:14 PM
I think you have to use chattr +i on the fixup02c.tcl to keep it from being deleted, I know I had to do this when I put it in the /var/tmp directory.

Electron

mrblack51
09-14-2001, 10:35 PM
on a dtivo, you need to use complete as 7 instead of 1. 1 is an intermediary step in the completion process, 7 is after full guided setup

Electron
09-14-2001, 11:42 PM
Milhouse,

That works great.

I only had a problem until I remembered to chmod +x the bash script so it would execute.

I changed the sleep 1d to sleep 360 for a quick test without waiting a whole day, It works fine.

Now I am changing back to 1d

Thanks for the tip

Electron

Electron
09-15-2001, 12:07 AM
Milhouse,

That works great.

I only had a problem until I remembered to chmod +x the bash script so it would execute.

I changed the sleep 1d to sleep 360 for a quick test without waiting a whole day, It works fine.

Now I am changing back to 1d

Thanks for the tip

Electron

porthos
09-16-2001, 12:33 AM
I am so stupid. Somewhere in downloading fixup02 to my windows box and uploading to tivo, windows added end of line control characters into my script. Removed them (saw them) in Joe and all is rosy.

Beware of windows

Porthos

throwing
09-22-2001, 05:46 PM
I've got my directivo drive mounted in a PC, changes are made to the necessary files, and fixup02c is on the drive, but I cannot get chattr working from my other unix distrib.

What's the quickest and easiest way to get chattr on the drive?

I started with the Dylan boot floppy, but am using the tivo boot CD now to get the drive mounted, etc.

I cannot put this drive in my existing unix box since it's BSD w/o chattr...

Thanks!

Electron
09-22-2001, 06:32 PM
Here is how I do it.

Put the chattr files on a blank floppy

Connect the Tivo drive as HDC

Boot using DBD ( CD will not work )

Login as root.

Put the Floppy with chattr flies in drive A:

mkdir /dos
mkdir /temp

mount /dev/fd0 /dos

cd /dos
cp * /temp
cd/

cd temp
gzip -iN *

cp chattr /bin
cp lib* /lib

type chattr just to make sure it works.

cd\

umount /temp
umount /dos

mount /dev/hdc9 /temp

cd temp
cd tmp
chattr +i fixup02c.tcl ( This assumes you already have fixup02c.tcl in /var/tmp )

(Also be sure and chmod +x fixup02c.tcl.) ( chmod 775 also works I think )

I then load fixup02c.tcl in Joe and try to edit it should say READ ONLY at the bottom of screen.

Then umount /temp

This is all from memory but I am pretty sure it is correct.


Electron

throwing
09-22-2001, 07:46 PM
Ok, that's the same proceedure I used to get the fixup script to the drive, so I know that works for me.

What I need however, is the chattr binary and library tht will work with Dylan, etc. Since I have a BSD unix build I cannot "make" one on my box.

I found the native TiVo power PC one (if I could boot the drive without the files getting changed I'd use it) from the thread here:
http://dealdatabase.com/forum/showthread.php?s=&threadid=3925

Who can point me to a compiled chattr and library download, or post the files here?

Electron
09-22-2001, 08:32 PM
Here is the one I use with DBD


Electron

dsswhat
11-25-2001, 12:27 PM
This is a very cool place to know about :)

synthesis
11-25-2001, 05:23 PM
I run fixup from TClient-lib.itcl, and it gives me "successful" IMMEDIATELY after the call is finished. All the details are changed appropriate to a successful call in the system info screens. IOW, my system never says failed.

so I'm a little surprised that it takes time for your dtivo's to change "failed" to "succeeded"...