catdog
29-09-2006, 11:22 AM
I finally got around to making a fix so tivo can connect to ISPs who don't support plain text authentication, and instead jump straight to a PPP session to authenticate using PAP (which seems to be a large number of the ISPs in NZ).
Previously trying to connect would give a result in the tclient log like:
Sep 29 01:18:58 (none) comm[148]: Trying to connect
Sep 29 01:19:12 (none) comm[148]: ATDTxxxxxxxx
Sep 29 01:19:12 (none) comm[148]: CONNECT 19200/
Sep 29 01:19:12 (none) comm[148]: Got a connection.
Sep 29 01:19:12 (none) comm[148]: Trying to login
Sep 29 01:19:24 (none) comm[148]: ModemImpl: EXP_TIMEOUT
What this means is that tivo is waiting for the ISP to say in plain text "Login:". Because the ISP has already started PPP, the tivo never sees this string (instead it sees something like "~ÿ}#À!}!} } }7}"}&} } } } }%}&}83jO}'}"}(}"}-}#}&¦•~") and times out.
This mod means that Tivo never tries to authenticate using plaintext, and instead immediately starts PPP once the modem connects. PAP authentication is done and the tclient log now looks like:
Sep 29 01:26:28 (none) comm[150]: Trying to connect
Sep 29 01:26:41 (none) comm[150]: ATDTxxxxxxxx
Sep 29 01:26:41 (none) comm[150]: CONNECT 19200/ARQ
Sep 29 01:26:41 (none) comm[150]: Got a connection.
Sep 29 01:26:41 (none) comm[150]: Trying to login
Sep 29 01:26:41 (none) comm[150]: Login is complete.
Sep 29 01:26:41 (none) comm[150]: Modem dialcode is 1
Sep 29 01:26:41 (none) comm[150]: CallStatusReporter: Phase: Calling, Status In Progress
Sep 29 01:26:41 (none) comm[150]: CallStatusReporter: sending message "CL|31"
Sep 29 01:26:41 (none) comm[150]: CallStatusReporter: Phase: Start_PPP, Status In Progress
Sep 29 01:26:41 (none) comm[150]: CallStatusReporter: sending message "ST|33"
Sep 29 01:26:41 (none) comm[150]: Going to start pppd.
Sep 29 01:26:41 (none) comm[150]: Pppd:Start: enter
Sep 29 01:26:41 (none) comm[150]: Pppd::Start: fork()ed (pid = 178)
Sep 29 01:26:41 (none) comm[150]: Pppd::Start: storing child pid as 178
Sep 29 01:26:41 (none) comm[150]: Pppd::Start: waiting for PPP - 1
Sep 29 01:26:41 (none) comm[178]: Pppd::Start: fork()ed (pid = 0)
Sep 29 01:26:41 (none) comm[178]: Pppd::Start: spawning pppd on /dev/ttyDSS at 19200 baud
Sep 29 01:26:44 (none) comm[150]: Pppd::Start: waiting for PPP - 2
Sep 29 01:26:44 (none) comm[150]: Pppd::Start: exit (succeeded)
Sep 29 01:26:44 (none) comm[150]: ModemImpl::enableLineStatusInterrupt: modem of type 6, lineStatusInterrupt DISABLED
Sep 29 01:26:44 (none) comm[150]: CallStatusReporter: Phase: Start_Auth, Status In Progress
Sep 29 01:26:44 (none) comm[150]: CallStatusReporter: sending message "ST|33"
Sep 29 01:26:44 (none) comm[150]: CommUtil: connection to host 127.0.0.1, port 8000, err 0x0
Hence it connects successfully and downloads :)
How apply the patch:
At your own risk - if you screw up the file chances are that your tivo will not boot properly and require reimaging the drive!
UPDATE: The hack can be performed without having to copy the file to a PC. Instructions are further down this page Click Here! (http://forums.oztivo.net/showpost.php?p=10428&postcount=9)
FTP into tivo and copy the file /tvbin/tivoapp to your PC. Open the file in a hex editor and change:
Address From To
0x5132A7 03 3F 20 01 DA 3F 00 3F 20 01 DA 3F
0x5133AF 00 80 01 00 34 7C 01 80 01 00 34 7C
save the file as tivoapp.isp Note if the values shown here do not match then it is possible you have a different version of the file to mine - DO NOT CONTINUE!
Telnet into tivo and run the command (make the filesystem read/write)
rw FTP your tivoapp.isp file to /tvbin/tivoapp.isp
In the telnet session type:
cd /tvbin
mv tivoapp tivoapp.bak
mv tivoapp.isp tivoapp
ro
reboot
You can now connect to your ISP assuming you have already setup the modem (especially the files /etc/ppp-options and /etc/pap-secrets) as described in the oztivo wiki (http://minnie.tuhs.org/twiki/bin/view/Network/NetworkingWithBuiltinModem)
Comments/suggestions welcome :)
Previously trying to connect would give a result in the tclient log like:
Sep 29 01:18:58 (none) comm[148]: Trying to connect
Sep 29 01:19:12 (none) comm[148]: ATDTxxxxxxxx
Sep 29 01:19:12 (none) comm[148]: CONNECT 19200/
Sep 29 01:19:12 (none) comm[148]: Got a connection.
Sep 29 01:19:12 (none) comm[148]: Trying to login
Sep 29 01:19:24 (none) comm[148]: ModemImpl: EXP_TIMEOUT
What this means is that tivo is waiting for the ISP to say in plain text "Login:". Because the ISP has already started PPP, the tivo never sees this string (instead it sees something like "~ÿ}#À!}!} } }7}"}&} } } } }%}&}83jO}'}"}(}"}-}#}&¦•~") and times out.
This mod means that Tivo never tries to authenticate using plaintext, and instead immediately starts PPP once the modem connects. PAP authentication is done and the tclient log now looks like:
Sep 29 01:26:28 (none) comm[150]: Trying to connect
Sep 29 01:26:41 (none) comm[150]: ATDTxxxxxxxx
Sep 29 01:26:41 (none) comm[150]: CONNECT 19200/ARQ
Sep 29 01:26:41 (none) comm[150]: Got a connection.
Sep 29 01:26:41 (none) comm[150]: Trying to login
Sep 29 01:26:41 (none) comm[150]: Login is complete.
Sep 29 01:26:41 (none) comm[150]: Modem dialcode is 1
Sep 29 01:26:41 (none) comm[150]: CallStatusReporter: Phase: Calling, Status In Progress
Sep 29 01:26:41 (none) comm[150]: CallStatusReporter: sending message "CL|31"
Sep 29 01:26:41 (none) comm[150]: CallStatusReporter: Phase: Start_PPP, Status In Progress
Sep 29 01:26:41 (none) comm[150]: CallStatusReporter: sending message "ST|33"
Sep 29 01:26:41 (none) comm[150]: Going to start pppd.
Sep 29 01:26:41 (none) comm[150]: Pppd:Start: enter
Sep 29 01:26:41 (none) comm[150]: Pppd::Start: fork()ed (pid = 178)
Sep 29 01:26:41 (none) comm[150]: Pppd::Start: storing child pid as 178
Sep 29 01:26:41 (none) comm[150]: Pppd::Start: waiting for PPP - 1
Sep 29 01:26:41 (none) comm[178]: Pppd::Start: fork()ed (pid = 0)
Sep 29 01:26:41 (none) comm[178]: Pppd::Start: spawning pppd on /dev/ttyDSS at 19200 baud
Sep 29 01:26:44 (none) comm[150]: Pppd::Start: waiting for PPP - 2
Sep 29 01:26:44 (none) comm[150]: Pppd::Start: exit (succeeded)
Sep 29 01:26:44 (none) comm[150]: ModemImpl::enableLineStatusInterrupt: modem of type 6, lineStatusInterrupt DISABLED
Sep 29 01:26:44 (none) comm[150]: CallStatusReporter: Phase: Start_Auth, Status In Progress
Sep 29 01:26:44 (none) comm[150]: CallStatusReporter: sending message "ST|33"
Sep 29 01:26:44 (none) comm[150]: CommUtil: connection to host 127.0.0.1, port 8000, err 0x0
Hence it connects successfully and downloads :)
How apply the patch:
At your own risk - if you screw up the file chances are that your tivo will not boot properly and require reimaging the drive!
UPDATE: The hack can be performed without having to copy the file to a PC. Instructions are further down this page Click Here! (http://forums.oztivo.net/showpost.php?p=10428&postcount=9)
FTP into tivo and copy the file /tvbin/tivoapp to your PC. Open the file in a hex editor and change:
Address From To
0x5132A7 03 3F 20 01 DA 3F 00 3F 20 01 DA 3F
0x5133AF 00 80 01 00 34 7C 01 80 01 00 34 7C
save the file as tivoapp.isp Note if the values shown here do not match then it is possible you have a different version of the file to mine - DO NOT CONTINUE!
Telnet into tivo and run the command (make the filesystem read/write)
rw FTP your tivoapp.isp file to /tvbin/tivoapp.isp
In the telnet session type:
cd /tvbin
mv tivoapp tivoapp.bak
mv tivoapp.isp tivoapp
ro
reboot
You can now connect to your ISP assuming you have already setup the modem (especially the files /etc/ppp-options and /etc/pap-secrets) as described in the oztivo wiki (http://minnie.tuhs.org/twiki/bin/view/Network/NetworkingWithBuiltinModem)
Comments/suggestions welcome :)