# Tivo crashed, now stuck at "Almost there"



## sdunne (Jul 6, 2002)

My tivo rebooted itself wednesday night. SInce then it can't seem to get past the grey "Almost There" screen, even though telnetd and twp are running and accessable. My tivo is LBA48 hacked with 2 * 300G maxtors and has been running like this for years. Last significant change was a new PSU back in early 2006 (noticed because /dev/hdb refused to spin up on boot), last change was installing twp 1.3.1 a couple of days earlier.

TiVo /var/tmp $ uname -a
Linux (none) 2.1.24-TiVo-2.5 #14 Wed Oct 8 12:06:25 MDT 2003 ppc unknown

Yanking the disks, whacking them into an old PC and booting mfs_tools 2 byteswapped lets me see that both disks appear fine with consistant partition tables and no obvious damage. its currently mounting / from hda4.

Back into the tivo they go and reboot.

UI is still stuck at grey "Almost there" screen, twp info shows me both disks have spun up and are working



> Filesystem Type Size Used Avail Capacity Mounted on
> /dev/hda4 ext2 124M 16M 101M 14% /
> /dev/hda9 ext2 124M 7.1M 110M 6% /var
> 
> ...


Any suggestions as to how to progress troubleshooting this one ?? Disks are still in the tivo at the moment, at least I *appear* to be still recording shows, but is only a few mins to whack em back in the PC again.

Please please help, live TV appears CBB dominated and I'll barf if I have to watch that


----------



## sdunne (Jul 6, 2002)

I don't soddin believe it 

I was checking my post for typos and noticed the disks are 124M each  Somehow the kernel doesn't appear to be LBA48 enabled any more  

It it just a case of repatching hda4 with the LBA48 kernel again or are there other things to check first ?

Would the attempts to boot and start non LBA48 have hosed the disk contents, leaving me to wipe and do a full installation ??


----------



## Raisltin Majere (Mar 13, 2004)

That looks right.

Hda4 and hda9 are partitions, not discs.


----------



## sdunne (Jul 6, 2002)

Raisltin Majere said:


> That looks right.
> 
> Hda4 and hda9 are partitions, not discs.


Bugger, so they are  So is that kernel image correct for LBA48 then ?

I must be having a brainfart day, I'd better leave it until tomorrow and head to the pub instead


----------



## Raisltin Majere (Mar 13, 2004)

you need to telnet into tivo and check /proc/version (there's probably a clever way, I just do joe /proc/version)

with the upgraded kernel you should have:

Linux version 2.1.24-TiVo-2.5 ([email protected]) (gcc version 2.8.1

I *think* the original one is similar but says [email protected]


----------



## sdunne (Jul 6, 2002)

Raisltin Majere said:


> you need to telnet into tivo and check /proc/version


TiVo/var/tmp $ *cat /proc/version*
Linux version 2.1.24-TiVo-2.5 ([email protected]) (gcc version 2.8.1) #14 Wed Oct 8 12:06:25 MDT 2003

OK, so I'm running the correct kernel, TivoWebPlus 1.3.1 is running, as is telnetd.

I can't see anything wong in messages



> Jan 1 00:03:31 (none) syslogd 1.3-3: restart.
> Jan 20 20:55:29 (none) Stats: == System startup resource statistics ==
> Jan 20 20:55:29 (none) Stats: ++ System build version numbers ++
> Jan 20 20:55:29 (none) Stats: b-2-5-5 @74190 2002.02.07-1746 release-tivo1 COMPACT_LAYOUT STANDALONE DIRECTV PAL TCPHONEHOME_POST_PROCESSING
> ...


Now that we're moving from looking at Linux to looking at the tivo app itself, I'm lost as how to proceed.


----------



## blindlemon (May 12, 2002)

Have you tried disabling the modemtest program? 

If your TiVo rebooted as the result of a power fluctuation or surge then your modem could be fried and the modemtest program could be hanging the boot sequence. 

mount -o remount,rw /
cd /tvbin
mv modemtest modemtest.old

then reboot.


----------



## sdunne (Jul 6, 2002)

blindlemon said:


> Have you tried disabling the modemtest program?
> 
> If your TiVo rebooted as the result of a power fluctuation or surge then your modem could be fried and the modemtest program could be hanging the boot sequence.
> 
> ...


I don't actually use the modem, just the ethernet on the cachecard. I'll rename the binary as above and reboot

OK, its rebooting now.......

and

W00t.. I now have a tivo UI. My next recording isn't due til midday, so I'll hook everything back up in the mornning.

BlindLemon, you've done it AGAIN !! That's twice you've bailed me out, thank you very much indeed !!


----------



## sdunne (Jul 6, 2002)

OK, slightly premature.

Tivo is still working fine, recording & playback is 

However daily calls seem to fail now. I'm suspicious as I've never used the modem once I installed the cachecard and it was calling via ethernet just fine.

Now it _appears_ to report a daily call failure in both the tivo ui and twp->Phone. UI Dial string is ,#401 and running nic_config_tivo reports the IP details I expect.


----------



## sdunne (Jul 6, 2002)

Never mind, UI is reporting a spurious error, it is updating over the LAN as the "programs until" date has incremented 

e2a: No it isn't  Either I misread the date or it reports differt dates on the tivo ui and tivowebplus.


----------



## Pete77 (Aug 1, 2006)

sdunne said:


> OK, slightly premature.
> 
> Tivo is still working fine, recording & playback is
> 
> ...


Suggest you might also need to try re-running Guided Setup after a reboot and changing your program source to aerial only (unless your source currently is aerial only) and waiting for it to finish reindexing. Then reboot again and re-run Guided Setup back to your current program source. This often seems to do the trick with daily call failing problems.


----------



## sdunne (Jul 6, 2002)

Guided setup is failing on the first phonecall 

The tivo's network connectivity appears fine, tivoweb is running and I can ping 204.176.49.32, which is what an old hhtp log suggests http_get is hitting for schedule data.

This is all being done with modemtest renamed.

It's getting a bit tense now, out of giude data from the 5th


----------



## blindlemon (May 12, 2002)

I would remove the ,#401 from the dial config for a start. You don't need it. 

What's the error?


----------



## sdunne (Jul 6, 2002)

This is the tcclient log. This was generated as a result of of the first call failing in a guided setup session. Below is the interesting bit from the kernel log, there's loads of the turbonet2 call log messages either side of the bit I've quoted.

I was wondering if a dummy modemtest exe that always returned success might help, but I'm not setup with a cross compiler.


```
01/27:17:50:56: /tvbin/TClient: inside TClient
01/27:17:50:56: /tvbin/TClient: No previously downloaded files remain in /var/packages
01/27:17:50:56: /tvbin/TClient: TClient: invoking init w/argv=-h
01/27:17:50:57: /tvbin/TClient: writing In Progress to LastCallStatus
01/27:17:50:57: /tvbin/TClient: TClient init: 0
01/27:17:50:57: /tvbin/TClient: dial config code: () found
01/27:17:50:57: /tvbin/TClient: no line matches code = 
01/27:17:50:57: /tvbin/TClient: Using default TiVo Service params
01/27:17:50:57: /tvbin/TClient: updateStatus: In Progress EX| 29 48
01/27:17:50:57: /tvbin/TClient: writing In Progress to LastCallStatus
01/27:17:50:57: /tvbin/TClient: SendDialupEvent 30 9 EX|29
01/27:17:50:57: /tvbin/TClient: Host = 204.176.49.3
01/27:17:50:57: /tvbin/TClient: Port = 80
01/27:17:50:57: /tvbin/TClient: Phone = 08081050005
01/27:17:50:57: /tvbin/TClient: updateStatus: In Progress EX| 29 8
01/27:17:50:57: /tvbin/TClient: SendDialupEvent 30 9 EX|29
retrying after errTmBackgroundHoldoff ...
retrying after errTmBackgroundHoldoff ...
01/27:17:51:04: /tvbin/TClient: DataSets may not be enabled, could not find ShowcaseVersion: DataSet ShowcaseVersion does not exist.
01/27:17:51:04: /tvbin/TClient: mrsigtype=1 mrconnector=1...
01/27:17:51:05: /tvbin/TClient: Using error search string: D15[@]813
01/27:17:51:27: /tvbin/TClient: encryptLog called with infile = /var/persist/thumbslog.log.gz outfile = /var/persist/thumbslog.log.gz.bfg keyname = BACKHAUL_THUMB
01/27:17:51:27: /tvbin/TClient: EncryptLog Could not find /var/persist/thumbslog.log.gz
01/27:17:51:28: /tvbin/TClient: encryptLog called with infile = /var/log/tivoLog.prv.gz outfile = /var/log/tivoLog.prv.gz.bfg keyname = BACKHAUL_PRIVATE
01/27:17:51:40: /tvbin/TClient: updateStatus: In Progress EX| 28 7
01/27:17:51:40: /tvbin/TClient: SendDialupEvent 30 9 EX|28
01/27:17:51:40: /tvbin/TClient: creating keyserver query
01/27:17:51:49: /tvbin/TClient: setting up Ident Block
01/27:17:51:49: /tvbin/TClient: returning messages: 
01/27:17:51:49: /tvbin/TClient: getting current software
01/27:17:51:49: /tvbin/TClient: found name = 2.5.5-01-1-023
01/27:17:51:50: /tvbin/TClient: found name = ACTIVE
01/27:17:51:50: /tvbin/TClient: Found 2.5.5-01-1 running
01/27:17:51:50: /tvbin/TClient: getting current showcases
01/27:17:51:50: /tvbin/TClient: getting locationID
01/27:17:51:50: /tvbin/TClient: Removing DBS objects in guided setup.
01/27:17:51:50: /tvbin/TClient: Current postalcode: E1W
01/27:17:51:50: /tvbin/TClient: getting headendID
01/27:17:51:50: /tvbin/TClient: skipping getHeadendIDList on SETUPHEAD call
01/27:17:51:50: /tvbin/TClient: setting up TCD411 block
01/27:17:51:50: /tvbin/TClient: setting area code: 
01/27:17:51:50: /tvbin/TClient: 
01/27:17:51:50: /tvbin/TClient: Start TCD411 Request ==================
01/27:17:51:50: /tvbin/TClient: areaCode: 
01/27:17:51:50: /tvbin/TClient: prefix: {}
01/27:17:51:50: /tvbin/TClient: dialInAreaCode: {}
01/27:17:51:50: /tvbin/TClient: curPhNum: 
01/27:17:51:50: /tvbin/TClient: objVer: 
01/27:17:51:50: /tvbin/TClient: tcdId: 023000060235E80
01/27:17:51:50: /tvbin/TClient: callId: 1169920257
01/27:17:51:50: /tvbin/TClient: dialPrefix: 
01/27:17:51:50: /tvbin/TClient: dialToneCheck: 
01/27:17:51:50: /tvbin/TClient: offHookDetect: 1
01/27:17:51:50: /tvbin/TClient: tonePulseDial: P
01/27:17:51:50: /tvbin/TClient: callWaitPrefix: 
01/27:17:51:50: /tvbin/TClient: tollFreeAuth: 3
01/27:17:51:50: /tvbin/TClient: callType: TS_SR_ACCEPTED
01/27:17:51:50: /tvbin/TClient: swVerName: 2.5.5-01-1-023
01/27:17:51:50: /tvbin/TClient: End TCD411 Request ==================
01/27:17:51:50: /tvbin/TClient: 
01/27:17:51:50: /tvbin/TClient: Start Ident =====================
01/27:17:51:50: /tvbin/TClient: version: 3
01/27:17:51:50: /tvbin/TClient: centerID: 023000060235E80
01/27:17:51:50: /tvbin/TClient: reasonCode: 6
01/27:17:51:50: /tvbin/TClient: softwareDesc: 468089-51|468071-1|468073-1|468075-1|468077-1|468079-1|468081-1|468083-1|468085-1|468087-1|468090-1|468091-1|468092-1|468093-1|468094-1|468095-1|468096-1|468097-1|468098-1|468099-1|468100-1|468101-1|468102-1|468103-1|468104-1|468105-1|468106-1|468107-1|468108-1|468109-1|468110-1|468111-1|468112-1|468113-1|468114-1|468115-1|468116-1|468117-1|468118-1|468119-1|468120-1|468121-1|468122-1|468123-1|468124-1|468125-1|468127-1|468128-1|468129-1|468130-1|468131-1|468132-1|468133-1|468134-1|468135-1|468136-1|468137-1|468138-1|468139-1|24252-77|24264-362|387715-4|61464-40|24273-54|24294-76|427608-4|24306-72|24337-54|24352-638|24358-36|24380-12|
01/27:17:51:50: /tvbin/TClient: locationID: E1W-816
01/27:17:51:50: /tvbin/TClient: sequenceCookie: 12345678
01/27:17:51:50: /tvbin/TClient: headendID: 
01/27:17:51:50: /tvbin/TClient: showcaseDesc: showcase0-0
01/27:17:51:50: /tvbin/TClient: inventoryFile: 0001172-13529|E1WAnt-13529-t2|ids:uk
01/27:17:51:50: /tvbin/TClient: waitingCount: 0
01/27:17:51:50: /tvbin/TClient: dialConfig: 
01/27:17:51:50: /tvbin/TClient: confInfo: 
01/27:17:51:50: /tvbin/TClient: messageDesc: 
01/27:17:51:50: /tvbin/TClient: irdbVersion: 303
01/27:17:51:50: /tvbin/TClient: genreVersion: 35
01/27:17:51:50: /tvbin/TClient: logoVersion: 24
01/27:17:51:50: /tvbin/TClient: affiliationVersion: 8
01/27:17:51:50: /tvbin/TClient: showcaseVersion: 
01/27:17:51:50: /tvbin/TClient: swVerName: 2.5.5-01-1-023
01/27:17:51:50: /tvbin/TClient: configParameterList: zip=E1W,dar=,rcq=,tz=7,as=,tun=,suc=
01/27:17:51:50: /tvbin/TClient: sourceParameterList: st=1,con=1,drm=,ekr=,ccn=,brn=,lin=N,irs=
01/27:17:51:50: /tvbin/TClient: apgOnly: 
01/27:17:51:50: /tvbin/TClient: useChksums: TRUE
01/27:17:51:50: /tvbin/TClient: premiumShowcases: SC_bsky50-299|SC_bsky59-298|SC_chfour56-302|SC_chfour66-303|SC_ukgold58-297|
01/27:17:51:50: /tvbin/TClient: captureRequests: 
01/27:17:51:50: /tvbin/TClient: menuItems: 
01/27:17:51:50: /tvbin/TClient: otherDataSets: 
01/27:17:51:50: /tvbin/TClient: rbBackgrounds: 
01/27:17:51:50: /tvbin/TClient: dataGroupList: CR_Standard|DG_standard|MI_Standard|SC_bsky50|SC_bsky59|SC_chfour56|SC_chfour66|SC_ukgold58|SF_SerialLogging|SW_released
01/27:17:51:50: /tvbin/TClient: lstAvalancheDnload: 0,0 0,0
01/27:17:51:50: /tvbin/TClient: userInitiated: 1
01/27:17:51:50: /tvbin/TClient: End Ident =====================
01/27:17:51:50: /tvbin/TClient: 
01/27:17:51:50: /tvbin/TClient: Logging camid.
01/27:17:51:50: /tvbin/TClient: CAM_ID not found.
01/27:17:51:50: /tvbin/TClient: Ird Id.
01/27:17:51:50: /tvbin/TClient: toneOrPulse = 0
01/27:17:51:50: /tvbin/TClient: dialPrefix = {}
01/27:17:51:50: /tvbin/TClient: callWaitingPrefix == {}
01/27:17:51:50: /tvbin/TClient: phoneNumber = 08081050005
01/27:17:51:50: /tvbin/TClient: phoneAvailableDetection = 0
01/27:17:51:50: /tvbin/TClient: dialToneDetection = 0
01/27:17:51:51: /tvbin/TClient: Starting dial.expect with:
01/27:17:51:51: /tvbin/TClient: toneOrPulse = T
01/27:17:51:51: /tvbin/TClient: dialPrefix = {}
01/27:17:51:51: /tvbin/TClient: callWaitingPrefix = {}
01/27:17:51:51: /tvbin/TClient: phoneNumber = 08081050005
01/27:17:51:51: /tvbin/TClient: phoneAvailableDetection = 1
01/27:17:51:51: /tvbin/TClient: dialToneDetection = 1
01/27:17:51:51: /tvbin/TClient: useV34 = 0
01/27:17:51:51: /tvbin/TClient: updateStatus: In Progress CL| 30 24
01/27:17:51:51: /tvbin/TClient: SendDialupEvent 30 9 CL|30
```


```
Jan 27 17:51:49 (none) kernel: turbonet2: call log: unexpected rx protocol 1 
Jan 27 17:51:50 (none) kernel: turbonet2: call log: unexpected tx protocol 1 
Jan 27 17:51:50 (none) kernel: turbonet2: call log: unexpected rx protocol 1 
Jan 27 17:51:51 (none) kernel: turbonet2: call log: unexpected tx protocol 1 
Jan 27 17:51:51 (none) kernel: turbonet2: call log: unexpected rx protocol 1 
Jan 27 17:51:52 (none) kernel: About to check tasks for tty to shutdown 
Jan 27 17:51:52 (none) kernel: spawn /tvbin/modemtest -expect 
Jan 27 17:51:52 (none) kernel: couldn't execute "/tvbin/modemtest": no such file or directory 
Jan 27 17:51:52 (none) kernel: while executing 
Jan 27 17:51:52 (none) kernel: "spawn /tvbin/modemtest -expect" 
Jan 27 17:51:52 (none) kernel: (file "//tvlib/tcl/tv/dial.expect" line 62) 
Jan 27 17:51:52 (none) kernel: while executing 
Jan 27 17:51:52 (none) kernel: "exec /bin/expect $tcl_library/tv/dial.expect $toneOrPulse $dialPrefix $callWaitingPrefix $phoneNumber $phoneAvailableDetection $dialToneDetection $ppp..." 
Jan 27 17:51:52 (none) kernel: (object "::tcBlock" method "::TClient::connectPPP" body line 70) 
Jan 27 17:51:52 (none) kernel: invoked from within 
Jan 27 17:51:52 (none) kernel: "connectPPP $phone $pppUser $pppPass" 
Jan 27 17:51:52 (none) kernel: (object "::tcBlock" method "::TClient::login" body line 448) 
Jan 27 17:51:52 (none) kernel: invoked from within 
Jan 27 17:51:52 (none) kernel: "$cli login" 
Jan 27 17:51:52 (none) kernel: (file "/tvbin/TClient" line 41) 
Jan 27 17:51:52 (none) kernel: sh: /tvbin/modemtest: No such file or directory 
Jan 27 17:51:52 (none) kernel: turbonet2: call log: unexpected tx protocol 1 
Jan 27 17:51:52 (none) kernel: turbonet2: call log: unexpected rx protocol 1 
Jan 27 17:51:53 (none) kernel: turbonet2: call log: unexpected tx protocol 1 
Jan 27 17:51:53 (none) kernel: turbonet2: call log: unexpected rx protocol 1 
Jan 27 17:51:54 (none) kernel: turbonet2: call log: unexpected tx protocol 1 
Jan 27 17:51:54 (none) kernel: turbonet2: call log: unexpected rx protocol 1 
Jan 27 17:51:55 (none) kernel: turbonet2: call log: unexpected tx protocol
```


----------



## blindlemon (May 12, 2002)

A missing modemtest program is not normally a problem (quite the reverse if your modem is broken). 

Never seen messages like those "unexpected tx" ones though....


----------



## sdunne (Jul 6, 2002)

I coulodn't find anything about them either, but I did notice that some people reported similar problems with daily calls when server processes weren't backgrounded correctly on startup.

I rang through the startup scripts and noticed the twp 131 /etc/init.d/TivoWebPlus script doesnt push the twp process into the background. I appended an ampersand, rebooted and the first guided setup worked !!

I'm just waiting for the anntenna only data load to finish then I'll re-add the sky-digital channels with another guided setup


----------



## Pete77 (Aug 1, 2006)

sdunne said:


> I rang through the startup scripts and noticed the twp 131 /etc/init.d/TivoWebPlus script doesnt push the twp process into the background. I appended an ampersand, rebooted and the first guided setup worked !


Rather than just a simple ampersand (&) at the end of each line in the startup file (rc.sysinit.author or rc.sysinit.author.edit) its better to have *>/dev/null 2>&1 &*

Now don't ask me precisely what that string does, other than that it backgrounds all these programs in priority in relation to the main Tivo operating system, but it seems to be widely used by the experts in all their recommended startup file commands and I have personally never had any trouble with my daily call in the 19 months since it started being made by network card and through my broadband ADSL modem connection, instead of via phone line.


----------



## yungee (Dec 29, 2002)

Pete77 said:


> Now don't ask me precisely what that string does


Seing as you didn't ask ... 

*2>&1* Tells the shell to map stderr (#2) onto stdout (#1), so both errors and output go to the same place, which is ...

*>/dev/null *Which tells it to send to the great bitbucket in the sky

*&* Backgrounds the process

If you wanted, you could send errors to a file and normal output to the bin. Unix seperates the two streams nicely (or rather gives a programmer the ability to seperate the two output streams if desired).


----------



## sdunne (Jul 6, 2002)

yungee said:


> Seing as you didn't ask ...
> 
> *2>&1* Tells the shell to map stderr (#2) onto stdout (#1), so both errors and output go to the same place, which is ...
> 
> ...


Stream spliting can be handy if the app has been coded well. ie errors to stderr, normal output to stdout, etc etc.

Anyhow I seem to be back in business


----------

