#!/bin/sh # Copyright (C) 2014 Intel Corporation # # Released under the MIT license (see COPYING.MIT) if [ "$1" = "" -o "$1" = "--help" ] ; then echo "Usage: $0 " 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