Linux Serial Port Configuration

Posted on by
Linux Serial Port Configuration Rating: 9,6/10 5468 reviews

Features Documentation Knowledge Base Discussion Forums

  1. Serial Port Names In Linux
  2. Linux Serial Port Configuration Linux
Using Serial Ports

Linux provides three classes of tty devices. Linux supports all of these in its standard serial port driver. The default configuration for serial devices is for hardware handshaking to be disabled. This setting allows 'three wire' serial cables to work; they don't support the necessary signals for hardware handshaking, and if it were.

  • Hello Folks, This is a tutorial on how to program the Serial Ports on your Linux box.Serial Ports are nice little interfaces on the PC which helps you to interface your embedded system projects using a minimum number of wires.In this tutorial we will write a small program that will send and receive ASCII characters to a microcontroller development board.
  • By default, SSH listens on port 22. Changing the default SSH port adds an extra layer of security to your server by reducing the risk of automated attacks. This tutorial explains how to change the default SSH port in Linux.
Using Serial Ports

The following sections describe how to use serial ports with VMware Workstation:

A VMware Workstation virtual machine can use up to four virtual serial ports. The virtual serial ports can be configured in several ways.

Jun 07, 2015  Opening and Closing the Serial Port. Opening a serial port in Linux is accomplished by using the open. No parity,1 Stop bit,the 8N1 configuration. Setting the Baudrate. In Linux,there is an option to set different read and write speeds but it is recommended to set. This document is for the UART serial port. This port has mostly disappeared from desktops and laptops is still used elsewhere such as for embedded systems. It covers information other than that which should be covered by Modem-HOWTO, PPP-HOWTO, Serial-Programming-HOWTO, or Text-Terminal-HOWTO. It lists info on multiport serial cards.

  • You can connect a virtual serial port to a physical serial port on the host computer.
  • You can connect a virtual serial port to a file on the host computer.
  • You can make a direct connection between two virtual machines or between a virtual machine and an application running on the host computer.

You can also select whether to connect the virtual serial port when you power on the virtual machine.

Note: The serial port implementation is new in this release and deprecates the use of TTY type of virtual serial ports in a virtual machine.

Using a Serial Port on the Host Computer Using a Serial Port on the Host Computer

You can set up the virtual serial port in a virtual machine to use a physical serial port on the host computer. This is useful, for example, if you want to use an external modem or a hand-held device in your virtual machine.

To install a virtual serial port that connects to a physical serial port on the host computer, take the following steps:

Windows Host Windows Host
  1. Open the Configuration Editor (Settings > Configuration Editor).
  2. Click Add to start the Add Hardware Wizard.
  3. Select Serial Port, then click Next.
  4. Select Use Physical Serial Port, then choose the port on the host computer that you want to use for this serial connection.
  5. Click Finish, then click OK to close the Configuration Editor.
  6. Power on the virtual machine.
Linux Host Linux Host
  1. Open the Configuration Editor (Settings > Configuration Editor).
  2. Select one of the virtual serial ports (COM1 through COM4).
  3. Choose a type of Device from the pull-down menu.
  4. In the Path field, enter the path to the device you want to connect to the virtual serial port, for example, /dev/ttyS0 to use the first physical serial port on the host computer.
  5. Click Install.
  6. Click OK to save your configuration and close the Configuration Editor.
  7. Power on the virtual machine.
Using a File on the Host Computer Using a File on the Host Computer

You can set up the virtual serial port in a virtual machine to send its output to a file on the host computer. This is useful, for example, if you want to capture the data a program running in the virtual machine sends to the virtual serial port or if you need a quick way to transfer a file from the guest to the host.

To install a virtual serial port that connects to a file on the host computer, take the following steps:

Windows Host Windows Host
  1. Open the Configuration Editor (Settings > Configuration Editor).
  2. Click Add to start the Add Hardware Wizard.
  3. Select Serial Port, then click Next.
  4. Select Use output file and browse to the file on the host computer that you want to use to store the output of the virtual serial port.
  5. Click Finish, then click OK to close the Configuration Editor.
  6. Power on the virtual machine.
Linux Host Linux Host
  1. Open the Configuration Editor (Settings > Configuration Editor).
  2. Select one of the virtual serial ports (COM1 through COM4).
  3. Choose a type of File from the pull-down menu.
  4. In the Path field, enter the path to the file on the host computer that you want to use to store the output of the virtual serial port.
  5. Click Install.
  6. Click OK to save your configuration and close the Configuration Editor.
  7. Power on the virtual machine.
Connecting an Application on the Host to a Virtual Machine Connecting an Application on the Host to a Virtual Machine

You can set up the virtual serial port in a virtual machine to connect to an application on the host computer. This is useful, for example, if you want to use an application on the host to capture debugging information sent from the virtual machine's serial port.

To install a direct serial connection between an application on the host and a virtual machine, take the following steps:

Windows Host Windows Host
  1. Open the Configuration Editor (Settings > Configuration Editor).
  2. Click Add to start the Add Hardware Wizard.
  3. Select Serial Port, then click Next.
  4. Select Use named pipe.
  5. Use the default pipe name, or enter another pipe name of your choice. The pipe name must follow the form .pipe<namedpipe> - that is, it must begin with .pipe.
  6. Select This end is the server or This end is the client. In general, select This end is the server if you plan to start this end of the connection first.
  7. Select The other end is an application.
  8. Click Finish, then click OK to close the Configuration Editor.
  9. On your host computer, configure the application that communicates with the virtual machine to use the same pipe name.
  10. Power on the virtual machine.
Linux Host Linux Host
  1. Open the Configuration Editor (Settings > Configuration Editor).
  2. Select one of the virtual serial ports (COM1 through COM4).
  3. Choose a type of Pipe from the pull-down menu.
  4. In the Path field, enter /tmp/<socket> or another Unix socket name of your choice.
  5. Select Server or Client. In general, select Server if you plan to start this end of the connection first.
  6. Click Install.
  7. Click OK to save your configuration and close the Configuration Editor.
  8. On your host computer, configure the application that communicates with the virtual machine to use the same Unix socket name.
  9. Power on the virtual machine.
Connecting Two Virtual Machines Connecting Two Virtual Machines

You can set up the virtual serial ports in two virtual machines to connect to each other. This is useful, for example, if you want to use an application in one virtual machine to capture debugging information sent from the other virtual machine's serial port.

To install a direct serial connection between two virtual machines (a server and a client), take the following steps:

Windows Host Windows Host In the server virtual machine In the server virtual machine
  1. Open the Configuration Editor (Settings > Configuration Editor).
  2. Click Add to start the Add Hardware Wizard.
  3. Select Serial Port, then click Next.
  4. Select Use named pipe.
  5. Use the default pipe name, or enter another pipe name of your choice. The pipe name must follow the form .pipe<namedpipe> - that is, it must begin with .pipe.
  6. Select This end is the server.
  7. Select The other end is a virtual machine.
  8. Click Finish, then click OK to close the Configuration Editor.
In the client virtual machine In the client virtual machine
  1. Open the Configuration Editor (Settings > Configuration Editor).
  2. Click Add to start the Add Hardware Wizard.
  3. Select Serial Port, then click Next.
  4. Select Use named pipe.
  5. Use the default name, or enter another pipe name of your choice. The pipe name must follow the form .pipe<namedpipe> - that is, it must begin with .pipe. The pipe name must be the same on server and client.
  6. Select This end is the client.
  7. Select The other end is a virtual machine.
  8. Click Finish, then click OK to close the Configuration Editor.
Linux Host Linux Host In the server virtual machine In the server virtual machine
  1. Open the Configuration Editor (Settings > Configuration Editor).
  2. Select one of the virtual serial ports (COM1 through COM4).
  3. Choose a type of Pipe from the pull-down menu.
  4. In the Path field, enter /tmp/<socket> or your choice of Unix socket name.
  5. Select Server.
  6. Click Install.
  7. Click OK to save your configuration and close the Configuration Editor.
In the client virtual machine In the client virtual machine
  1. Open the Configuration Editor (Settings > Configuration Editor).
  2. Select one of the virtual serial ports (COM1 through COM4).
  3. Choose a type of Pipe from the pull-down menu.
  4. In the Path field, enter /tmp/<socket> or another Unix socket name of your choice. The pipe name must be the same on server and client.
  5. Select Client.
  6. Click Install.
  7. Click OK to save your configuration and close the Configuration Editor.
Special Configuration Options for Advanced Users Special Configuration Options for Advanced Users

Two special configuration options are available for serial connections between a virtual machine and the host or between two virtual machines. These options are of interest primarily to developers who are using debugging tools that communicate over a serial connection.

Improving CPU Performance when Debugging Improving CPU Performance when Debugging

The first option must be set in the Configuration Editor. It is useful when the serial port is being used by the guest operating system in polled mode as opposed to interrupt mode. Polled mode causes the virtual machine to consume a disproportionate share of CPU time. This makes the host and other guests run sluggishly.

To restore performance for applications on the host, in the Configuration Editor, select the virtual serial port, and check the Yield CPU on poll check box. This configuration option forces the affected virtual machine to yield processor time if the only thing it is trying to do is poll the virtual serial port.

Changing the Input Speed of the Serial Connection Changing the Input Speed of the Serial Connection

The second option - serial<n>.pipe.charTimePercent = <x> - should be added as a new line to your virtual machine's configuration file. (Power off the virtual machine and close the VMware Workstation window before editing the configuration file.) It is useful to squeeze every possible bit of speed from your serial connection over a pipe to the virtual machine. There is no limit on the output speed, which is how fast the virtual machine sends data through the virtual serial port. The output speed depends on how fast the application at the other end of the pipe reads data inbound to it.

<n> is the number of the serial port, starting from 0. So the first serial port is serial0. <x> is any positive integer. It specifies the time taken to transmit a character, expressed as a percentage of the default speed set for the serial port in the guest operating system. For example, a setting of 200 forces the port to take twice as long per character, or send data at half the default speed. A setting of 50 forces the port to take only half as long per character, or send data at twice the default speed.

You should first use the guest operating system to configure the serial port for the highest setting supported by the application you are running in the virtual machine.

Once the serial port speed is set appropriately in the guest operating system, experiment with this setting. Start with a value of 100 and gradually decrease it until you find the highest speed at which your connection works reliably.

Usage Scenarios: Debugging Over a Virtual Serial Port Usage Scenarios: Debugging Over a Virtual Serial Port

You can use Debugging Tools for Windows (WinDbg) or Kernel Debugger (KD) to debug kernel code in a virtual machine over a virtual serial port. You can download Debugging Tools for Windows from the Windows DDK Web site at www.microsoft.com/ddk.

Charango. Synthesizer software free download. Electric Piano. Amplified Electric Cello Quartet.

The following two examples illustrate how to use a virtual serial port to debug kernel code in a virtual machine:

  • Where the debugging application is on the VMware Workstation host (Windows hosts only)
  • Where the debugging application is in another virtual machine on the same VMware Workstation host (which is useful on a Linux host, but can also be done on a Windows host)

Using either of these methods lets you debug kernel code on one system, without the need for two physical computers, a modem or serial cable.

Debugging an Application in a Virtual Machine from the Windows Host Debugging an Application in a Virtual Machine from the Windows Host

In this situation, you have kernel code to debug in a virtual machine (called the target virtual machine) and are running WinDbg or KD on your Windows host.

To prepare the target virtual machine, follow the steps for a Windows host in Connecting an Application on the Host to a Virtual Machine. Make sure you configure the virtual machine's virtual serial port as follows:

  • Select This end is the server
  • Under I/O Mode, select the Yield CPU on poll check box, as the kernel in the target virtual machine uses the virtual serial port in polled mode, not interrupt mode

Serial Port Names In Linux

To prepare the host, make sure you have downloaded the correct version of Debugging Tools for Windows. You need version 4.0.18.0, dated December 21, 2001, as it supports debugging over a pipe.

Note: Pipe support is not documented in the WinDbg and KD in-product help or on Microsoft's Web site.

When you are ready to begin, complete the following steps:

  1. Power on the virtual machine.
  2. Check to make sure the serial port is connected. On the Devices menu, serial<n> should say Connecting, as it is waiting to connect to the host on the other end of the pipe.

    Note: If the serial<n> says (Not connected), then the serial port may not be connected. Choose the virtual serial port, then Connect.

  3. On the host, open a Command Prompt window and do one of the following:
    • If you are using WinDbg, type the following:
  • If you are using KD, type the following:
kd -k com:port=.pipe<namedpipe>,pipe

Then press Enter to start debugging.

Debugging an Application in a Virtual Machine from another Virtual Machine Debugging an Application in a Virtual Machine from another Virtual Machine

In this situation, you have kernel code to debug in a virtual machine (called the target virtual machine) and are running Debugging Tools for Windows (WinDbg) or Kernel Debugger (KD) in another virtual machine (called the debugger virtual machine) on the same host.

This is useful if you are running VMware Workstation on a Linux host. The debugger virtual machine must be running Debugging Tools for Windows (WinDbg) or Kernel Debugger (KD) in a Windows guest operating system.

To prepare the target virtual machine, follow the steps for the server virtual machine for the appropriate host in Connecting Two Virtual Machines. Make sure when you configure the target virtual machine's virtual serial port that you select the Yield CPU on poll check box, as the kernel in the target virtual machine uses the virtual serial port in polled mode, not interrupt mode.

To prepare the debugger virtual machine, make sure you have downloaded Debugging Tools for Windows. Then follow the steps for the client virtual machine in Connecting Two Virtual Machines.

Model and serial number windows 10 64 bit. Jun 09, 2009  If you want to find out the computer model name and the computer serial number of your Windows PC, here is a simple way to do it using the command prompt. Find out the local computer model. Dec 28, 2018  Windows doesn’t display your PC’s serial number anywhere in its interface, and neither do popular system information tools. But you can often find a PC’s serial number with a simple command, a peek in your BIOS, or on the hardware itself.

When you are ready to begin, complete the following steps:

  1. Power on both virtual machines.
  2. Check to make sure the serial port is connected in each virtual machine. On the Devices menu, serial<n> should say .pipe<namedpipe> (Windows hosts) or /tmp/<socket> (Linux hosts).

    Note: If the serial<n> says (Not connected), then the serial port may not be connected. Choose the virtual serial port, then Connect.

  3. In the debugger virtual machine, start debugging with WinDbg or KD normally.
Active6 months ago

In Windows command prompt to configure a serial port, I can simple use:

or to read the configuration:

Are there similar commands in Linux? What would be the easiest way to find and configure the serial port in Linux?

Hrvoje THrvoje T
4322 gold badges5 silver badges22 bronze badges

1 Answer

You can use the stty command to set such parameters.

This will show all settings on the first serial port (replace ttyS0 with ttyUSB0 if using an USB serial port):

Linux Serial Port Configuration Linux

This will set the baud rate to 9600, 8 bits, 1 stop bit, no parity:

One thing that generally confuses people is that most serial drivers will reset the settings to the defaults once the device is closed (i.e. no process has the device open anymore). So the above stty command will set the settings, then when it's done the driver resets them again. If you first have your POS software open the device and then perform the stty settings, they should stick around until your POS software closes the device again (e.g. upon exiting).

I'd have thought that the POS software should have some way of configuring these settings on its own. If you're writing your own software to drive the printer, make sure you first open the device, and then perform the stty command.

You may also need to play around with other settings, e.g. opost means that output postprocessing will be performed. If opost and onlcr are both set, the onlcr will cause an extra carriage return (0xd) to be added when a newline (0xa) byte is output, typically to prevent staircase printing such as

This may or may not be what you want. If you want a raw one-to-one output to the printer turn opost off (add -opost to the stty parameters).

Handshaking (flow control) is also controlled with stty, without knowing more about the printer I can't tell whether you need to set anything.

Check the stty manpage for lots more info.

wurtelwurtel
12.1k1 gold badge17 silver badges29 bronze badges

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