This Best Practice shows how to connect a serial console to the MinnowBoard development board. Connecting a serial console allows interacting with the UEFI Boot Menu without using an HDMI display or USB keyboard. It is possible to do a complete OS install using only the serial console, depending on the OS in question. A serial console can also provide valuable trouble shooting information if the HDMI display is not responding or not recognized during the boot process or OS initialization stages.
NOTE: A serial port connection only works with text-based input and output and cannot support graphical user interface capabilities such as a mouse.
FTDI Serial USB Driver
Virtual COM port (VCP) drivers cause the USB device to appear as an additional COM port available to the PC. Application software can access the USB device in the same way as it would access a standard COM port.
Host-Specific Serial Port Communication Utility
One of the following utilities needs to be installed, depending on your host system:
1 Wiring the connection
Only three pins are used for this serial connection:
- Pin 1 is ground
- Pin 4 is Tx from the board
- Pin 5 is R to the board
2 Configuring your host computer
On a Windows host, after installing the FTDI drivers, you’ll see a new USB serial port COM port show up in Device Manager list when the FTDI cable is connected and your MinnowBoard Turbot is running:
On a Linux host, you can use
dmesg | grep FTDIto see what COM port was assigned to the connected board. You should see something like this (indicating, in this case,
$ dmesg | grep FTDI [10170.987708] USB Serial support registered for FTDI USB Serial Device [10170.987915] ftdi_sio 9-1:1.0: FTDI USB Serial Device converter detected [10170.991172] usb 9-1: FTDI USB Serial Device converter now attached to ttyUSB0 [10170.991219] ftdi_sio: v1.6.0:USB FTDI Serial Converters Driver
Terminal emulation software
The terminal emulation software running on your host computer communicates with the MinnowBoard Turbot over a virtual COM port (assigned by the OS) via the FTDI serial cable.
Suggested terminal emulation programs include:
- For Windows: Tera Term or PuTTY
- For Linux:
minicomare likely already installed as part of your Linux system, and puTTY can be installed with
sudo apt-get install putty
- For Mac OS X:
iTermis included in the OS distribution and free alternatives such as iTerm2 are also available.
Follow your terminal emulation software instructions to configure it with baud rate: 115200, Hardware flow control: No, Bits: 8, and Stop: 1 and make a connection with the COM port listed in device manager for Windows (for example, COM4 in the example above) or
dmesgon Linux to see which serial port was assigned (for example,
On a Linux host, you can connect to the MinnowBoard Turbot using, for example:
sudo screen /dev/ttyUSB0 115200
3 Serial output during booting
Once you have the serial cable connected and are running the terminal emulation software configured to talk over the cable, when you reboot the MinnowBoard Turbot you’ll see the same UEFI BIOS screens on your connected HDMI monitor and on the terminal emulation window on your host computer. The HDMI monitor does not need to be present for the serial interface to be active during boot.
You can interact with the UEFI Boot screens and Menu through the serial terminal program on your host using the host’s keyboard, or using a USB keyboard connected to the MinnowBoard Turbot.
Once the system switches to a graphics mode (such as booting a Linux GUI), output to the serial port will stop until some application running on the MinnowBoard Turbot writes to the serial port.
4 Serial output when Linux is running
If you’re running Linux on your Turbot, you can output messages to the serial port for example, by using shell commands on your board (as root):
stty -F /dev/ttyS0 speed 115200 echo Hello from my MinnowBoard Turbot > /dev/ttyS0
You can also read text input from the terminal. Here’s an example using shell commands running (as root) on your MinnowBoard Turbot:
As you type in the terminal window on your host computer, each line is sent and will display on your MinnowBoard Turbot’s monitor when you press the Enter key. Use a CTRL+D to indicate you’re done entering input.
While we’re using shell commands to demonstrate how to communicate, your application running on the board can also read and write to the serial connection as an input/output device.
Serial Login Session
Linux is inherently a multi-user system, and when it was first developed, serial terminal access was how the majority of users interacted with this operating system. This legacy is still present even in modern versions with sophisticated GUI and mouse-based interactions. And by default, any serial port connected will run a login process and allow users to log in and interact with the default shell.
For details on further configuring Linux running on the MinnowBoard Turbot to allow a normal or root user to login via a connected serial console, check out the Ubuntu documentation SerialConsoleHowto.