carta
cyclades-ser-cli(8)

cyclades-ser-cli8

Usage

cyclades-ser-cli [options] devname rasname physport

Overview

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.

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.

History

  • Debian 13 (Trixie): the text shown here
  • Debian 12 (Bookworm) to Debian 3.1 (Sarge)

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.

From cyclades-serial-client 0.95 in Debian 13 (Trixie). Parsed by carta from the page's man source.