blob: 4e8e384e92113e0465b41a451ef5b29d8334c34c [file] [log] [blame]
#!/bin/bash
# Copyright 2018 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# This opens various servo consoles using cu, from outside the chroot,
# automatically getting the correct console from dut-control. This
# also tees the output to a secondary logfile.
#
# The recommended way to use this is to setup an alias, e.g. add this in
# your .bashrc:
# alias dut-console="~/chromiumos/src/platform/dev/contrib/dut-console"
# And then simply run:
# dut-console ec
# Script is stored in $CROS_SDK/src/platform/dev/contrib
CROS_SDK="$(readlink -f "$(dirname "$0")/../../../..")"
PYTHONPATH="${CROS_SDK}/chroot/usr/lib64/python2.7/site-packages"
# TODO: Figure out how to change port (e.g. for dual-servo setup on hammer)
get_pty() {
PYTHONPATH="${PYTHONPATH}" \
python "${PYTHONPATH}/servo/dut_control.py" -- "$1" | cut -d : -f 2
}
find_cu() {
if ! hash cu; then
echo "Please install cu first:" >&2
echo "sudo apt-get install cu" >&2
exit 1
fi
}
main() {
local type="$1"
local pty
local pty_name
find_cu
case "${type}" in
cpu)
pty_name=cpu_uart_pty
;;
ec)
pty_name=ec_uart_pty
;;
cr50)
pty_name=cr50_console_pty
;;
fpmcu)
pty_name=fpmcu_uart_pty
;;
*)
echo "Unknown parameter '${type}' (cpu, ec, cr50, fpmcu are supported)" >&2
exit 1
;;
esac
pty="$(get_pty ${pty_name})"
if [[ ! -e "${pty}" ]]; then
echo "Cannot find pty ${pty_name}." >&2
exit 1
fi
echo "Opening ${pty_name}:${pty} (type ~.<enter> to exit)..."
cu --nostop -l "${pty}" | tee "log-${type}"
}
main "$@"