Have you ever tried using the USB Console port on your network hardware? Me neither, and that’s mainly because the instructions typically begin with
Download and install the USB console driver for your operating system, at which point I exhale deeply and get out my USB serial adapter instead. I think Opengear must have heard me sighing because the ACM7004-5 Remote Site Gateway device they’ve sent me to look at has four USB console ports built in.
The compact ACM7004-5 packs more power than its diminutive stature might at first suggest. Taking a look at the back panel reveals a densely-packed set of ports offering a total of four switched GigabitEthernet ports, four serial console ports (RJ-45) and four USB ports:
As with the other small Opengear devices I’ve tested, this model comes with a single rackmount bracket so it can be attached within a rack with relative ease. It’s only about five inches wide, so it’s not too hard to find a free space to locate it. If you aren’t blessed with a rack, there are small rubber feet that can be stuck on the underside. The power port is interesting; I find myself shouting for joy that it’s a locking connector while simultaneously–and probably unreasonably–thinking
I wonder how strong that is?
Finally, this model includes a further four ports, this time digital I/O ports (TTL) which are typically used to connect devices like smoke detectors, water sensors and door open switches. They can, however, be used as digital outputs and their status set in order to trigger an external device to do something.
It’s worth noting that these are low current TTL outputs, so cannot be used to directly trigger relays; it would be necessary to have an external device which read the TTL signal then triggered a relay using its own power source. The 7004 comes supplied with a digital I/O terminal block which will plug into the port shown in the picture above, so connectivity to the DIO is more accessible than it might seem at first glance.
So how is the ACM7004-5 in use? I have posted about the Opengear interface and functionality before, and the web interface continues to be fairly simple to use. Subjectively speaking this is a significantly faster device than the ACM5004-G I wrote about in 2012, and this is born out by the technical specs:
Linux acm7004-5 3.10.0-uc0 #1 SMP Mon Jul 11 10:46:04 EST 2016 armv7l unknown
model name : ARMv7 Processor rev 1 (v7l) BogoMIPS : 795.44
For comparison, the ACM5004’s ARM922T CPU was rated at 123.13 bogomips.
grep MemTotal /proc/meminfo
MemTotal: 253700 kB
The ACM5004 had 32MB of RAM, compared to the 256MB on this ACM7004-5.
Filesystem 1k-blocks Used Available Use% Mounted on /dev/mtdblock10 14848 14848 0 100% / none 126760 0 126760 0% /dev tmpfs 126852 2756 124096 2% /var ubi0_0 32624 248 30168 1% /etc/config /dev/ubi0_4 2941956 24 2937096 0% /var/mnt/storage.nvlog
Overall, not a bad little box at all, and the web UI in particular appears to benefit from the faster CPU. What was slightly sluggish in the ACM5004 is quite responsive on the ACM7004.
USB Console Ports
Perhaps most importantly you may be wondering how well the USB console ports work, since that’s something I’ve not had on an Opengear server before. The answer is, based on my limited testing, that the USB console ports work invisibly well. For example, I hooked up the USB console port a Cisco 3560CX switch and logged into the web interface to configure the port:
Note that it’s not necessary to define what vendor’s equipment will be connected; the driver requirement can be assessed on the fly at connection time. Here’s a Cisco device connection:
Jul 8 20:02:47 kernel: [ 2600.046364] usb 2-1.4: new full-speed USB device number 7 using orion-ehci Jul 8 20:02:48 kernel: [ 2600.162292] usb 2-1.4: New USB device found, idVendor=05a6, idProduct=0009 Jul 8 20:02:48 kernel: [ 2600.162310] usb 2-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0 Jul 8 20:02:48 kernel: [ 2600.162321] usb 2-1.4: Product: Cisco USB Console Jul 8 20:02:48 kernel: [ 2600.162332] usb 2-1.4: Manufacturer: Cisco Jul 8 20:02:48 kernel: [ 2600.165243] cdc_acm 2-1.4:1.0: This device cannot do calls on its own. It is not a modem. Jul 8 20:02:48 kernel: [ 2600.165315] cdc_acm 2-1.4:1.0: ttyACM0: USB ACM device Jul 8 20:02:48 udev-serial: port05: attached /dev/ttyACM0
And here’s a Juniper device connection:
Jul 8 21:24:31 kernel: [ 395.249921] usb 2-1.4: new full-speed USB device number 4 using orion-ehci Jul 8 21:24:31 kernel: [ 395.360743] usb 2-1.4: New USB device found, idVendor=067b, idProduct=2303 Jul 8 21:24:31 kernel: [ 395.360761] usb 2-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0 Jul 8 21:24:31 kernel: [ 395.360773] usb 2-1.4: Product: USB-Serial Controller D Jul 8 21:24:31 kernel: [ 395.360784] usb 2-1.4: Manufacturer: Prolific Technology Inc. Jul 8 21:24:31 kernel: [ 395.362405] pl2303 2-1.4:1.0: pl2303 converter detected Jul 8 21:24:31 kernel: [ 395.364350] usb 2-1.4: pl2303 converter now attached to ttyUSB0 Jul 8 21:24:32 udev-serial: port05: attached /dev/ttyUSB0
The USB connection is considered to be a serial port, so within the Opengear UI it is configured and accessed along with the other regular serial ports.
About USB Consoles
USB consoles are a weird concept. If you imagined that the benefit of a USB serial port would be a super high speed console connection compared to the usual 9600bps default, you would be very, very wrong. The 3560 manuals aren’t forthcoming about the maximum port speed, but here’s an example from the Cisco ISR1900 guide:
The Cisco USB console has exactly the same limitations as the serial console because, as the inability to use both serial and USB consoles simultaneously seems to confirm, it is the serial console hidden behind a USB serial adapter; and that explains why a vendor-specific driver is required, as that’s what’s controlling the USB serial adapter. So where’s the win with a USB console port? Well, let’s compare serial and USB using the Cisco 3560cx console port as an example:
|Serial Console||USB Console|
|Requires vendor-specific driver software||No||Yes|
|Maximum cable length||50ft @9,600bps, 10ft @56,000bps||10ft (low speed USB), 16ft (full speed USB)|
|Typical Price per 10′ cable(*)||$3||$5|
|Locking connector?||Yes (RJ-45)||No (Mini-b 5-pin)|
|Can you make the cables yourself?||Yes||Not easily|
* Since it’s possible to bulk buy Cat5 cable and RJ-45 connectors, it’s pretty easy to make your own cables for significantly less than this price.
Based on this information, with a side note that RS-232 serial console can go significantly longer distances/higher speeds (e.g. if low-capacitance cable is used, and dependent on the line drivers), the benefit appears to be that USB can support 115,200bps over a 10ft USB cable versus only 56,000bps for a typical serial cable of the same length. That’s fabulous! Now let me ask you: on how many of your Cisco devices have you changed the console port from the default 9,600bps to 115,200bps? Go on, you can count them; I’ll wait. Oh, you’re done already because doing so involved counting on the fingers on one foot? Exactly. I can’t think of a single place I’ve worked in over the last 15 years where anybody bothered to change the default console speed.
Why Oh Why?
I find myself asking, therefore, why did manufacturers start putting USB console ports on their devices? Juniper placed a USB console port on some devices, e.g. the SRX550 (Step 1: install the Juniper USB Console driver), again defaulting to 9,600bps and in fact I believe unable to be changed from 9,600bps. Any USB benefits seem to be right out the window. So why would they do this?
My theory is that with the slow but inevitable disappearance of serial ports on laptops, the logic was that since laptops all have USB ports, it would be smart to allow a direct connection over USB. So far so good, but since there doesn’t seem to be a single universally supported plug and play standard for USB serial adapters, we’ve ended up in this ridiculous situation where in order to connect to four different manufacturer’s equipment, it may require four different USB drivers to be installed. The alternative is to buy one USB serial adapter, install one driver, and connect it to all four devices. It just makes sense.
By way of gauging the popularity of USB consoles, I took the Opengear ACM7004-5 with me to a datacenter, and looked for devices of any kind that I could try connecting to. The results of my survey are presented in the table below:
|Number of Devices With A USB Console Port|
I found two mid-range Cisco devices with a USB console, and that’s it. None of the higher end Cisco and Juniper equipment bought over the last 4 years in this data center had a USB console port. Checking my low-end home equipment (e.g. Juniper Netscreen SSG5, Juniper Netscreen 100H, Juniper Netscreen 220, Ubiquiti EdgeRouter Pro, Juniper EX3200, Quanta LB4M, Cisco 3560cx), only the 3560cx had a USB console port.
The existence of a USB console port on other devices appears to be fairly random.
Digging around a little I was able to find USB console ports on Cisco 5508 wireless controllers, ISR4k routers, and on the Catalyst 3850. Juniper’s documentation identified that a USB console port is offered on the EX2200-C, EX2300-C, EX2300, EX4300, and EX4550 switches (but not the EX3200/3300). It’s not exactly
all the rage is it?
I’m sharing this commentary primarily because I find myself in two minds about the USB console functionality on the Opengear ACM7004-5 remote site gateway. On the one hand, based on the devices I could test it on, the USB console worked seamlessly, and if I needed to remotely connect to a USB console, this product would solve a problem that many other devices cannot handle. On the other hand, I’m struggling to find a use case for USB console ports in general.
My 2 Bits
I confess, I am being cynical about USB console ports, but that’s not because Opengear has failed in any way. The ports exist, the ACM7004-5 can talk to them easily, and this small device also has the four ethernet ports, a WAN SFP port, four serial console ports and digital I/O ports as a bonus. Additionally, Opengear’s built-in intelligent support for downstream devices like remote power controllers and uninterruptible power supplies make this, like the other Opengear producs, way more than a simple console server. Even if you never use the USB console ports, this is an extremely capable device and the only thing which might be a cherry on top would be 3G/LTE capability, as seen on some of the other Opengear products. But then for a list price of $795, how much can I reasonably expect Opengear to pack into a small box like this? Opengear also offers access to build your own customized images for the ACM7004-5 as well, which is something I discussed in previous posts on this site.
The ACM7004-5 gets my vote as another highly functional, highly customizable product from Opengear. The USB console support just works, and doesn’t get in the way. Even if you don’t need USB support, this would still make an excellent remote site management device, taking up minimal power and space while offering good connectivity and programmability options.
Two (USB) thumbs way up.
Opengear sent me an ACM7004-5 unit so that I could evaluate it for this post. However, the content and opinions are mine and mine alone, and Opengear has no input to or control over what I post.