Serial communication on modern Linux Connect to your console for troubleshooting with Tio, a Linux serial communication program. - JohnHau/mis GitHub Wiki
Image by: Opensource.com
As a systems engineer, I spend a lot of time in data centers configuring servers and other computer equipment. Two of the items I keep in my toolkit are an RS-232 serial-to-USB converter and a standard DB-9 serial cable. These can be indispensable when you have no other way to access a device. You may need to deploy a new router that has not yet been configured for your network. You might need to troubleshoot a firewall appliance that has become inaccessible via SSH. In a "lights-out" environment, in particular, new servers may have a management card that needs to be initialized. A serial connection provides a direct path to a console for accomplishing these tasks.
I will use a Netgate appliance in this example. These are firewalls that have no mouse, keyboard, monitor, or other GUI capabilities. They're generally referred to as "headless."
Serial communications To connect with a device over serial, you need hardware that supports the RS-232 protocol. This is typically a nine-pin DB-9 serial port, often labeled serial, comm, or console. Most older computers have at least one. Most servers still have them, but most laptops and desktops don't any longer.
Find the serial port If your system doesn't already have a serial port, you'll need to use a converter like the one I mentioned. When you plug in the PL2303 converter to a USB port on your computer, the Linux kernel registers it as a USB TTY device.
There are several commands that you can use to query your system for its serial port configuration. Here are a few examples:
dmesg |grep tty
[252464.891372] usb 6-1: pl2303 converter now attached to ttyUSB0
setserial -g /dev/ttyUSB[0123]
/dev/ttyUSB0, UART: 16654, Port: 0x0000, IRQ: 0
ls /dev/serial/by-id/
usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0 In my case, it detects the converter as a pl2303 converter (or a Prolific Technology USB serial controller).
Connect a serial cable Connect your serial cable between the converter and the serial port on the device.
Log in with Tio Over the years, I've used different tools, such as Minicom and Screen. Tio is a newer and simpler tool described as "a simple TTY terminal I/O application." It is available on most Linux distributions, FreeBSD, and OpenWRT, as well as a Snap package. I used the standard package tool to install version 1.32 onto my Red Hat Enterprise Linux 8.1 server:
dnf info tio
dnf install tio
Initialize the connection with the tio command. In my experience, Tio didn't need any advance configuration; it worked out of the box. Be sure that you have the correct device path, as shown above:
tio /dev/ttyUSB0
tio /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0
You can use the Ctrl+t command sequence to interact with Tio. For instance, Ctrl+t+? will list available commands, and Ctrl+t+q quits Tio and takes you back to your Linux command prompt.
Conclusion We rarely think about or even use serial communications these days, but it is still useful. Data center people still need to be familiar with it.
Data centers can be remote, and once inside, you'll want to make sure you have all the proper tools. Besides a good Linux laptop, of course, I recommend the items above for managing those serial-enabled devices when necessary.