12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #!/bin/sh
- # Copyright (C) 2014 Intel Corporation
- #
- # SPDX-License-Identifier: MIT
- #
- if [ "$1" = "" -o "$1" = "--help" ] ; then
- echo "Usage: $0 <serial terminal command>"
- echo
- echo "Simple script to handle maintaining a terminal for serial devices that"
- echo "disappear when a device is powered down or reset, such as the USB"
- echo "serial console on the original BeagleBone (white version)."
- echo
- echo "e.g. $0 picocom -b 115200 /dev/ttyUSB0"
- echo
- exit
- fi
- args="$@"
- DEVICE=""
- while [ "$1" != "" ]; do
- case "$1" in
- /dev/*)
- DEVICE=$1
- break;;
- esac
- shift
- done
- if [ "$DEVICE" != "" ] ; then
- while true; do
- if [ ! -e $DEVICE ] ; then
- echo "serdevtry: waiting for $DEVICE to exist..."
- while [ ! -e $DEVICE ]; do
- sleep 0.1
- done
- fi
- if [ ! -w $DEVICE ] ; then
- # Sometimes (presumably because of a race with udev) we get to
- # the device before its permissions have been set up
- RETRYNUM=0
- while [ ! -w $DEVICE ]; do
- if [ "$RETRYNUM" = "2" ] ; then
- echo "Device $DEVICE exists but is not writable!"
- exit 1
- fi
- RETRYNUM=$((RETRYNUM+1))
- sleep 0.1
- done
- fi
- $args
- if [ -e $DEVICE ] ; then
- break
- fi
- done
- else
- echo "Unable to determine device node from command: $args"
- exit 1
- fi
|