Board Farm
Here is some information about board farms.
Contents
Community
At the Embedded Linux Conference Europe 2017 Andrew Murray held a BoF session titled Farming Together. The purpose of this BoF was to bring together people that are actively working on board farms to create a community, to knowledge share and to start a collaborative effort.
Add your name and contact information if you would like to be notified when an e-mail list is created, or are generally interested in this topic:
- Andrew Murray - <amurray (at) witekio.com> *
- Tim Bird - <tim.bird (at) sony.com> *
- Robert Schwebel <r.schwebel (at) pengutronix.de> *
- Arnout Vandecappelle - <arnout at mind dot be> -- doesn't have a board farm but is interested
- Mirza Krak - <mirza.krak (at) endian.se> *
- Alan Bennett - <alan (at) opensourcefoundries.com>
- Geert Uytterhoeven - <geert (at) linux-m68k.org> *
- Andrea Scian - <andrea.scian (at) dave.eu>
- Kieran Bingham - <kbingham (at) kernel.org> *
- Jan Lübbe - <j.luebbe (at) pengutronix.de> *
- Marco Cavallini - <m.cavallini (at) koansoftware.com>
- Kevin Hilman - <khilman (at) baylibre.com>
- Bill Mills - <wmills (at) ti.com>
- Tom Gall - <tom.gall (at) linaro.org>
- Stephano Cetola - <stephano.cetola (at) linux.intel.com>
- Mike Holmes - <mike.holmes (at) linaro.org>
- Matteo Vit - <matteo.vit (at) dev.starwaredesign.com>
- Attie Grande - <attie.grande (at) argentum-systems.co.uk>
- Roland Hieber <r <dot> hieber <at> pengutronix <dot> de>
- Tim Orling <ticotimo (at) gmail (dot) com>
- Ryan Arnold <ryan <dot> arnold <at> linaro <dot> org>
- Behan Webster <behanw (at) converseincode (dot) com> *
- Michal Simek <monstr (at) monstr (dot) eu>
- Krzysztof Kozlowski <krzk (at) kernel (dot) org>
- Jagan Teki <jagan (at) openedev (dot) com>
- Heiko Schocher <hs (at) denx (dot) de>
- Khiem Nguyen <khiem.nguyen.xt (at) renesas.com>
- Amit Kucheria <amit.kucheria (at) verdurent.com>
* = have seen this person on the e-mail list, or already subscribed.
Mailing list
Discussions on this topic have started at on the "Automated Testing" mailing list of the Yocto Project
- See https://lists.yoctoproject.org/g/automated-testing
- (was https://lists.yoctoproject.org/listinfo/automated-testing)
Next meeting
To be determined.
Maybe at Plumbers 2018, Connect, or ELCE 2018
Actions
- define API between test framework and DUT controller layer?
- pduclient?
- labgrid?
- ebfarm?
- ttypersist: provides an application a fake socket for misbehaving ttys
- ttc
- libvirt
- r4d
- survey of existing tools, hardware, practices
- create a definition for an "automated testing" stack - see Automated Testing Stack
- start with definitions from SLAV?
- identify different areas of test automation operation
Presentations
If you know of a presentation on this topic, please add it below:
- "Test Standards - Can Fuego, Lava and others agree?" by Tim Bird at Linaro Connect SFO 2017
- "Herd Your Boards, Become a Farmer" by Geert Uytterhoeven at ELCE2016
- "Automation beyond Testing and Embedded System Validation" by Jan Luebbe (Pengutronix) at ELCE2017
- Introduction to kernelCI.org
- Blog Article and Video
- Piece of cake - testing remote embedded devices made easy with MuxPi by Paweł Wieczorek at FOSDEM 2018
Best Practices
Issues/Requirements
Misc / Tools
- New horizontally scalable CI system built with Containers and container orchestration technologies in mind - https://github.com/OpenSourceFoundries/jobserv / http://connect.linaro.org/resource/sfo17/sfo17-217/
Hardware
SD muxers
- USB-SD-Mux by Pengutronix, now available
- SD-MUX by Tizen (deprecated - see MuxPi)
- MuxPi by Tizen (MuxPi is the successor to SD-MUX)
- IO-CX by Timesys
Kevin Hilman mentioned (at ELCE 2017) wifi SDCards as a way to handle the SD mux problem. Was he referring to something like these? http://techpp.com/2015/04/28/wifi-sd-cards-camera/
power control
- usb board with switchable power
- ykush - 3 port USB power switcher - https://www.yepkit.com/products/ykush
- Web Power Switch by Digital Loggers
- control program by Tim Bird: File:Powerswitch-set.sh
- Energenie Power Management System (USB controlled 4-way power switch +2 always on) (UK)
- uhubctl USB hub per-port power control
relays/buttons
- 8-Channel Opto-Isolator Board for Board Farm Control
- DIN Relay IV by Digital Loggers
- This uses the same control protocol as the Web Power Switch mentioned above
- KMTronic 8-channel IP relay controller
- Raspberry Pi relay board
- Relays over ethernet
multi-function
- BayLibre ACME cape - power and temperature measurement with different probes (USB, Jack power cable, HE10)
- See https://gitlab.com/baylibre-acme/acme-hardware-docs for design docs
- Sony_Debug_Assist_board - Open Hardware design by Sony for multi-function DUT controller (USB, serial, power, buttons)
- connection to host = USB serial
- elinux page about v2 of the board (how to use) is here: Sony_Debug_Assist_board
- github page with source code, schematics, gerber files, etc. is at: https://github.com/sonyxperiadev/CDB-Assist
- schematics here: https://github.com/sonyxperiadev/CDB-Assist/blob/master/Hardware/CDBAssist-v3.1-Schematics.pdf
- MuxPi by Tizen Open Hardware design by Samsung for multi-function DUT controller (serial, power, buttons, network?)
- connection to host = network
- Remote Testing Environment - Open Hardware design by 3mdeb for multi-function DUT controller (power, programmer, serial)
- connection to host = network
- github page for RTE schematics (rev 1.0.0)
- github page with meta-rte layer based on Yocto Project
- github page for RTE REST API controller (beta)
- BCU/2 board - Open Hardware design by Geert Uytterhoeven for multi-function DUT controller(serial, power, buttons, gpio, i2c, etc.)
- uses a teensy board
- It's a small board to control and monitor the operation of two development boards.
- hardware files: https://github.com/geertu/pcb-bcu2
- software files: https://github.com/geertu/teensy3-bcu2
- connection to host = USB
- IO-CX by Timesys (Multi-function DUT control: SD-MUX, USB-MUX, GPIO, I2C)
USB mega-ports
A few people are using these:
USB switchers
- LAVA-LMP USB - allows switching USB connections to a DUT
- Extron USB Switcher
- 2101 USB Connection Exerciser
gpio controllers
HDMI testing
unsorted LAVA hardware helpers
See https://lava.coreboot.org/static/docs/v1/lmp_test_guide.html
Possibly https://github.com/GlasgowEmbedded/glasgow to control various buses (via FPGA).
Software
- Labgrid : http://labgrid.readthedocs.io - http://labgrid.org
- CI-RT : https://ci-rt.linutronix.de
- R4D : https://github.com/ci-rt/r4d - https://github.com/ci-rt/libr4d
- Libvirt : https://github.com/ci-rt/libvirt-debian
- Jenkins plugin : https://github.com/ci-rt/libvirt-slave-plugin
- ttc : https://github.com/tbird20d/ttc - documentation at: Ttc_Program_Usage_Guide
- tbot : https://github.com/hsdenx/tbot - http://www.tbot.tools/main.html
- SLAV stack : ??? (Pawel's thing - see Media:Piece_of_cake.pdf
Services
- TimeSys Board Farm Cloud: See https://www.timesys.com/pdf/Timesys-On-Premises-Board-Farm-Cloud.pdf
- Good Device Labs - CanaryQA
Notes
- spend money on USB serial adapter cables - cheap adapters sometimes drop connections and are a pain to debug
- FTDI cables seem to work well.
Farm Survey
Tim Bird is conducting a survey of Farm hardware (DUT controllers). See this page: Board Farm Survey