Code Monkey home page Code Monkey logo

mtda's Introduction

Overview

Multi-Tenant Device Access (or MTDA for short) is a relatively small Python application acting as an interface to a test device. It provides mechanisms to remotely turn the device on or off (assuming an IP/USB power switch is available), plug USB devices in or out (also requiring special hardware) or simply access its console (in most cases serial).

A sample setup is depicted below:

NanoPI setup

Badges

CI DOCS REUSE

Getting Started

Development

Mailing list: [email protected]

Archive: https://www.mail-archive.com/[email protected]/

For sending patches, please refer to the mailing list and CONTRIBUTING.md in the source tree.

License

MTDA is licensed under the MIT license.

mtda's People

Contributors

bhargavdas avatar bovi avatar chombourger avatar gubi34 avatar hkoturap avatar jan-kiszka avatar jjmcdn avatar ptsarath avatar ricbha avatar shikl3x7 avatar vj-kumar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

mtda's Issues

add monitor driver

some systems may use a dedicated UART for booting and/or for controlling them
support another instance of the console logger configured with its own variant and driver settings
provide monitor APIs to access its ring buffer and send arbitrary commands

track and report uptime

record when the target is powered on
provide an API to return uptime in seconds
modify the CLI to print system uptime

Host           : build (0.6)                              
Remote         : mtda-nanopi (0.6)                              
Prefix key:    : ctrl-b
Session        : Peck
Target         : OFF (up 1h 23m)  
Storage on     : TARGET 
Storage writes : 2864 MiB

need a logo for this project

leave your proposal here
we will count likes in a little while to select our project logo

MTDA stands for Multi-Tenant Device Access

MTDA project is private. Breaks ISAR build

ERROR: mtda-git-r0 do_fetch: Fetcher failure: Fetch command export PSEUDO_DISABLED=1; unset _PYTHON_SYSCONFIGDATA_NAME; export GIT_PROXY_COMMAND="oe-git-proxy"; export NO_PROXY="*"; export PATH="/work/isar/scripts:/work/isar/bitbake/bin:/usr/sbin:/usr/bin:/sbin:/bin"; export HOME="/tmp/tmpf80dw0ux"; LANG=C git -c core.fsyncobjectfiles=0 clone --bare --mirror https://github.com/MentorEmbedded/mtda.git /work/build/downloads/git/github.com.MentorEmbedded.mtda.git --progress failed with exit code 128, output:
Cloning into bare repository '/work/build/downloads/git/github.com.MentorEmbedded.mtda.git'...
fatal: could not read Username for 'https://github.com': No such device or address

ERROR: mtda-git-r0 do_fetch: Fetcher failure for URL: 'git://github.com/MentorEmbedded/mtda.git;protocol=https;branch=master'. Unable to fetch URL from any source.
ERROR: Logfile of failure stored in: /work/build/tmp/work/debian-buster-armhf/mtda/git-r0/temp/log.do_fetch.243
ERROR: Task (/repo/meta-isar/recipes-python/mtda/mtda_git.bb:do_fetch) failed with exit code '1'

starting qemu seems to be underdocumented

Following the documentation on building and starting mtda with QEMU I could not find a link/getting started about how to start the dispatcher utilizing the sample config?

Hardware support from mtda for nanopi R1

Can mtda support the FriendlyArm NanoPi R1?

Rational:

It would be benificial for us to instrument the test device as well with the network environment (dhcp / fixed IP / gateway / proxy ...). This will allow us to call some device APIs from the test dispatcher as well without the need to have a parallel configuration of switches and routers.

As well more than one USB port would be helpful to avoid USB HUBs.

Looking for WiFi devices a local Hot Spot will be a help.

The nanopi R1 seems to fit well. It is thought as minirouter and comes with nice housing options.

https://www.friendlyarm.com/index.php?route=product/product&path=69&product_id=248

Cross Compile Issues

I have noticed that this layer fails to build using ISAR_CROSS_COMPILE = "1" (which is often enabled globally in downstream layers which may depend on this layer). It seems that mostly Python packages are affected by this, e.g.

  • curve25519-donna
  • hap-python

(this list is most likely incomplete)

It would be nice if this layer could be built when cross-compilation is enabled globally. There are two viable approaches:

  1. Fix the problematic recipes (e.g. by depending on python-whatever:native).
  2. Disable cross-compilation for recipes which cannot be fixed easily.

support bmap images

check if we can use the BmapBdevCopy from the bmaptools package to write images to the shared storage device
according to the documentation, the image object only needs to support read() and seek()

create MAINTAINERS file

As part of our upstreaming process, we need to identify maintainers of the project and list them in a MAINTAINERS file to be placed in the source tree

add a wifi driver

Some test suites require having a Wi-Fi access point to exercise their 802.11 stack. We could plug a USB Wi-Fi dongle to our NanoPI and provide APIs (most likely simple wrappers around NetworkManager calls) and configure it as an Access Point.

mtda-usb-functions started before /dev/sda is detected

Had a debug session with Gunther earlier today and we have found that mtda-usb-functions was started before /dev/sda was detected by the kernel. This caused the service to fail and his DUT could not detect our shared storage.

USB mass storage emulation is an "sdmux" driver?

usbf is emulating a USB mass storage device, but it is configured as SD-card multiplexer - that is rather confusing /wrt naming. Maybe rename sdmux to "storage"? That would be more logical.

Also note that usbf looks underdocumented.

report power state changes to HomeKit

initial support for HomeKit was introduced with 5a56166
we however need a mechanism for our HomeKit driver to be notified on state changes and report the new status to the HomeKit network

configuration option to change prefix key

MTDA may be controlled from the interactive console by using a key combination of a prefix key, Ctrl-a by default, followed by a command key. People using a terminal multiplexer such as screen may find our default prefix key conflicting with the multiplexer. Provide a configuration option to change the default key prefix to any letter (e.g. Ctrl-m

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.