I am using pilot-link 0.9.5 on a Linux 2.4.16 kernel.  I find that I
can run the various pilot-link tools just fine with $PILOTRATE set at
or below 19200.  However, faster rates (38400, 57600, 115200) simply
do not work at all.

I am using a very modern machine with a very modern motherboard.
"setserial" confirms that I've got a proper 16550A UART.  Surely the
hardware itself is capable of sustaining faster rates?  (Or am I
mistaken?)  How should I go about trying to determine why faster rates
fail?  Serial communication is a mystery to me, and I'm really not
sure where to begin.

(Please forgive me if this is a FAQ; I suspect it must be.  Honestly,
I did hunt through mailing list archives, bug databases, and other web
resources before posting.  All I could find was a cryptic comment in
the pilot-link README and man page: "You are welcome to try higher
baud rates ... but various machines have various limitations."  That's
not very informative.)

Technical details on the Palm side:

   hardware:   Palm Vx
   OS:         PalmOS 3.5.2
   connection: DirectSerial; Speed: 115,200, Flow Ctl: Automatic
   hacks:      none active

Technical details on the Linux side:

   CPU:            Athlon XP 1800+
   motherboard:    Abit KG7
   north bridge:   AMD-760 [Irongate]
   south bridge:   VIA VT82C686 [Apollo Super South]
   kernel:         2.4.16 (self built)
   pilot-link:     0.9.5 (built by Ximian)
   connection:     /dev/pilot symlinked to /dev/ttyS0
   setserial -ga output:

      /dev/pilot, Line 0, UART: 16550A, Port: 0x03f8, IRQ: 4
              Baud_base: 115200, close_delay: 50, divisor: 0
              closing_wait: 3000
              Flags: spd_normal skip_test

Representative example of a failed command:

    % PILOTRATE=38400 pilot-xfer -l
       Port: /dev/pilot

       Please press the HotSync button now...
    Connected...
    Exiting on cancel, stopped before listing databases.

There's a delay of several seconds immediately after "Connected...",
during which the Palm times out and presents an error dialog.  On the
Linux side, strace reveals that pilot-xfer is in a loop where it
repeatedly executes the following three system calls:

    write(3, "\276\357\355\3\3\2\0\6\2\252\1\300\0\2.\0008Z", 18) = 18
    nanosleep({0, 28000}, NULL)             = 0
    select(4, [3], NULL, NULL, {2, 0})      = 0 (Timeout)

Looks like that loop runs about ten times.

For the record, neither "setserial" nor "stty" has been used to change
any port settings.

Thanks in advance for any hints.
_______________________________________________
Pilot-unix mailing list
[EMAIL PROTECTED]
http://hcirisc.cs.binghamton.edu/mailman/listinfo/pilot-unix

Reply via email to