Serial communication on modern Linux | Opensource.com

Serial communication on modern Linux

Connect to your console for troubleshooting with Tio, a Linux serial communication program.

computer servers processing data
Image by : 
Opensource.com
x

Subscribe now

Get the highlights in your inbox every week.

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.

converter_n_cable.png

USB to Serial converter and Serial Cable

(Alan Formy-Duval, CC BY-SA 4.0)

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."

netgate_device.png

Netgate Firewall Appliance

(Alan Formy-Duval, CC BY-SA 4.0)

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.

console_port.png

DB-9 Console port

(Alan Formy-Duval, CC BY-SA 4.0)

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.

netgate_rear.png

Converter and Cable connected

(Alan Formy-Duval, CC BY-SA 4.0)

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

tio_connected.png

Log into Netgate Management interface with tio

(Alan Formy-Duval, CC BY-SA 4.0)

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.

computer screen

Get the details on what's inside your computer from the command line.
Bug tracking magnifying glass on computer screen

Important files in proc give information about running processes that will help in debugging and troubleshooting.

About the author

Alan
Alan Formy-Duval - Alan has 20 years of IT experience, mostly in the Government and Financial sectors. He started as a Value Added Reseller before moving into Systems Engineering. Alan's background is in high-availability clustered apps. He wrote the 'Users and Groups' and 'Apache and the Web Stack' chapters in the Oracle Press/McGraw Hill 'Oracle Solaris 11 System Administration' book. He earned his Master of Science in Information Systems from George Mason University. Alan is a long-time proponent of Open...