Commercial serial terminal servers (used to?) go for about a thousand bucks.
Bottom line, I think it’s (barely) cheaper to build one yourself, but only if all the research & development (read: ordering multiple prototypes) is already done, like it is now :).
I wonder what that overkill in speed is for. With serial ports you don't need that much bandwidth (48 ports x 100 kBits = 4,8 MBit/s, yes I know it's 115200 but too drunk for math). You could even run that thing with a 10 MBit/s LAN interface.
The only thing I understand is the PCIe stuff because USB latency can be problematic (especially on the Pi).
The Broadcom Trident 2/+ chipsets, that a lot of vendors use for their merchant silicon, only support 1, 10, and 40 gig PHY's. No more 10/100 on these switches (which are all over every datacenter).
The problem with them is that they use just an 8051 microcontroller (talking to an ethernet controller over a parallel port)! Arp and other broadcast background traffic on modern networks overwhelms them.
As the poster below said, GbE is mandated by a lot of data centres. 2 ports is also pretty useful too - you can aggregate them if you're concerned about reliability, you can use the console server to segment out a management network etc.
This lets you telnet to a serial port (uses xinetd and telnetd), just like commercial ones. It includes locking and a way to force disconnect of an inactive user hogging a port. I think it should work on the raspberry pi / Freetserv.
Other features: hex dump mode, suppress ansi mode, logging, reports name / ip address of user already connected to port.
The idea is you can connect to the console port of some machine under test. Once connected, you can also control its power. This is great for working on hardware remotely or linux kernel development.
Using a raspberry in one of these would make me scared that it won't come back after a power cycle because it has inevitably killed the filesystem or SD card.
A MIPS system from a router running OpenWRT would be a good fit, they usually boot from read-only mounted rock stable flash and have proper networking hardware.
Exactly — I’ve been running a couple of Raspberry Pis in a read-only setup ever since they were released, and they are still working fine with the same SD card and filesystem :).
I've been running my home server off of a cheap USB flash drive for years, and mounting it read-only essentially fixed all my fs troubles, even when the power cuts off (I don't use an UPS). The only problem is having to disable logging (I don't have anywhere to ship them to).
I'd love an open/non-shit IP-KVM, too. Right now it's basically a Raritan vs. Avocent duopoly (with lots of other rebrandings), and then IPMI (which is the right choice for huge numbers of homogenous machines, but wrong for a test lab).
Also an open source BMC would be nice, even for plain ipmi.
BTW, you can get pretty far with ipmi's serial over lan feature after enabling serial console. The only thing you can't do is run the Linux install DVD. Each Linux distro should have an option for serial console installer.
I've often wondered about this as well. A Raspberry Pi 2 seems to have enough horsepower to act as a very capable KVM type unit, and has an Ethernet port.
How hard is it to digitize analog VGA or interface directly with HDMI and encode to something like VNC using the GPU if necessary?
I have a bunch of $200-300 devices (from blackmagic for hdmi, or raritan for vga) to do this. It's doing 48 ports, with good OS/security, for $10-50/machine, which is hard.
I've been fiddling with this idea for a while and have basically come to the conclusion direct VGA capture isn't worth the trouble. There are VGA to HDMI converters available for about $20-$30 that do the job surprisingly well. There used to be a number of VGA -> digital chips available (TI TVP7002, etc) but they've all been EOL'd or NRND (Not recommended for new designs.)
For HDMI/DVI capture at this scale, the best option seems to be an FPGA based system. There are several boards available that have the necessary hardware but are expensive (relative to a 1-port IP-KVM), power hungry, or large (or all of the above.) The Digilent Zybo may have enough to pull it off (and has the ARM cores to boot) but is still a bit on the pricey / power hungry side. I'm hoping the new Snickerdoodle Zynq based boards will be able to do the job (with an add-on board)
Regarding using the Pi2, it might work, especially if it can be fed via the camera interface. The lack of USB-OTG (linux gadget support for KB / Mouse / Mass Storage) limits the usefulness somewhat.
I've been hopeful about the Beaglebone Black / X15 due to the USB-OTG and the tons of extra IO.
The other board of interest is the Dragonboard 410C - it can supposedly capture at 1080p60 (more than enough for the average system you'll stick a KVM on) but I'm not sure what that means explicitly (yet.) It does have USB-OTG (though it can't do USB Host / Device simultaneously.)
Regarding emulating a USB device, first thing that comes to mind is possibly using a micro of some sort that can act as a usb device, like an arduino or teensy. it's a bit hackish, but sending things over SPI should get more than ample speed for keyboard/mouse emulation, and there's code written already for a lot of micro platforms to do both.
Rasky is a low cost open source (hardware and software) KVM over IP built on top of the well known RaspberryPI model 2B featuring VGA video capture, USB keyboard and mouse emulation, remote control both by web (ajax VNC) and VNC, remote relay switches and digital inputs.
Cheap multiport terminal servers are available surplus.[1]
This one is $69 for 24 ports. You'll need a 48VDC power supply for it, though; this must have been for a telco installation.
I remember back in '95, someone basically saying exactly the same thing when asked why they were using a Linux machine stuffed with a couple of Cyclades cards to do the exact same thing. The more things change, the more they stay the same ..
I haven't looked at the details of this design but from past experience, I've found USB based serial ports to lose data at high speeds. I tend to use PCI/PCIe based cards instead.
We actually considered that as an alternative in the beginning, i.e. use a bunch of usb2serial adapters on a 1U rack-mountable USB hub.
We decided to go for serial ports because that ultimately is less clutter in the rack, i.e. the usb2serial adapters “go into” the unit instead, and you get to use rj45 connectors instead of bulky db-9 connectors.
That said, of course a generic usb hub could satisfy more use-cases. What’s yours?
I have a bunch of USB Devices and don't like the cable chaos.
Also, some of the USB powered USB devices I use rarely, hence each USB plug should be switchable.
33 comments
[ 3.0 ms ] story [ 85.3 ms ] threadBottom line, I think it’s (barely) cheaper to build one yourself, but only if all the research & development (read: ordering multiple prototypes) is already done, like it is now :).
I picked one up for $90ish shipped a few years ago. Not with anywhere near this many connections though.
I can hardly give the thing away now.
Eg. https://www.opengearstore.com/ProductDetails.asp?ProductCode... - PCIe UARTs rather than USB, 2 GbE ports, a bunch more software smarts, and support.
I wonder what that overkill in speed is for. With serial ports you don't need that much bandwidth (48 ports x 100 kBits = 4,8 MBit/s, yes I know it's 115200 but too drunk for math). You could even run that thing with a 10 MBit/s LAN interface.
The only thing I understand is the PCIe stuff because USB latency can be problematic (especially on the Pi).
The problem with them is that they use just an 8051 microcontroller (talking to an ethernet controller over a parallel port)! Arp and other broadcast background traffic on modern networks overwhelms them.
(look for serial connect / c.c)
This lets you telnet to a serial port (uses xinetd and telnetd), just like commercial ones. It includes locking and a way to force disconnect of an inactive user hogging a port. I think it should work on the raspberry pi / Freetserv.
Other features: hex dump mode, suppress ansi mode, logging, reports name / ip address of user already connected to port.
Also there is a script to control the outlets on this device: http://www.cpscom.com/controlled-ac-power-strip-cps-468.html (which is the cheapest computer controlled outlet strip I could find).
The idea is you can connect to the console port of some machine under test. Once connected, you can also control its power. This is great for working on hardware remotely or linux kernel development.
A MIPS system from a router running OpenWRT would be a good fit, they usually boot from read-only mounted rock stable flash and have proper networking hardware.
https://freetserv.github.io/software-setup.html (last section)
BTW, you can get pretty far with ipmi's serial over lan feature after enabling serial console. The only thing you can't do is run the Linux install DVD. Each Linux distro should have an option for serial console installer.
How hard is it to digitize analog VGA or interface directly with HDMI and encode to something like VNC using the GPU if necessary?
I have a bunch of $200-300 devices (from blackmagic for hdmi, or raritan for vga) to do this. It's doing 48 ports, with good OS/security, for $10-50/machine, which is hard.
For HDMI/DVI capture at this scale, the best option seems to be an FPGA based system. There are several boards available that have the necessary hardware but are expensive (relative to a 1-port IP-KVM), power hungry, or large (or all of the above.) The Digilent Zybo may have enough to pull it off (and has the ARM cores to boot) but is still a bit on the pricey / power hungry side. I'm hoping the new Snickerdoodle Zynq based boards will be able to do the job (with an add-on board)
Regarding using the Pi2, it might work, especially if it can be fed via the camera interface. The lack of USB-OTG (linux gadget support for KB / Mouse / Mass Storage) limits the usefulness somewhat.
I've been hopeful about the Beaglebone Black / X15 due to the USB-OTG and the tons of extra IO.
The other board of interest is the Dragonboard 410C - it can supposedly capture at 1080p60 (more than enough for the average system you'll stick a KVM on) but I'm not sure what that means explicitly (yet.) It does have USB-OTG (though it can't do USB Host / Device simultaneously.)
http://www.auvidea.eu/index.php/theme-styles/2014-12-30-22-3...
Regarding emulating a USB device, first thing that comes to mind is possibly using a micro of some sort that can act as a usb device, like an arduino or teensy. it's a bit hackish, but sending things over SPI should get more than ample speed for keyboard/mouse emulation, and there's code written already for a lot of micro platforms to do both.
https://www.nexlab.net/product/rasky/
Rasky is a low cost open source (hardware and software) KVM over IP built on top of the well known RaspberryPI model 2B featuring VGA video capture, USB keyboard and mouse emulation, remote control both by web (ajax VNC) and VNC, remote relay switches and digital inputs.
[1] http://www.unixsurplus.com/product/digi-cm-32-console-termin...
Before starting this project, we actually bought an old commercial serial terminal server, but ran into multiple issues with it.
One of them was a hardware issue where the vendor suggested the only fix was to replace the entire CPU.
Another is that these devices are so old by now that the software is full of security holes that will never be addressed.
Hence, I’m a bit sceptical of commercial serial terminal servers now :).
USB HUB, 10-20 Ports
Each Port switchable
19" Rack-mount case
Was once available from a Russian company for an insane price (2k US$).
We decided to go for serial ports because that ultimately is less clutter in the rack, i.e. the usb2serial adapters “go into” the unit instead, and you get to use rj45 connectors instead of bulky db-9 connectors.
That said, of course a generic usb hub could satisfy more use-cases. What’s yours?