cyclades-ser-cli(8)
π cyclades-ser-cli β the serial port interface for Cyclades Terminal Servers, manual section 8 β¨
okay bestie, sit down, hydrate, because this one is so cool once it clicks. it's cyclades-ser-cli(8) and it's basically the little matchmaker that makes a Unix device file and a physical port on a big ol' terminal server fall in love. no cap. π«Ά
πΈ NAME πΈ
cyclades-ser-cli β Serial Port Interface for Cyclades Terminal Servers
like, that's literally the whole vibe: serial port interface, Cyclades terminal servers, that's it, that's the girl π
β¨ SYNOPSIS β¨
cyclades-ser-cli [options] devname rasname physport
three little positional besties at the end and you're good to go π
π¦ DESCRIPTION π¦
So. What this program does: it takes a Unix device file called devname and connects it to a physical port called physport, on a Cyclades Terminal Server called rasname. it's giving matchmaker energy π
cyclades-ser-cli is the I/O interface between the device file and the physical port, and the way it does that is by running as a 'user-mode device driver'. like, driver duties but make it userspace. obsessed. β¨
And here's a lil plot twist you need to know: if physport is assigned to 0, then rasname gets used as the IP address for IP-based serial port addressing. so rasname is doing double duty and honestly? main character behavior. π
π OPTIONS π
cyclades-ser-cli may be started with the following options, and bestie, there are eleven of them, so let's go one by one, no skipping, we do not skip in this house π
-uptyiosize β sets the internal device I/O size to ptyiosize. the max is4096bytes and the default is1024bytes. so like, that's the ceiling, don't try to be cute and go over it π-nnetiosize β sets the internal socket I/O size to netiosize. max is512bytes, default is128bytes. yes it's smaller than the device one, that's just how she is π-iretrydelay β the delay in seconds between connection requests. default is60. so if it can't get through, it waits a polite minute and tries again, lowkey patient queen β-rretries β how many connection request retries happen before it exits. default isinfinity, which is iconic of it honestly. she will keep trying forever unless you tell her not to π-sβ use the Socket Server protocol for talking to the server. what does that mean? it means just piping all the data down a TCP connection with no control information. which means it's impossible to change the port speed etc. so like, data go brrr but you can't fiddle with anything else. the default is to use the RFC2217 protocol instead π₯-mmodem handling β the default is0, which means to check DCD state.1means to ignore DCD. pick your fighter π¦-cclose mode β last close handling. the default is0, which means to hangup the modem;1means not to hangup. choose wisely, bestie πΈ-pstart port β the TCP base port of servers at the terminal server side. the defaults are31000for Socket server and30000for Remote Telnet Server. β οΈ note: if physport is assigned to zero, this option has no effect at all, because the Telnet Server standard port (23) is used instead. so don't be confused when nothing changes, it's not you, it's the config π-ddebug level β default is debug level0(little debugging). level1debugs internal state changes, level2debugs events, and level3debugs IO calls. so it's a lil ladder of how nosy you want her to be π-fβ run in the foreground. this is suitable for running frominit. very demure, very foreground β¨-xβ Console mode. normally all messages are sent tosyslogd(using thelocal2facility). with this option, all messages will be sent tostdoutandcyclades-ser-cliruns in the foreground. this implies-f. so it's-fbut louder and more extroverted π
π USE π
okay this part is the good part, this is where it all comes together.
Every instance of cyclades-ser-cli will have a virtual serial device, and that virtual serial device is a sym-link to a pseudo-tty. a terminal program can then talk to the virtual serial device, and its data transfers get redirected across the network. so the app thinks it's talking to a normal serial thing and meanwhile everything is βοΈ traveling βοΈ π₯
Each virtual serial device will be accompanied by a Unix domain socket with the same name, with the addition of .control on the end. so like, if cyclades-ser-cli provides the virtual device named /dev/modem, then it will have a control socket named /dev/modem.control. same name, lil .control suffix, they're a set, they're matching, it's a vibe π
There's also a shared object named libcyclades-ser-cli.so, and what it does is intercept calls to the tcsetattr() and tcsendbreak() functions. this shared object then sends the relevant data to the cyclades-ser-cli server via the control socket. and to recognise a virtual modem device, it has to read /etc/cyclades-devices. yes that's a file path, write it down bestie π«Ά
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 for that one, she's not gonna explain it here).
β οΈ big warning energy: note that the LD_PRELOAD environment variable has to have the fully qualified path of the object. otherwise an application which changes its current directory may fail. like, full path or it's over, no shortcuts π
π BUGS π
not everything is perfect and we respect the honesty.
- In Solaris,
libcyclades-ser-cli.sodoes not work with thesttyprogram.sttyuses a different interface to this and requires some extra coding. so like, it's not a her-problem, it's astty-is-built-differently problem π - In Solaris,
libcyclades-ser-cli.soconflicts with some system programs such asps, for unknown reasons. the fix is very simple though: just don't load it for those programs. it has no such problems with any serial comms programs, so your actual serial work is fine, breathe π
β EXAMPLES β
Start an interface between the /dev/prt1 device and serial port number 10 of a Terminal Server named pr01, without hangup at last close:
cyclades-ser-cli -c 1 /dev/prt1 pr01 10
see how the -c 1 is doing the "not to hangup" thing? yes queen, that's the close mode option showing off π
And in general use? do not start cyclades-ser-cli from the command line. start it through the cyclades-serial-client script or from init. that's the way, fr fr πΈ
π§ SEE ALSO π§
cyclades-serial-client(1)cyclades-devices(5)
go read those too, they're the supporting cast and they ate π
and that's the whole page, bestie!! this was cyclades-ser-cli(8) from the Cyclades terminal server docs, and yes she's section 8 because she's a system administration command and she knows it. mwah, love u, go connect some ports responsibly πβ¨ππ¦πΈπ
π«Ά
π¦ where this page comes from
- debian trixie: cyclades-serial-client 0.95
- ubuntu resolute: cyclades-serial-client 0.95
- ubuntu stonking: cyclades-serial-client 0.95
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms