commit 03906dc3eea1bcc0aa880aeadd1bc1ba1d26d472
Author: Thomas Schöpping <tschoepp@cit-ec.uni-bielefeld.de>
Date:   Thu Sep 20 11:20:44 2018 +0200

    Introduced an alias for the serial ports (/dev/ttypUSB[0-9]*).
    For programmer devices an additional symbolic link "/dev/ttyAMiRo<ID>" gets created.
    The old interface is still supported, though.

diff --git a/Host/Source/SerialBoot/main.c b/Host/Source/SerialBoot/main.c
index 911851d..9f09358 100644
--- a/Host/Source/SerialBoot/main.c
+++ b/Host/Source/SerialBoot/main.c
@@ -95,7 +95,7 @@ static sb_int32 programCode(sb_file *hSrecord, tSrecordParseResults *fileParseRe
 /****************************************************************************************
 * Local data declarations
 ****************************************************************************************/
-/** \brief Name of the serial device, such as COM4 or /dev/ttyUSB0. */
+/** \brief Name of the serial device, such as COM4, /dev/ttyUSB0 or /dev/ttyAMiRo0. */
 static sb_char serialDeviceName[32];
 
 /** \brief Id of the bluetooth device, such as 01:23:45:67:89:AB. */
@@ -244,15 +244,16 @@ static void DisplayProgramUsage(void)
   printf("Example 4:  SerialBoot -dCOM4 -b57600 firmware.srec\n\n");
   printf("WARNING: SerialBoot is not really functional with windows! Please use\n");
   printf("         the Linux version.\n\n");
-  printf("  -> In all four cases it connects to COM4 and configures a communication\n");
+  printf("  -> In all four cases it connects to COM4.\n");
 #else
-  printf("Example 2:  SerialBoot -d/dev/ttyUSB0 -b57600 -T3 firmware.srec\n");
-  printf("Example 3:  SerialBoot -d/dev/ttyUSB0 -b57600 -T0 firm1.srec -T3 firm2.srec\n");
-  printf("Example 4:  SerialBoot -d/dev/ttyUSB0 -b57600 firmware.srec\n\n");
-  printf("  -> In all four cases it connects to ttyUSB0 and configures a communication\n");
+  printf("Example 2:  SerialBoot -d/dev/ttyAMiRo0 -b57600 -T3 firmware.srec\n");
+  printf("Example 3:  SerialBoot -d/dev/ttyAMiRo0 -b57600 -T0 firm1.srec -T3 firm2.srec\n");
+  printf("Example 4:  SerialBoot -d/dev/ttyAMiRo0 -b57600 firmware.srec\n\n");
+  printf("  -> In all four cases it connects to '/dev/ttyAMiRo0' alias '/dev/ttyUSB0'.\n");
 #endif
-  printf("     speed of 57600 bits/second. The bootloaders will be set into flashing\n");
-  printf("     mode and will be reset after flashing the last binary file.\n");
+  printf("  -> In all four cases a communication speed of 57600 bits/second is configured.\n");
+  printf("     The bootloaders will be set into flashing mode and will be reset after\n");
+  printf("     flashing the last binary file.\n");
   printf("  -> In the first example this help will be opened\n");
   printf("  -> In the second example the binary file 'firmware.srec' will be flashed on\n");
   printf("     device 0x03.\n");
diff --git a/README.txt b/README.txt
index 04bd038..75a9cb0 100644
--- a/README.txt
+++ b/README.txt
@@ -202,11 +202,11 @@ Open the file in a text editor of your choice (sudo required) and add the
 following lines:
 
   # Future Technology Devices International Ltd. - TTL-232RG
-  SUBSYSTEMS=="usb", ACTION=="add", KERNEL=="ttyUSB[0-9]*",
+  SUBSYSTEMS=="usb", ACTION=="add", KERNEL=="ttyUSB[0-9]*", SYMLINK+="ttyAMiRo%n",
   ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE="0666"
 
   # Future Technology Devices International Ltd. - FT231X
-  SUBSYSTEMS=="usb", ACTION=="add", KERNEL=="ttyUSB[0-9]*",
+  SUBSYSTEMS=="usb", ACTION=="add", KERNEL=="ttyUSB[0-9]*", SYMLINK+="ttyAMiRo%n",
   ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6015", MODE="0666"
 
 Now connect the module you want to flash directly to your system (note that
diff --git a/Target/Modules/flash.mk b/Target/Modules/flash.mk
index 9fd5440..b78c8c1 100644
--- a/Target/Modules/flash.mk
+++ b/Target/Modules/flash.mk
@@ -28,7 +28,19 @@ STM32FLASH := $(dir $(lastword $(MAKEFILE_LIST)))../../Host/Source/stm32flash/st
 ifeq ($(OS),Windows_NT)
 	STM32FLASH_PORT ?= COM5
 else
-	STM32FLASH_PORT ?= /dev/ttyUSB0
+	# check whether /dev/ttyAMiRo0 exists
+	ifeq (,$(wildcard /dev/ttyAMiRo0))
+		# check whether /dev/ttyUSB0 exists
+		ifeq (,$(wildcard /dev/ttyUSB0))
+			# set to /dev/ttyAMiRo0 for meaningful error message
+			STM32FLASH_PORT ?= /dev/ttyAMiRo0
+		else
+			# legacy support
+			STM32FLASH_PORT ?= /dev/ttyUSB0
+		endif
+	else
+		STM32FLASH_PORT ?= /dev/ttyAMiRo0
+	endif
 endif
 BAUDRATE = 115200
 BINARY = $(BIN_PATH)/$(PROJ_NAME).hex
