I'm trying to setup a 80's service with Mystic BBS (that runs on telnet), including a dial-up access with a U.S. Robotics modem connected to the serial port of the server. I succeeded with mgetty:

/sbin/mgetty -D -a -x6 /dev/ttyUSB0

This brings the Ubuntu login on the remote client, that I can replace with the output of telnet on localhost, configuring the process that is started upon the connection is established. The problem is that mgetty requires the caller to enter an existing username on the server before he can get to the welcome screen of Mystic.

So, I switched to agetty: it has an auto-login feature that will skip the first step and it will directly bring the user to the telnet session using a conventional non-admin linux user. Then the user will login or register to the BBS service.

Unfortunately, I can't get it to work:

agetty -I 'ATE0Q1&D2&C1S0=1\015' ttyUSB0 vt100

With this command I can connect from the client, but nothing is shown on the terminal. The connection is stable, but nothing seems to be transmitted. If I send some strokes from the terminal and I monitor /dev/ttyUSB0 with screen on the server, I can see garbage characters that arrives, but everything is scrambled. Same thing if I send strokes from the screen session on the server, some "brick" characters are shown on the client terminal.


You did not specify a baud rate for agetty, so it's either keeping whatever was the default speed of the serial port, or if that isn't possible (e.g. the default speed is 0), setting it to agetty's default value of 9600 bps.

You might need to use the -m option to make agetty adapt to the baud rate of the established connection: that is basically the same as what the mgetty option -a does.

The problem with garbage characters sounds like it might well be a baud rate mismatch.

  • Hi, thank you very much for your answer. Unfortunately I tried to add the -m option but nothing seems to change. – flip79 Mar 21 '20 at 23:56
  • UPDATE: it seems to work if I specify some acceptable baud rate at the end of the command. I added 38400 that is the rate I'm seeing during the test connection I make, and it works! Should I add every possible standard rate below this one? -_- The command I'm currently using is: agetty -m -a root --wait-cr --init-string 'ATE0Q1&D2&C1S0=1 15' --login-program /usr/bin/telnet --login-options 'localhost' ttyUSB0 38400,9600 – flip79 Mar 22 '20 at 21:26
  • 1
    You might want to add 19200 in between 38400 and 9600, but that's about it - I think modems requiring speeds slower than that are very rare these days.However, adding all the standard rates down to 1200 certainly won't hurt. Maybe you really want to support connections from computer technology museums :-) If dealing with vintage hardware, retrocomputing.SE might be of interest to you. – telcoM Mar 22 '20 at 21:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.