Serial console "freezes up" at login prompt

Hi all. I'm running in to a rather frustrating issue and I'm hoping someone could provide some pointers for where to look next.

I've acquired a small, low power system that used to be a VPN appliance from the late 2010's. It is based on a Supermicro X10SBA-L motherboard with a Celeron J1900 CPU. I've attempted to install the most recent version of FreeBSD that will seem to run on it, which so far is 13.3. 14.x doesn't seem to like booting on this system for some reason.

Console redirection is enabled in the BIOS and I can see the boot messages through a terminal running on my Mac when connected to the serial port, so that all appears to be fine. I can also interact with the boot process in a limited way through the serial terminal, e.g. at the beastie boot screen I can pause it and change options etc, so all appears fine up to this stage.

The issue comes after boot when I reach the login prompt. At this point it is a bit random as to what happens next. Sometimes I will get the login prompt including the full line of text stating FreeBSD and the hostname. Sometimes I'll only get part of this line. Sometimes I can input a couple of characters of a username, and othertimes not. Here's an example of the output following a couple of boots showing how inconsistent it is:

Code:
FreeBSD/amd64 (pulse) (ttyu0)

login: ro
FreeBSD/amd64
FreeBSD/amd64 (pulse) (ttyu0)

In the first case I was able to enter "ro" as part of the "root" username. In the second case it didn't finish printing the first line of text. In the third case it did, but never displayed the login prompt. And so on.

As for setting up things like /boot/loader.conf, I have followed countless guides, all of which say basically the same thing, but for completeness, here is my current /boot/loader.conf for my latest incarnation of testing:

Code:
boot_multicons="YES"
boot_serial="YES"
comconsole_speed="115200"
console="vidconsole,comconsole"

I've tried booting in "UEFI mode" and using "efi" instead of "vidconsole".

I've tried various settings in /etc/ttys from different speeds, "std.x" and "3wire.x", and even "Pc". The tty is set to "on" rather than the default "onifconsole". Running "kill -HUP 1" after making changes to /etc/ttys doesnt change anything, and the login prompt is never produced again (I'm unsure whether it should...)

I've also made sure I am running the latest BIOS on the motherboard, and tried different serial ports (there are 4 built-in to choose from). I've tried disabling console redirection in the BIOS in case something at that level was messing with the serial port.

I thought maybe it was a flow control issue, perhaps in the tx direction towards my terminal. But if I, e.g. plug and unplug a keyboard then I can see some messages transmitted to the terminal saying that a USB device has been connected and disconnected, so it can still clearly queue more data for transmission. And this is the case after the login prompt has frozen.

I've even tried an older version of FreeBSD as well, such as 12.0 which is more of the vintage of the machine, but no change in behaviour. For giggles I installed the latest greatest Ubuntu as a test and it has no issues with serial console.

Regardless of what is happening with the serial console, the machine is always perfectly responsive and usable on the video console with a USB keyboard, and over the network using ssh. I would like to have the serial console working because the VGA port is covered up by the front bezel of the case once the motherboard is installed in the chassis, making it very painful to access if needed (it basically requires full disassembly).

I'm at my limit of ideas for things to try or what to do, and so I'm reaching out for further help. Of all of the platforms I have run FreeBSD on in the past I have never had so much trouble with the serial console as with this machine...! 😞

Can anyone suggest anything else?

Thanks!
 
I did not research this board.

Is serial connection via TTL/UART or RS232??

Sounds like RX/TX backwards or ground probelm on TTL/UART style.

if RS232 are you sure you have right cable? Null Modem cable usually. It will act similarly.
 
The serial ports are all RS232 levels. There are 4 transceiver chips adjacent to the headers.

If the cable was wrong or tx/rx were swapped then I wouldnt expect to get any output at all. It works perfectly fine for everything else, it just stops working at/around the FreeBSD login prompt.
 
I've given another USB to serial cable on my Mac a try, just in case something was going wrong with my other one, but this didnt help.
 
So please detail this setup. Is there a cable tying the USB to RS232 adapter?

Are you using the right port on Mac? You should be using ttyU- not cuaU- ports.

The cable itself is an FTDI based cable with an 8P8C connector on the end, I use this in my day job to configure network equipment from the likes of Juniper and others. Most of that gear (including this old VPN appliance) uses these sockets instead of DB9 for serial. The cable outputs RS232 levels.

The terminal software is minicom. The port is /dev/tty.usbserial-something. But if I wasnt using the right port, then I wouldnt be seeing any output from the machine at all.

Forgive me if I misunderstand your intent, but I dont understand the reason behind such basic level questions. Is there something unclear about my original message that leads you to believe that I cannot speak to the machine at all, because that seems to be the suggestion from what you are asking me? I am able to use this serial adapter and software to navigate the BIOS, and if I install Linux I am able to login and interact with the machine just fine. It is just the FreeBSD login prompt that is giving me grief.

Thanks
 
Hi, thanks.

I was sure that I had tried this in /boot.config, but maybe in a previous installation as it was not in my current installation. I tried it again, but unfortunately it didnt make much of a difference. One time I got lucky enough to enter the username and got as far as the password prompt, but it had frozen there somewhere and I was not able to login. Other attempts I could maybe get as far as entering "root" for the username before it froze. Video console is still perfectly responsive.

In the second link it has "comconsole,vidconsole" for the console list, but strangely if I put comconsole first then neither serial nor the video console will make it to the login prompt...

I tried moving the serial console to the second serial port too, but still no go.

It really just doesnt like something about the serial console...
 
I am pleased to report that a workaround (at the very least) has been found for this issue. It was in a thread on this very forum that I had not yet discovered: https://forums.freebsd.org/threads/serial-console-problem.15740/

I don't think it is a long term solution though, and it seems it may break as of FreeBSD 15 when non-PNP devices will be removed(?) - at least according to a warning in dmesg:

Code:
uart0: <16550 or compatible> at port 0x3f8 irq 4 flags 0x10 on isa0
uart0: console (9600,n,8,1)
uart0: non-PNP ISA device will be removed from GENERIC in FreeBSD 15.

But I am at least able to move on for now.

Thanks
 
Back
Top