200 lines
7.8 KiB
HTML
200 lines
7.8 KiB
HTML
<!--startcut ======================================================= -->
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
|
<html><head>
|
|
<META NAME="generator" CONTENT="lgazmail v1.1preB">
|
|
<TITLE>The Answer Guy 32:
|
|
Multiplexing the Computer -- ISDN Modem Connection
|
|
</TITLE>
|
|
<!-- ORIGINAL SUBJECT:
|
|
Mulitiple processes sharing one serial port
|
|
JTD SUBTITLE:
|
|
|
|
-->
|
|
</head>
|
|
|
|
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#A000A0"
|
|
ALINK="#FF0000">
|
|
<H4>"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
|
</H4>
|
|
<P> <hr> <P>
|
|
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
|
|
<H1 align="center"><A NAME="answer">
|
|
<img src="../gx/dennis/qbubble.gif" alt="" border="0" align="middle">
|
|
<a href="./index.html">The Answer Guy</a>
|
|
<img src="../gx/dennis/bbubble.gif" alt="" border="0" align="middle">
|
|
</A></H1>
|
|
<BR>
|
|
<H4 align="center">By James T. Dennis,
|
|
<a href="mailto:linux-questions-only@ssc.com">linux-questions-only@ssc.com</a>
|
|
<BR>Starshine Technical Services, <A HREF="http://www.starshine.org/">http://www.starshine.org/</A>
|
|
</H4>
|
|
<p><hr><p>
|
|
<!--endcut ========================================================= -->
|
|
<H3><img src="../gx/dennis/qbub.gif" alt="(?)"
|
|
width="50" height="28" align="left" border="0"
|
|
>Multiplexing the Computer -- ISDN Modem Connection</H3>
|
|
<p><strong>From Todd on 29 Jul 1998 </strong></p>
|
|
<!-- begin body -->
|
|
|
|
<p><strong>Is it possible to have more than one process accessing a single
|
|
serial port simultaneously? I have a USR Courier I ISDN, and would
|
|
like to use the analog B-channel for serving faxes using
|
|
Mgetty+Sendfax while the data channel is engaged. The problem is
|
|
that <tt>pppd</tt> locks the port and <tt>Mgetty</tt> times out while waiting on it.
|
|
Is there a way around this?
|
|
</strong></p>
|
|
<p><strong>Cheers,
|
|
<br>Todd
|
|
</strong></p>
|
|
|
|
|
|
<blockquote><img src="../gx/dennis/bbub.gif" height="28" width="50"
|
|
alt="(!)" border="0"
|
|
>The short answer is: you can <EM>NOT</EM> do what you want
|
|
from standard Unix/Linux. It would have to be via some
|
|
special (and probably proprietary) protocols and drivers
|
|
that would have to be supported by the Courier.
|
|
</blockquote>
|
|
<blockquote>It's certainly possible for multiple Unix/Linux processes
|
|
to concurrently access a file or device. It's just a
|
|
bad idea for serial devices. That, indeed, is the reason why
|
|
we mess with lock files. Without file locking our processes
|
|
will blithely step all over one another, disrupting
|
|
communications.
|
|
</blockquote>
|
|
<blockquote>Let's think about this a bit. You have your ISDN device
|
|
(If I recall correctly the Courier I is a combined NT1
|
|
and TA with analog modem/FAX support) connected to your
|
|
PC via a single serial line.
|
|
</blockquote>
|
|
<blockquote>When that line is carrying data, it's busy. In order
|
|
for it to carry two distinct streams of data there
|
|
would have to be some form of multiplexing going on.
|
|
This multiplexing would have to involve some protocol.
|
|
The device would have to have a method for encoding
|
|
and interlacing data from these two sources --- and
|
|
the system would have to have some way (some DRIVER)
|
|
for de-multiplexing it (splitting the original two
|
|
streams back out the single serial string).
|
|
</blockquote>
|
|
<blockquote>I've never heard of a device that does this. Any that
|
|
did would have to have drivers on the PC side ---
|
|
a Unix/Linux driver of this sort would undoubtedly
|
|
make the one serial port appear to be two (or more)
|
|
tty devices. (That would allow it to work with any
|
|
standard Unix/Linux utilities).
|
|
</blockquote>
|
|
<blockquote>PPP and SLIP have the effect of multiplexing multiple
|
|
connections over a serial line. Theoretically a smart
|
|
enough ISDN device could have its own IP address
|
|
assigned to it and insert its own TCP/IP packets over
|
|
your PPP/SLIP link when that was active. I've never
|
|
heard of such a device.
|
|
</blockquote>
|
|
<blockquote>Bonding the two B channels using the MP (multi-link
|
|
protocol) simply allows your two channels to act as
|
|
on highspeed interface. However this requires that
|
|
both B channels connect from your end to the same
|
|
point at the other end of the connenction (usually
|
|
the other B channel on the same physical device --
|
|
NT1 or NT2 at your ISP's end).
|
|
</blockquote>
|
|
<blockquote>In addition the top speed of a standard PC serial line
|
|
is 115200bps. The total bandwidth of your two B channels
|
|
is 128Kbps. Any multiplexing would involve some overhead
|
|
on this bandwidth. So the PC serial line becomes a
|
|
bottleneck even when you're just bonding the two B channels.
|
|
</blockquote>
|
|
<blockquote>Another approach would be to simply have two serial ports
|
|
on the ISDN TA/NT1. That would allow you to access the
|
|
analog services via one tty and the digital services
|
|
</blockquote>
|
|
<blockquote>The best resource I know of for info on ISDN would be
|
|
from Dan Kegel's pages:
|
|
</blockquote>
|
|
|
|
<blockquote><blockquote><code
|
|
><A HREF="http://alumni.caltech.edu/~dank/isdn"
|
|
>http://alumni.caltech.edu/~dank/isdn</A>
|
|
</code></blockquote></blockquote>
|
|
|
|
<blockquote>That should provide more than you wanted to know.
|
|
</blockquote>
|
|
<!-- end body -->
|
|
|
|
<!--startcut ======================================================= -->
|
|
<P> <hr> <P>
|
|
<H5 align="center"><a href="http://www.linuxgazette.com/copying.html"
|
|
>Copyright ©</a> 1998, James T. Dennis <BR>
|
|
Published in <I>Linux Gazette</I> Issue 32 September 1998</H5>
|
|
<P> <hr> <P>
|
|
|
|
<!--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-->
|
|
<table width="98%"><tr valign="center" align="center">
|
|
<td rowspan="3"><A HREF="./lg_answer32.html"><IMG
|
|
SRC="../gx/dennis/answernew.gif"
|
|
ALT="[ Answer Guy Index ]"></A></td>
|
|
<td><A HREF="tag_phreak.html">phreak</A>
|
|
<td><A HREF="tag_abandon.html">abandon</A>
|
|
<td><A HREF="tag_javaterm.html">javaterm</A>
|
|
<td><A HREF="tag_BBS.html">BBS</A>
|
|
<td><A HREF="tag_flaws.html">flaws</A>
|
|
<td><A HREF="tag_doslinux.html">doslinux</A>
|
|
<td><A HREF="tag_resume.html">resume</A>
|
|
|
|
</tr><tr valign="center" align="center">
|
|
<td><A HREF="tag_softwindows.html">softwindows</A>
|
|
<td><A HREF="tag_convert.html">convert</A>
|
|
<td><A HREF="tag_apache.html">apache</A>
|
|
<td><A HREF="tag_emulate.html">emulate</A>
|
|
<td><A HREF="tag_database.html">database</A>
|
|
<td><A HREF="tag_distrib.html">distrib</A>
|
|
<td><A HREF="tag_proxy.html">proxy</A>
|
|
|
|
</tr><tr valign="center" align="center">
|
|
<td><A HREF="tag_disable.html">disable</A>
|
|
<td><A HREF="tag_DVI.html">DVI</A>
|
|
<td><A HREF="tag_superblock.html">superblock</A>
|
|
<td><A HREF="tag_serial.html">serial</A>
|
|
<td><A HREF="tag_permission.html">permission</A>
|
|
<td><A HREF="tag_detach.html">detach</A>
|
|
<td><A HREF="tag_cdr.html">cdr</A>
|
|
|
|
</tr><tr valign="center" align="center">
|
|
<td><A HREF="tag_rs422.html">rs422</A>
|
|
<td><A HREF="tag_modem.html">modem</A>
|
|
<td><A HREF="tag_notfound.html">notfound</A>
|
|
<td><A HREF="tag_tuning.html">tuning</A>
|
|
<td><A HREF="tag_libc5.html">libc5</A>
|
|
<td><A HREF="tag_startup.html">startup</A>
|
|
<td><A HREF="tag_clock.html">clock</A>
|
|
<td><A HREF="tag_ping.html">ping</A>
|
|
|
|
</tr><tr valign="center" align="center">
|
|
<td><A HREF="tag_accounts.html">accounts</A>
|
|
<td><A HREF="tag_lilo.html">lilo</A>
|
|
<td><A HREF="tag_NDS.html">NDS</A>
|
|
<td><A HREF="tag_95slow.html">95slow</A>
|
|
<td><A HREF="tag_nonlinux.html">nonlinux</A>
|
|
<td><A HREF="tag_progenv.html">progenv</A>
|
|
<td><A HREF="tag_cluster.html">cluster</A>
|
|
<td><A HREF="tag_ftpd.html">ftpd</A>
|
|
|
|
</tr></table>
|
|
<P> <hr> <P>
|
|
<!--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-->
|
|
<A HREF="./index.html"><IMG SRC="../gx/indexnew.gif"
|
|
ALT="[ Table Of Contents ]"></A>
|
|
<A HREF="../index.html"><IMG SRC="../gx/homenew.gif"
|
|
ALT="[ Front Page ]"></A>
|
|
<A HREF="lg_bytes32.html"><IMG SRC="../gx/back2.gif"
|
|
ALT="[ Previous Section ]"></A>
|
|
<A HREF="./stemen.html"><IMG SRC="../gx/fwd.gif"
|
|
ALT="[ Next Section ]"></A>
|
|
<!--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-->
|
|
</body>
|
|
</html>
|
|
<!--endcut ========================================================= -->
|
|
|
|
|