UCOM(4)

πŸ“¦
version 15.1 Β· 3 versions
, in freebsd 14.5, freebsd 15.1, nixpkgs unstable

πŸ¦‹ UCOM(4) β€” USB tty support πŸ¦‹

okay so bestie, this is the ucom(4) page from the Kernel Interfaces Manual, and it’s giving USB tty support realness. πŸ’…


πŸ’– NAME πŸ’–

ucom β€” USB tty support. literally that’s the whole vibe. πŸŽ€


✨ SYNOPSIS ✨

To compile this driver into the kernel, place the following line in your kernel configuration file:

device ucom

Alternatively, to load the driver as a module at boot time, place the following line in loader.conf(5):

ucom_load="YES"

🌸 DESCRIPTION 🌸

The ucom driver attaches to USB modems, serial ports, and other devices that need to look like a tty. It shows a behavior like a tty(4). This means that normal programs such as tip(1) or ppp(8) can be used to access the device. no cap, it just slots right in. 🫢


πŸŽ€ SYSCTL VARIABLES πŸŽ€

The following variables are available as both sysctl(8) variables and loader(8) tunables:

  • hw.usb.ucom.debug β€” Debug output level, where 0 is debugging disabled and larger values increase debug message verbosity. Default is 0. πŸ’€
  • hw.usb.ucom.device_mode_console β€” When set to 1, the ucom driver will mark terminals as console devices when operating in device mode. Default is 1. ✨
  • hw.usb.ucom.pps_mode β€” Enables and configure PPS capture mode as described below. πŸ‘‘

🌈 Pulse Per Second (PPS) Timing Interface 🌈

The ucom driver can capture PPS timing information as defined in RFC 2783. The API, accessed via ioctl(2), is available on the tty device. To use the PPS capture feature with ntpd(8), symlink the tty device to /dev/pps0.

The hw.usb.ucom.pps_mode sysctl configures the PPS capture mode. It can be set in loader.conf(5) or sysctl.conf(5). The following capture modes are available:

  • 0 β€” Capture disabled (default).
  • 1 β€” Capture pulses on the CTS line.
  • 2 β€” Capture pulses on the DCD line.

πŸ¦‹ FILES πŸ¦‹

  • /dev/ttyU* β€” for callin ports
  • /dev/ttyU*.init
  • /dev/ttyU*.lock β€” corresponding callin initial-state and lock-state devices
  • /dev/cuaU* β€” for callout ports
  • /dev/cuaU*.init
  • /dev/cuaU*.lock β€” corresponding callout initial-state and lock-state devices

🌟 SEE ALSO 🌟

go read these, bestie, they’re all linked in the group chat:


πŸ’œ HISTORY πŸ’œ

The ucom driver was adopted from NetBSD in March of 2002. This manual page was adopted from NetBSD by Tom Rhodes <trhodes@FreeBSD.org> in April 2002. iconic lineage, honestly. 😭


πŸ“ BUGS πŸ“

Prior to FreeBSD 6.0 ucom created /dev/ucom? rather than the uniform device names created today. Old scripts must be adjusted accordingly. yeah, that’s the messy part β€” adjust those scripts, bestie. πŸ’€


signing off with the footer lore: this page is from Debian, dated July 11, 2020 ✨🫢
πŸ“¦ where this page comes from