The cyclades-ser-cli program connects a Unix device file 'devname' to a
physical port 'physport' of a Cyclades Terminal Server 'rasname'.
cyclades-ser-cli provides the I/O interface between the device file and
the physical port, running as an 'user-mode device driver'.
If 'physport' is assigned to 0, then 'rasname' is used as the IP
address on an IP-based serial port addressing.
OPTIONS
cyclades-ser-cli may be started with the following options:
-u ptyiosize
Sets the internal device I/O size to ptyiosize (maximum 4096 bytes, default
1024 bytes)
-n netiosize
Sets the internal socket I/O size to netiosize (maximum 512 bytes, default
128 bytes)
-i retrydelay
Delay in seconds between connection requests (default: 60)
-r retries
Number of connection request retries before exiting. (default: infinity)
-s
Use the Socket Server protocol for talking to the server, this means just
piping all the data down a TCP connection with no control information, so it's
impossible to change the port speed etc. The default is to use the RFC2217
protocol.
-m modem handling
The default is 0 which means to check DCD state, 1 means to ignore DCD.
-c close mode
Last close handling; the default is 0 which means to hangup the modem, 1 means
not to hangup.
-p start port
TCP base port of servers at terminal server side (defaults: 31000 for Socket
server, 30000 for Remote Telnet Server). Note: if 'physport' is assigned to
zero, this option has no effect, the Telnet Server standard port (23) is used.
-d debug level
The default is debug level 0 (little debugging), level 1 debugs internal state
changes, level 2 debugs events, and level 3 debugs IO calls.
-f
Run in foreground, this is suitable for running from init.
-x
Console mode: normally all messages are sent to syslogd (using local2
facility). With this option, all messages will be sent to stdout and
cyclades-ser-cli runs in the foreground. This implies
-f
USE
Every instance of cyclades-ser-cli will have a virtual serial device which is
a sym-link to a pseudo-tty. A terminal program can then talk to the virtual
serial device and it's data transfers will be redirected across the network.
Each virtual serial device will be accompanied by a Unix domain socket with
the same name with the addition of ".control". So if cyclades-ser-cli
provides the virtual device named "/dev/modem" then it will have a control
socket named "/dev/modem.control". There is a shared object named
libcyclades-ser-cli.so
which intercepts calls to the tcsetattr() and tcsendbreak(). This shared
object then sends the relevant data to the cyclades-ser-cli server via the
control socket. To recognise a virtual modem device it has to read
/etc/cyclades-devices.
The libcyclades-ser-cli.so shared object can be loaded per-application
through the
LD_PRELOAD
environment variable, or for the entire system through the system shared
object configuration (see the OS documentation). Note that the LD_PRELOAD
environment variable has to have the fully qualified path of the object,
otherwise an application which changes it's current directory may fail.
BUGS
In Solaris libcyclades-ser-cli.so does not work with the stty program. stty
uses a different interface to this and requires some extra coding.
In Solaris libcyclades-ser-cli.so conflicts with some system programs such as
ps
for unknown reasons. Just don't load it for those programs, it has no such
problems with any serial comms programs.
EXAMPLES
Start an interface between /dev/prt1 device and a serial
port number 10 of a Terminal Server named pr01, without
hangup at last close:
cyclades-ser-cli -c 1 /dev/prt1 pr01 10
In general use do not start cyclades-ser-cli from the command line, start it
through the cyclades-serial-client script or from init.