ppp, chat and Motorola Bitsurfer PC

I am having trouble getting chat and pppd to work properly using the
Motorola Bitsurfer TA.  The same configuration works fine with an
analog modem.  When I change the /etc/ppp/options file to use the
new modem with the Bitsurfer TA PPP initialization string, it doesn't
work.  I am using kernel 2.1.35 and pppd 2.2.0f.  The initialization
string I'm using is AT&F&C1&D2S0=0%A2=95 (from the Bitsurfer manual).
The problem seems to be that the dial string is not being sent properly.
It sends TD8660091 instead of ATD8660091, which causes a failure.  The
output form /var/adm/messages is:

pppd[362]: pppd 2.2.0 started by root, uid 0
chat[364]: abort on (BUSY)
chat[364]: abort on (NO CARRIER)
chat[364]: send (AT&F&C1&D2S0=0%A2=95^M)
chat[364]: expect (OK)
chat[364]: AT&F&C1&D2S0=0%A2=95^M^M
chat[364]: OK -- got it
chat[364]: send (ATD8660091^M)
chat[364]: expect (Username:(login:))
chat[364]: ^M
chat[364]: TD8660091^M^M
chat[364]: NO
chat[364]: alarm
chat[364]: Failed
pppd[362]: Exit.

I've tried using AATD8660091 for the dial string.  This shows up in the
/var/adm/messages file as ATD8660091, but it still fails.  If anyone has
gotten a Bitsurfer TA working under Linux, I'd love to know how you got
it to work.
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

I'll bet you have a dial-in (getty or equivalent) process running on the port, and that program is stealing characters chat would like to see.  Make sure nothing is using the port before you start up pppd.  Also, the partial "NO ..." message chat received was probably "NO CARRIER."  This may have been caused by the getty program printing a "login:" prompt and causing the modem to abort the dial, or by the fact that the modem simply couldn't connect.   Before you even fool around with pppd, it's best to try connecting by hand, using minicom, xc, or some other terminal emulation software.  Type the modem setup strings and the ATD string by hand, and make sure the dialing, connecting, and login proceed correctly every time.  (If you *do* have an mgetty process running, you may find you have trouble with minicom as well.)

BTW, I have several BitSurfrs working here.  They're nice modems, but a little difficult to get working in Multi-Link mode.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
efullerAuthor Commented:
ps -w -tS1 shows that no processes are using ttyS1, which is the port the
Bitsurfer is recognized on.  I believe it is configured correctly.  I am using
the auto configuration of rc.serial to configure it.  It is being recognized on
the same IRQ and port as it is under Win95.  When I run minicom, it puts
the init string on the screen, but when I hit enter so that it can process the
string, the cursor doesn't return to the next line and the modem never
sends back a response.  Any other ideas?
Can you put a loopback plug on the serial port?  Just connecting pins 2 & 3 will do -- if it's a female plug, sacrifice a paperclip to the cause.  Then try minicom again.  If you don't get *exactly* what you type, somebody's stealing the characters.

BTW, the ps man page says that -t finds processes with the specified terminal as the *controlling tty*.  However, the getty I use (mgetty) doesn't acquire the line it's monitoring until after it's accepted a connection.  So, "ps -ax" on my main dialin machine gives:

 7554  ?  S    0:00 /usr/sbin/mgetty ttyS0

i.e. the process that's watching ttyS0 has no controlling tty.  (Mgetty is pretty good; when it notices that characters are available on the port, it looks for lock files before reading anything.  If it can't lock the port itself, it assumes the characters belong to somebody else.  Hmmm, you know it's possible that you just have a disagreement about where lockfiles go.  Pppd and minicom may be putting them in one place, while whatever's stealing your characters is looking for them somewhere else.)

Have you ever gotten any other type of modem to work on this port?
Bootstrap 4: Exploring New Features

Learn how to use and navigate the new features included in Bootstrap 4, the most popular HTML, CSS, and JavaScript framework for developing responsive, mobile-first websites.

efullerAuthor Commented:
I have reconfigured the serial ports.  I was able to get another modem
working on the same port.  The Bitsurfer is back on /dev/cua1 and
I am no longer having the problems with the missing characters.  When
pppd starts, it always dies due to an abort from the chat script due to a
 NO CARRIER message.  The ISDN line is definitely connected properly
and the ISDN line is working.  This has been tested by using an analog
modem with the POTS jack on the Bitsurfer.  This works fine.  Only the
Bitsurfer seems to think their is no carrier.  Any ideas about this?
Hmmm, this is tougher.  If you do the chat script by hand (using minicom), do you get connected?  If not, there's a chance that your modem is slightly misconfigured for your ISDN system.  (I'm not an ISDN guru, so this explanation may be slightly flawed, but anyway:) apparently, pure ISDN is a 64kbps-per-channel technology, but in many places your ISDN call will get switched through older equipment somewhere along the line.  This older equipment operates at 56kbps.  Now, the modem can be configured (AT%A4=xxx) to operate at 64kbps or 56kbps; if your call goes through something that can only run at 56k, but the modem is set to 64k, the connection won't work.  My BitSurfr manual says that 64k is the default setting, but I think I also saw an errata note that said the default had been changed to 56k.  In any case, you might want to try adding "AT%A4=1" to your initialization string.
efullerAuthor Commented:
My connection to my ISP is 112.5K.  The manual does say that the
default is supposed to be 64K, but who knows.  I'll try setting the
rate to 64K and the multiplier to 2.
efullerAuthor Commented:
I've tried using AT&F&C1&D2S0=0%A2=95%A4=1@B0=2 and
AT&F&C1&D2S0=0%A2=95%A4=0@B0=2 as the initialization strings,
but both result in NO CARRIER all the time.
Dual-link PPP is tough to get going.  What equipment does your ISP have on the other end?  Are you dialing into another BitSurfr, or into some sort of router?  In my case, I have linux boxes on either end, and BitSurfrs between.  I use almost the same init string, BUT! instead of "%A2=95", I have "%A2=3&M".  I think the PPP mode (%A2=95) is for dialing into a server that expects a synchronous connection, but I've never gotten it to work against our Cisco routers.

Again, have you been able to establish an ISDN connection by hand with minicom?  You'll probably want to start out at "@B0=1%A2=2" (single channel, v.120).  If you turn on all modem messages ("V1W1X2"), you may see something of use.  If you can get a single channel, and then see PPP garbage from the other end (it looks like 30- or 40-character bursts of line noise, with lots of curly brackets, at about 1-second intervals), you're in good shape.  If you get "CONNECT", then a pause, and then "NO CARRIER", it probably means the other end will only accept dual-link connections (so you should try "%A2=3&M@B0=2").  If you use "%A2=95", I'm pretty sure any PPP garbage you see will have been generated by *your* modem, not by the server.

Hmmm, what else...I know that @B0 setting mismatches between two BitSurfrs will keep them from connecting.  Also, the dial string for dual-link may need to be something like "ATDTnumber-a&number-b", where number-a and number-b are the numbers of each remote channel.  (The reference for this is p.7-2 in the manual, which I see now is the PPP section.  Maybe it doesn't matter, but the chat scripts I use say it.)
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Linux Networking

From novice to tech pro — start learning today.