2

I've long used terminal servers (like this) to access the serial consoles of various devices like switches and routers.

These terminal servers can be configured to make a serial console available over TCP port and SSH. So, instead of connecting to the device with a COM port, I just ssh to the terminal server and use a specific TCP number that's assigned to each physical serial port. It always works great.

Now I have a new problem. I got devices to which I connect through USB, but which use FDTI chips inside. When I plug a USB cable into these devices, I get 1 or more serial COM ports that appear on the host computer. That works too.

But what I would like to do is to make these "COM ports" usable over a terminal server through SSH even though they're behind a USB/FDTI interface. Is there a way to do that either through software or (preferably) hardware?

I see the same vendor I linked above has a terminal server with USB 3.0 ports, but it's unclear if that's what I want. I would like to avoid using drivers to virtualize a remote USB port so that it appears as a local USB port (which can then provide COM ports over it's HID profile). I would instead prefer to just be able to ssh to a particular "COM port" behind a USB connection to an FDTI-based device.

Does such a thing exist? Or are there software solutions that can make it happen with some kind of thin-client like a raspberry PI or other intermediary host computer?

I suspect I may just need to use the correct vocabulary words to express what I want. Am I using the right words? Is there a name for this?

teego1967
  • 121

1 Answers1

2

It would probably be easiest to turn a computer (e.g. a Pi) into a terminal server. Anything that runs Linux and has enough USB ports will do: users just SSH into the system and run picocom (or minicom, or screen, or dterm, or tio, or other similar software) to attach to their /dev/ttyUSB## or /dev/ttyACM## devices.

Access to individual tty devices can be controlled via udev rules to assign file permissions or group ownership, or the user's regular shell can be replaced with a custom captive shell that only allows specific commands, or with one that directly connects the user to their assigned serial port. (The same kind of system could also be used with IPMI serial-over-LAN for devices that support it, just by running the appropriate Linux tools.) Finally, ser2net can be used to make a serial port directly accessible over a raw TCP port (i.e. telnet).

(At work, we had to bodge together something very similar for just one USB-serial port – however, one that uses PL2303 rather than FTDI – so we actually used a spare RouterBoard Wi-Fi AP instead of a Pi-like computer, as RouterOS has a "/system serial-terminal" command and even the ability to dump specific users directly into a serial port.)

grawity
  • 501,077