cyclades-ser-cli Serial Port Interface for Cyclades Terminal Servers
cyclades-ser-cli [options] devname rasname physport
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.
cyclades-ser-cli may be started with the following options:
Sets the internal device I/O size to ptyiosize (maximum 4096 bytes, default 1024 bytes)
Sets the internal socket I/O size to netiosize (maximum 512 bytes, default 128 bytes)
Delay in seconds between connection requests (default: 60)
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
-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 std-
out and cyclades-ser-cli runs in the foreground. This implies -f
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 sys-
tem 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.
In Solaris libcyclades-ser-cli.so does not work with the stty program. stty uses a different interface to this and requires some extra
In Solaris libcyclades-ser-cli.so conflicts with some system programs such as ps for unknown reasons. Just don't load it for those pro-
grams, it has no such problems with any serial comms programs.
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.