Will the Serial Console Ever Die?
simpz writes "Will the serial port as a console connection ever be displaced — especially for devices such as switches, routers, SAN boxes, etc.? In one sense it's a simple connection. But it is the only current port that, in order to use, you need to know about wiring / baud rates / parity, etc. It has non-standard pinouts. And it is becoming too slow to upload firmware to dead devices, as the firmware updates get larger. Also, the serial port is rapidly disappearing from new laptops — which is where you often really need it, in data centers. Centronics, PS/2, and current loop are mostly defunct. Is there any sign on the horizon of a USB console connection?"
It calls out to you.
The great thing about a serial console is that it doesn't take long to figure it out. And you only need 3 wires to get there.
Another nice thing about it is that it's point-to-point, so you don't have to worry about your signals getting lost.
Heck, you can create a serial interface from discrete components if you're really into fun.
So use your serial console for what it's intended to be used for: emergencies and initial configurations.
Support FSF: Stop thinking with your wallet, and think with your imagination. (cc/non-commercial)
I upload firmware and program various devices at work via USB or TCP/IP - and it is great because the connections are fast. However, when something goes very wrong with the devices, the RS232 port always works. Also, being able to get serial data just by listening to a couple pins is far easier than trying to deal with USB connections/drivers you have no clue about.
When it comes down to it, serial works, its easy and it's a life saver.
Let's keep it around forever. You kids are going too fast anyway!
You need to take time to ponder the deeper questions, like in-band or out-of-band?
Unfortunately yes. In my workplace we still use floppy disks and other legacy devices because other institutions also still use them.
Processes and systems that were setup 20 years ago still exist and when there is a system setup to handle something across an industry, in the example I'm thinking of its banking related, to get that changed across every company, institution and outlet take not only large amount of capital invest in the new hardware and software, but first agreement of the new standard, and then training after everything is done and then usually also changing large amounts of code that have been setup in each company.
Just because we in IT can see better ways to do things, doesn't mean that management can have the foresight to actually implement it and see it through. And usually they have a point, by the time we have everything implemented and up and running, there could/would be a better way of doing it again!
There is no -1 disagree
you can boot and start listening for commands on a serial port without
any ip addresses or netmasks or gateways or any configuration
whatsoever. That's the key.
I might be missing something, but that's not an adequate substitution. The point of a serial console is for when something goes wrong and for some reason the configuration is broken. In situations like that a web interface doesn't do you a damned bit of good because you can't access the box directly via the internet. Watchdog hardware or remote reboot hardware can get the box back up, but without a good serial console you're not likely to be able to fix the problem without being there.
With a serial console you can have one box hooked up to quite a few other ones to deal with that problem indirectly. It's not ever going to be phased out in the manner you're suggesting, it will however at some point be replaced with something that works in a similar fashion. But the real question is how long until the bios and early functions of the computer be access via some other sort of connection.
Have you any idea how insecure it is to access the bios via ethernet? It's hard enough keeping things secured when a box is internet connected, but allowing people to set the bios options and early boot process stuff via ethernet is absolutely insane and an incredibly warm invitation to crackers. And if it doesn't allow you to do that then it's more or less useless as a replacement for a serial console anyways.
RS232 is easy to program. If it's a switch without OS or some other embedded device, RS232 is the easiest and fastest way.
Sure on the PC side there are the problems of baud, parity and so on. Thing is on the device side you can get a working bidi buffered transmission within 30 lines of assembler (100-200 if you have no UART and need to push each bit yourself). Writing equivalent of "hello world" over USB becomes kilobytes. And if you go into a web interface, you quickly lose enthusiasm as you realize on top of CGI you need to write the web server, the TCP stack, the IP stack, and if you're unlucky, the Ethernet protocol stack (in VHDL) as well.
On top of that, a thousand things can go wrong in writing USB or Ethernet or whatever. RS232 is rugged, fault-proof, it works from moment zero. You will be able to communicate with bootloader which has no idea what ethernet is, you will be able to diagnose faults when 90% of essential peripherials are fried, and if the cable goes loose, just move it around a bit and the connection will be back, no timeouts, no disconnects, no "intelligence" to get in your way.
And if you open various devices that use USB instead of serial, you will find a neat little FDDI, Profilic or such chip connected to the USB interface. The devices really connect over RS232. They just have the "RS232 over USB dongle" built in.
45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
I'd hope these days a big honking server mobo would at least support booting from USB key.
Most of them do--but you have to realize that it took Microsoft until 2008 to release a server OS that doesn't require floppies to load RAID drivers.
There's no place like
Directly link through a cat5 port?
^^^ Amen. For anyone into embedded electronics (including robots), real honest-to-god non-USB-bridged serial ports are pretty much the only port left on a modern PC (or at least a decent thirdparty motherboard in the form of an IDC header) that neither Windows nor Java can fuck up.
Other than cisco routers and switches
Are you serious? The only examples anyone on Slashdot can find seem to be routers and switches? The reasons RS232 isn't going away is because an awful lot of industrial automation equipment (large and small-scale) still uses it. Why? Because a) all of the existing industrial automation equipment uses it, so new equipment is designed to be compatible with existing interface and control systems, b) it has proven itself to be incredibly reliable over the years, c) it's cheap (in terms of money, but also in terms of the amount of supporting hardware required). Also, while it may not be fast enough to transfer huge firmware images or run high-bandwidth stuff like video over, it's fast enough for what it's used for. If a firmware update takes 5min to do on a $100,000 piece of factory equipment, so what? The company probably spent a month planning for the upgrade, and will spend a week testing it after the update to make sure it still meets performance and safety requirements before re-deploying it anyways. There are billions of dollars invested in RS-232 by some highly conservative companies that don't change things on a whim, when a complication arising from an unnecessary change could cause 5-figure-per-minute damages or loss of life.
Why is RS-232 still around? Because it ain't broke, and it don't need fixin'!
Outside of Real Serious Stuff(if your job involves oil rigs, SCADA, legacy devices that Google has never heard of this probably means you), I strongly suspect that "serial" in the sense of "DE-9 or DB-25 connector that won't freak out when exposed to the full +/- 12(or even a touch more in some cases) volts that serial used when men were men and cable runs were long" is not so long for this world, outside of a few legacy niches.
On the other hand, "serial" in the sense of "a few pins carrying something that looks like rs-232 at whatever voltage this device's logic runs at" or "device has a USB connector; but that just means that they slapped an FTDI or Prolific chip on a serial design" will be more or less immortal. Even in high volume consumer devices, where it isn't supposed to be user accessible, you can generally find a logic-level serial connection somewhere, though it may not be labeled or have any sort of connector soldered in. It costs almost nothing and can save you from having to JTAG your way out of (most) of your mistakes. When designed to be accessible, it is ideal for dealing with initial configuration for devices that communicate primarily over ethernet.
Not much really - it only takes a very minimal stack to do simple things like TFTP or Telnet. Back in the mid 90's We used do to do this on '186 class stems in a few k of code. Its also easy to do a very simple low level UDP based thing - that that would be a bit proprietary.
I agree that serial ports are useful. What I'm suggesting is that the best alternative is Ethernet, not USB.
Jibe!
You might want to understand the amount of things that have to be running correctly to even have a working TCPIP stack to make it unpractical as a debugging tool.
For a serial port, you could be talking to it in less than 10 line of non-interrupt C code in a pre-boot environment if you have to.
I'd hope these days a big honking server mobo would at least support booting from USB key.
Most of them do--but you have to realize that it took Microsoft until 2008 to release a server OS that doesn't require floppies to load RAID drivers.
Then again, it's hard to take anyone seriously that uses Windows in a server role.
Game! - Where the stick is mightier than the sword!
. . . but it's that "because I can" that often makes sysadmins who are familiar with this "antiquated" technology extremely valuable.
The Christian Right is Neither (Christian nor right). See: Matthew 23, Matthew 25, Ezekiel 16:48-50
Not all hardware has to be thrown into garbage just because it's old.
This machine has 11 UARTs on it, 4 of them are RS-422, the rest are normal 232.
I've got a couple 232 lines to other puters in this room, and a router.
RS-422 goes down to the basement, and controls the machines down there, ethernet or not.
There is a getty running on one, in case I get too drunk and smash the monitor.
I use the remainder for connecting to my microcontroller projects and programmers, etc.
You can run it on *ancient* hardware, with no resources. It's incredibly useful for debugging microcontroller programs.
Things that only have 128bytes of RAM, and a few k of program rom...
You can hook it up to a 40 year old TTY and it will work.
You can haul a dumb terminal out from a cave and it will work.
You can short every pin of the serial port together, leave it there for a decade, come back, and the bloody thing will still work.
I'm a rather miserable programmer, and serial is a bloody cakewalk to interface to. USB, on the other hand, isn't quite as simple.
And it's a *standard*. Man I love things that are standardized.
Sent from my PDP-11
Serial is essential! It's cheap, simple, lots of hardware support it, and there's minimal firmware support needed for it. If you've got 8K RAM and runs at 1MHz, you don't want to waste it on a bloated USB driver. Serial port works from an interrupt context, so you'll be able to use it many times where USB can not work (say your OS is busted and you need to debug it).
Serial port isn't used because we're Luddites, but because it works.
Now if things had standardized on external I2C or SPI ports, that could work. But USB is just bloatware in comparison.
You should also point out that no serious network administrator has a web server enabled on his/her routers and switches.
That crap is fine at your home where it doesn't really matter if something gets exploited, but no self respecting router/switch flunky on the planet leaves the web server running longer than it takes to get a console hooked up, login, enable, and turn off the damn webserver.
Then you go setup the device if you don't have a auto-config system setup.
Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
I don't no if you actually checked, but a RJ45 could also be serial. A lot of Cisco equipment for example has a RJ45-connector for speaking serial.
New things are always on the horizon
You are totally correct. Serial is nice and simple and would be perfect IF everyone used the same wiring on the connectors, there was a standard plug (preferably not R-J45, there's a recipe for confusion),there was a standard speed/parity (or a simple negotiation mechanism), people only used simple RX-TX for signalling (which they sadly don't), standardized/simplified flow control (really needed for xyzmodem, some devices insist on HW flow control), I didn't have to have tons of cables (one per device practically). TFTP/HTTP is no use when a device is so dead that the network doesn't work.
I'd settle for a more standardised rs-232 if the world could get there.
I think the DB-9 connector is a little big for what its doing though, I mean even a DB-15 monitor type connector is duplo size for 15 pins.
Maybe I just like Cisco to much, but it would be nice to have everyone just use the Cisco RJ-45 spec for serial connections, I hate when other router/switch vendors use RJ45 but the pins-outs are totally different so you have to find that special DB9 to RJ45 adapter for that 1 piece of gear, instead of using 1 of the Cisco adapters that you have laying everywhere.
Even if on the back of laptops they used RJ45 for serial and marked they would keep it around longer? the DB9 connector seems to big realistate wise to me I guess.
Then you could just use a regular RJ45 cable to connect between the 2, no need for some non-standard cable.
Also for those of you that use console servers allot, I still think the older Cisco access servers that many use for console servers now a days are better than any of the Linux server type solutions I have tried. The Cisco access devices supports telnet to each port, a real routing table that supports multiple gateways via static or even routing protocols like OSPF etc... also Tacacs+ auth if you need that.
FTDI chips have very reliable and freely available drivers for their ICS for Windows, Mac OS X and Linux. Their ICs are so easy to use that you don't even have to think about them, the work is already done on both the PC side and the uC side. You code as if both sides were using an actual serial connection, the FTDI chip does all the USB-serial work. They're really plug'n play.
Heh. Indeed. If grandma is standing in the MDF room cursing at a Cisco router with a laptop balanced on the back of a chair, she probably knows how to disable/enable a serial port in Device Manager
If a job's not worth doing, it's not worth doing right.
Not terribly hard to find. Not $300, either.