cu(1c) on Solnix vs Linux and the BSDs

On Solnix, cu is the illumos cu at /usr/bin/cu. It is built on the uucp mechanism: it reads /etc/uucp/Devices and /etc/uucp/Systems and takes a telephone number or uucp system name. The BSD cu pages describe a serial-line terminal emulator that uses -l with a device and, on OpenBSD and NetBSD, remote(5).

What Solnix runs

A default Solnix system runs the illumos cu at /usr/bin/cu, published in pkgs.solnix.illumos-world-man. No other variants are shipped. The bundle text is trimmed, so the Solnix page's tilde escapes and exit status are not shown here.

Differences

Compared withTopicWhat differs
FreeBSD, OpenBSD, NetBSDconnection databaseSolnix cu uses the uucp control files /etc/uucp/Devices and /etc/uucp/Systems (and Sysfiles) to pick a medium. OpenBSD cu reads remote(5) for a host. NetBSD documents /etc/remote for tip. FreeBSD names no such file in the text shown.
Source: Solnix cu(1c) USAGE, Connection Phase; OpenBSD cu(1) DESCRIPTION (remote(5)); NetBSD cu(1) DESCRIPTION (/etc/remote)
FreeBSD, OpenBSD, NetBSD-s speed defaultSolnix -s takes 300 to 38400 and defaults to "Any" speed, which depends on the order of lines in /etc/uucp/Devices. FreeBSD, OpenBSD and NetBSD all default to 9600.
Source: Solnix cu(1c) -s; FreeBSD cu(1) -s; OpenBSD cu(1) -s; NetBSD cu(1) -s
FreeBSD, OpenBSD-speed shorthandFreeBSD and OpenBSD accept -speed (e.g. -9600) as well as -s speed. The Solnix synopsis shows only -s speed.
Source: FreeBSD cu(1) SYNOPSIS, -s; OpenBSD cu(1) SYNOPSIS, -s; Solnix cu(1c) SYNOPSIS
FreeBSD, NetBSD-t meaningOn Solnix, -t dials a terminal set to auto answer and maps carriage return to carriage-return-line-feed. FreeBSD and NetBSD describe -t as a hard-wired connection to a host on a dial-up line.
Source: Solnix cu(1c) -t; FreeBSD cu(1) -t; NetBSD cu(1) -t
FreeBSD, NetBSD-e and -o paritySolnix -e and -o are alternatives in the synopsis ([-o | -e]). FreeBSD says that giving both -e and -o means no parity, which is the default. The NetBSD page sets parity with -e, -o or -P parity, and says no parity is the default.
Source: Solnix cu(1c) SYNOPSIS, -e, -o; FreeBSD cu(1) -e, -o; NetBSD cu(1) -P
FreeBSD, OpenBSD, NetBSD-l lineOn Solnix, -l overrides the line search. Without -s, the speed comes from the matching record in /etc/uucp/Devices. With -s, cu checks that the speed is available there, otherwise it prints an error and does not call. BSD -l only names the device. OpenBSD defaults to /dev/cua00.
Source: Solnix cu(1c) -l; FreeBSD cu(1) -l; OpenBSD cu(1) -l; NetBSD cu(1) -l
FreeBSD, OpenBSD, NetBSD-c meaningSolnix -c device selects Devices entries by their Type field, usually a LAN name. NetBSD -c number means call this number. FreeBSD and OpenBSD have no -c.
Source: Solnix cu(1c) -c; NetBSD cu(1) -c; FreeBSD cu(1) SYNOPSIS; OpenBSD cu(1) SYNOPSIS
FreeBSD, OpenBSD, NetBSD-d meaningSolnix -d prints diagnostic traces. On OpenBSD, -d marks the line as directly connected so the driver does not wait for carrier. FreeBSD and NetBSD list no -d.
Source: Solnix cu(1c) -d; OpenBSD cu(1) -d; FreeBSD cu(1) SYNOPSIS; NetBSD cu(1) options
FreeBSD, OpenBSD, NetBSD-h and half-duplexSolnix -h sets half-duplex mode and emulates local echo. FreeBSD and NetBSD -h echoes characters locally (half-duplex). OpenBSD has no -h.
Source: Solnix cu(1c) -h; FreeBSD cu(1) -h; NetBSD cu(1) -h; OpenBSD cu(1) SYNOPSIS
FreeBSD, OpenBSD, NetBSD-C, -H, -L, -n, -bSolnix has -b (7 or 8 bits), -C (run local-cmd on the connection), -H (ignore one hangup, for callback), -L (login chat from /etc/uucp/Systems) and -n (prompt for the number). OpenBSD and FreeBSD have none of these. NetBSD -n means disable the tilde escape.
Source: Solnix cu(1c) -b, -C, -H, -L, -n; NetBSD cu(1) -n; FreeBSD cu(1) SYNOPSIS; OpenBSD cu(1) SYNOPSIS
OpenBSD, NetBSDescape character and restricted modeOpenBSD and NetBSD have -E to change the tilde escape character, and OpenBSD has -r for restricted mode. The Solnix synopsis has neither.
Source: OpenBSD cu(1) -E, -r; NetBSD cu(1) -E; Solnix cu(1c) SYNOPSIS
OpenBSDenvironment variablesOpenBSD cu reads HOST (default host) and REMOTE (system description or path). The Solnix text shown documents no environment variables for cu, apart from LC_CTYPE affecting -b.
Source: OpenBSD cu(1) ENVIRONMENT; Solnix cu(1c) -b

Standards

  • POSIX: cu is not a POSIX.1-2024 utility.

Writing portable scripts

  • Do not script cu across systems: the connection database (/etc/uucp files vs remote(5)), the -s default and the meanings of -c, -d, -n and -t differ.
  • To reach a serial console portably, check for the tool and pass -l with the device path, and set the speed explicitly with -s.

Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.