In my previous post, I said I was going to test my two serial cables with every serial device I have to work out which combination worked and which didn’t to find out what the difference was. It didn’t take long to realize though that the DB25 to DB25 serial cable I have that I assumed was a null modem cable only worked with certain types of connections.
For example, it only worked with a VT terminal to a modem type device (in this case a PK-232 packet radio TNC), but not terminal to PC. In the first case that is a DTE to DCE type connection (which worked), whereas the second is DTE to DTE (which didn’t).
A DTE to DCE connection requires a straight through cable
A DTE to DTE requires a crossover connection (tx to rx, rx to rx)
This realization pretty much confirmed that the cable that was only working for DTE to DCE connectors was a straight through cable, and explained why it didn’t work elsewhere.
Long story short, I picked up a cheap null modem adapter that does the crossover for you, converting a straight through cable to a crossover:
From left to right:
USB serial dongle, connected to the Pi
DB9 to DB25 converter
DB25 to DB25 null model adapter
DB25 to DB25 straight through (converted to crossover with the null modem adapter)
And now I can successfully get a terminal logon to my Raspberry Pi:
To enable the serial terminal login via ttyUSB0, see this post.
Depending on what Raspbian version you are running on your Pi, the approach for enabling a serial tty login via a VT terminal differs, but on current/recent versions you can enable by enabling and starting this systemd service (steps from this post, and here):
This assumes you are using a USB serial dongle and that it’s connected as /dev/ttyUSB0. You can check by doing a ‘ls /dev/ttyUSB*’ before you connect your USB serial adapter and after to check what device your USB dongle appears as.
If you’re running an older version of Raspbian not using systemd, you can add a line to /etc/inittab to initialize getty as described here.
I’ve been on a serial terminal kick the last few months. I think it started when I picked up a used Sun Ultra 60 and found out you could boot with a serial terminal to diagnose boot issues, and/or logon via a serial terminal. I built a VT132 kit and this has worked well using a regular VGA monitor and USB keyboard, but one thing lead to another and I started shopping ebay for a real DEC VT terminal. These are getting harder to find in working condition and it seems the prices are going up to pretty crazy levels. You can easily get one around $200 to $300, but if you shop around you should be able to get one around $100.
I’ve been able to connect the VT132 to anything so far and get it to work. There are a couple of jumpers on the board to select a straight through or crossover cable connection, if one doesn’t work change it to the other and it will connect. I’ve used it so far to connect to a AEA PK-232 Amateur Radio packet TNC, my Ultra 60, and a PC running Ubuntu.
The VT terminal on the other hand is more tricky. It will connect to the PK-232 and the wifi modem on the VT132, but I have not been able to successfully connect it to do a serial terminal logon to a Raspberry Pi (this was my main goal), or another PC yet.
My suspicion is that the 2 serial cables I have that I’ve been using interchangeably depending on what I’ve connecting too just based on the connectors are not the same. One has DB25 to DB25, the other has DB9 to DB25, so I’ve been picking the one that connects between the two devices. I’ve assumed these are both null modem cables, but I think one is straight through, and I don’t know which is which. I need to test them with a meter to find out.
I also thought the USB to serial connector that I was using on the Raspberry Pi was not working (it was a FTDI chip) so I bought another one using the Prolific chip, and that didn’t work either connecting from the VT Terminal, but it did from the VT132, so I think this is more to do with the serial cable than the Serial USB adapter. I think the clue was that from the VT132 it only worked when I switched the straightthrough to crossover jumpers to crossover, actually the same setting that works with the Ultra 60 too (but not the PK-232).
My next steps are to create a table of all the combinations that work vs don’t work. I also need to test the cables to find out if one is a straight through vs the other being a crossover cable. I think assuming they were the same is not true and this is causing the confusion. I will keep you updated on my findings!
I recently assembled a VT132 and have been connecting it to various things to enjoy some serial terminal goodness.
I’ve tried a number of serial cables and serial terminal programs on my Atari ST to get a serial connection to my Sun Ultra 60 but never managed to get it to work. I didn’t know if this was due to my serial cable or something else. I bought and assembled the VT121 as a VT100 compatible serial terminal to have a better attempt at connecting to some of the devices I have around that support serial connections.
On the VT132 there are jumper pins to switch between a straight though connection or a crossover connection. Through trial and error I found I needed to put the jumpers on 1-3 and 2-4 for the cross over connection and this worked with the Sun Ultra.
I don’t have a pic of the pins in this configuration, this is the section in the docs, and here’s the pin layout next to the voltage regulator for reference (center of the photo):
Pins 1 2 3 4 are on the right. Here’s the pins in the straight through config 1-2 and 3-4, the two jumpers on the right need to be switched to the other 1-3 and 2-4 configuration to work with the Sun Ultra:
There’s two serial connectors on the Sun Ultra 60, note that the DB25 at the top is a parallel connector. Serial A and B are beneath the keyboard connector:
Here’s some useful info on configuring Serial console connections to Sun hardware here. Typically on Sun Sparc systems, if you disconnect the keyboard and have a terminal connected to Serial A when you boot, the boot messages are redirected to the serial terminal instead of the video output. This is useful if you need to run diags on a machine, but it’s also fun to boot the machine up and logon from a serial console. Here’s what the console boot messages look like on my Ultra 60:
At this point I could successfully logon via the console. As I was looking into getting this working I took some notes as I was working on this. I’ll include them here for future reference in case they’re useful.
Other useful notes:
/etc/remote has section for enabling hardwire tip via /dev/term/a|b
See also here https://docs.oracle.com/cd/E19455-01/806-1377-10/tipapp.html talks about /etc/ttytab to enable logins
To enable a logon prompt via Serial A or B after booting, and with keyboard connected:
From here: https://docs.oracle.com/cd/E19253-01/817-0403/modsafapp-84569/index.html
sacadm -a -p mbmon -t ttymon -c /usr/lib/saf/ttymon -v `ttyadm -V` -y "TTY Ports a & b"
cat /dev/term/a shows keyboard entry from my VT132 terminal when I press enter, so I know input is reaching the port.
With my serial cable, I needed to set the straight through vs crossover jumpers on the VT132 to the crossover position get any output to appear on the terminal.