There are two basic problems, the first being that the 1284 interface
is not symmetrical -- in other words, there are more signals driven by
the peripheral end than by the host end, so that even if you were to
scramble the cable around (to make what are usually input signals on
one end become output signals, and vice versa) you wouldn't have
enough signals to go around. Because of this you wouldn't be able to
do any sort of 1284 negotiation, so the PC which is acting as host
wouldn't be able to put the channel into reverse mode. The second
problem is that, even if you were able to swap enough signals around
to get, say, compatibility mode to work, you wouldn't be able to use
the hardware on the receiving end to handle the data strobing -- you
would have to constantly poll the port and toggle the control signals
programmatically. This might not seem so bad, but sad experience has
shown that it's very difficult to do this in a way that avoids losing
data.
I wouldn't give up *all* hope, but it's certainly not as
straightforward as you thought. I know, for example, that Windows has
(had?) the capability of forming a "network" between 2 PC's connected
via the parallel port, but I don't remember if that required a special
cable or not (I *do* remember that the connection is/was fairly slow
compared with a network connection!). Also I seem to remember a lot
of discussion (on this list?) about doing PPP links via the parallel
port in Linux. Can anyone shed any light on those activities?
Doing a Google search on "1284 parallel port" should point you to
some more information that would help you better understand the
problems.
BTW, is there any particular reason you're trying to use the
parallel port rather than, say, an ethernet crossover cable?
-- Dave Strauss
On Wed, 22 Oct 2003 18:26:32 -0700 (PDT), Cherry Cortes<osagimakoto@yahoo.com> wrote:
>
> Is there a way that we can cheat the host to see the other end as a
> peripheral and not as another PC? Coz we should have in the host
> side the standard way of sending data, and so I think doing our own
> protocol wouldn't work.
>
>
> Dave Strauss <D.Strauss@motorola.com> wrote:
> On Wed, 22 Oct 2003 03:46:51 -0700 (PDT), Cherry Cortes wrote;
> >
> > We have a loop that only exits if there are some characters
> > received from the parallel port but the loop never breaks even we
> > have sent data. By the way, what we're trying to do is to connect 2
> > pcs wherein 1 acts as sender and the other as receiver ^_^
> >
>
> Well, you can't really do that with two PCs. Both of them are the
> host end of the IEEE-1284 standard, and in order to send data from one
> to the other one of them has to act as host and one of them has to act
> as a preipheral. I believe you should be able to transfer data by
> manipulating the data and control lines directly, but you won't be
> able to do it just by doing a read() call. You'll also probably have
> to come up with your own protocol. LapLink used to do this sort of
> thing -- they had a special cable and their own software. Are they
> still in business?
>
> -- Dave Strauss
>
>
>
> > Tim Waugh wrote:On Wed, Oct 22, 2003 at 03:31:55AM -0700, Cherry Cortes wrote:
> >
> > > > errno was EAGAIN and call to PPCLAIM was successful.
> > >
> > > You set O_NONBLOCK?
> > >
> > > Tim.
> > > */
> > >
> > >
> > > Yes, we already did. Have we missed any procedures/calls?
> >
> > Then you need to call read() again. :-)
> >
> > EAGAIN Non-blocking I/O has been selected using O_NONBLOCK and no data
> > was immediately available for reading.
> >
> > Tim.
> > */
> >
> >
>
>
-- To unsubscribe, send mail to: linux-parport-request@torque.net --
-- with the single word "unsubscribe" in the body of the message. --
This archive was generated by hypermail 2b29 : Thu Oct 23 2003 - 10:17:31 EDT