.TH MDT "1" "December 2018" "MDT" "User Commands"
.SH NAME
mdt \- manipulate Mendel Linux devices
.SH SYNOPSIS
.B mdt
[\fI\,SUBCOMMAND\/\fR] [\fI\,ARGS\/\fR]...
.SH DESCRIPTION
.PP
MDT is a simple tool to aid in working with single board computers that the
Mendel Linux distribution runs on. It consists of a whole bunch of pre-existing
open source tooling, coupled with some simple wrappers written in python to ease
their use.
.PP
It also provides an easy way to interact with these boards without having to
fight with serial consoles, IP addresses, and other fiddly bits, reducing
barrier to entry when working with these boards.
.PP
With minimal effort, MDT should also be portable to existing systems such as
Debian and Ubuntu, if needed. This, however, is out of the scope of this
project.
.SH TYPICAL WORKFLOW
.PP
Running the \fBmdt\fR command will automatically print out a summary of useful
subcommands to run. The typical workflow with mdt is the following:
.PP
Run \fBmdt devices\fR to see what devices are available on your local network
segment.
.PP
Run \fBmdt set preferred-device \fR\fIDEVICE-NAME-OR-IP-ADDRESS\fR to set the
name or IP address of the device you would like to connect to.
.PP
Run \fBmdt shell\fR to open an interactive terminal to the device.
.PP
Run \fBmdt pull\fR or \fBmdt push\fR to push and pull files to and from the
device.
.SH NETWORKING
.PP
MDT uses SSH to handle most commands in the backend, and requires SSH keys for
authentication to the device. Keys are stored in the \fB~/.config/mdt/keys\fR
directory, and are readily usable by standard SSH tooling, if required. The
remote device is expected to advertise the _googlemdt._tcp service over mDNS
and run both SSH and \fBmdt-keymaster\fR.
.SH INITIAL SETUP
.PP
MDT expects the remote device to be free of any initial SSH keys and running the
\fBmdt-keymaster\fR service on port 41337. This service is a simple HTTP server
that expects a single PUT command to be sent containing a line that can be added
to the default user's authorized_keys file.
.PP
During first contact the MDT client will generate an SSH key if none are on
disk. Once it has one, it will attempt to connect via SSH to the remote device
using this key only. If this fails, it will then attempt to push the key's
public part via the \fBmdt-keymaster\fR service as described above.
.PP
Once this file has been written to, \fBmdt-keymaster\fR will stop running from
that point forward, and key authentication should perform normally. It is
expected that the remote SSH service will be running in key authentication mode
only.
.SH SUBCOMMANDS
.PP
MDT recognizes the following subcommands:
.PP
.TP
\fBhelp\fR
gets detailed help on any other subcommand
.TP
\fBclear\fR
clears (unsets) an MDT variable on disk
.TP
\fBdevices\fR
prints a list of discovered devices on the local network segment
.TP
\fBexec\fR
runs a shell command on a connected device
.TP
\fBgenkey\fR
generates an SSH key to use for authenticating to a device
.TP
\fBget\fR
prints the value of an MDT variable on disk
.TP
\fBinstall\fR
installs a Debian package (.deb) to a connected device
.TP
\fBpull\fR
pulls (copies, downloads) a single or set of files from a connected device
.TP
\fBpush\fR
pushes (copies, uploads) a single or set of files to a connected device
.TP
\fBreboot\fR
reboots a connected device
.TP
\fBreboot-bootloader\fR
reboots a connected device into the fastboot bootloader
.TP
\fBset\fR
sets an MDT variable on disk
.TP
\fBshell\fR
opens an SSH shell connection to a connected device
.TP
\fBwait-for-device\fR
waits for a device to be discovered on the local network segment
.SH FILES
.PP
MDT stores files in the user's home directory under the standard
\fB.config/mdt\fR heirarchy. Two subdirectories are used in here, called
\fBattribs\fR and \fBkeys\fR.
.PP
\fBattribs\fR contains any single-line files used to store MDT variables.
.PP
\fBkeys\fR contains the SSH keys generated by MDT and are used for SSH
authentication.
.SH KNOWN ISSUES
.PP
None.
.SH AUTHOR
Written by June Tate-Gans.
.SH "REPORTING BUGS"
Contact Coral support at <coral-support@google.com>
.SH COPYRIGHT
Copyright \(co 2018 Google, Inc.
License Apache 2.0.
