blob: a82957e72a8da1f30aeca3477bca2b94224d7308 [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 (outside the chroot):
# alias dut-console="~/chromiumos/src/platform/dev/contrib/dut-console"
# And then simply run:
# dut-console ec
#
# The script also allows to connect to different servod port, e.g.
# dut-control cpu 9999
# 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"
get_pty() {
local pty_name="$1"
local port="$2"
local args=()
if [[ -n "${port}" ]]; then
args+=( --port "${port}" )
fi
PYTHONPATH="${PYTHONPATH}" \
python "${PYTHONPATH}/servo/dut_control.py" "${pty_name}" "${args[@]}" | \
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
}
usage() {
cat <<EOF
dut-control type [port]
Opens CPU/EC servo console using "cu", outputs to both terminal, and an output
file named "log-\${type}[-\${port}]" in the current directory.
type One of cpu, ec, cr50, fpmcu, servo, servo_v4
[port] servod port (optional, uses default if not specified)
EOF
exit 2
}
main() {
local type="$1"
local port="$2"
local pty
local pty_name
local outlog
find_cu
case "${type}" in
cpu)
pty_name=cpu_uart_pty
;;
ec)
pty_name=ec_uart_pty
;;
cr50)
pty_name=cr50_uart_pty
;;
fpmcu)
pty_name=fpmcu_uart_pty
;;
servo)
pty_name=servo_console_pty
;;
servo_v4)
pty_name=servo_v4_console_pty
;;
*)
usage
;;
esac
pty="$(get_pty "${pty_name}" "${port}")"
if [[ ! -e "${pty}" ]]; then
echo "Cannot find pty ${pty_name}." >&2
exit 1
fi
outlog="log-${type}"
if [[ -n "${port}" ]]; then
outlog="${outlog}-${port}"
fi
echo "Opening ${pty_name}:${pty}..."
echo "Log in ${outlog}, type ~.<enter> to exit."
cu --nostop -l "${pty}" | tee "${outlog}"
}
main "$@"