piece of cake
play

Piece of cake testing remote embedded devices made easy with MuxPi - PowerPoint PPT Presentation

Piece of cake testing remote embedded devices made easy with MuxPi . Pawe Wieczorek February 3, 2018 Samsung R&D Institute Poland Agenda . 1. Introduction 2. Previous efforts 3. Idea 4. Hardware 5. Software 6. Next steps 7.


  1. Piece of cake testing remote embedded devices made easy with MuxPi . Paweł Wieczorek February 3, 2018 Samsung R&D Institute Poland

  2. Agenda . 1. Introduction 2. Previous efforts 3. Idea 4. Hardware 5. Software 6. Next steps 7. Conclusion 1/49

  3. Introduction .

  4. Tizen . 2/49

  5. Use cases . https://news.s6msung.com/glob6l/ tizen-�-�-first-milestone-rele6se-to-open-new-opportunities-in-the-iot-er6 3/49

  6. Release engineering . • Continuous platform development • QA step prior pulling new changes • Package internal tests are not enough 4/49

  7. Remote accessibility . . • Easy to store in a secure manner • Less effort than per developer • Better utilized when shared 5/49

  8. Piece of cake (with MuxPi) . 6/49

  9. Piece of cake (with Dryad) . . 7/49

  10. Piece of cake (with Dryad) . . 7/49

  11. Piece of cake (with Dryads) . . 8/49

  12. Piece of cake (with Dryads) . . 8/49

  13. Piece of cake (with Dryads) . . 8/49

  14. Previous efforts .

  15. LAVA . • Linaro Automated Validation Architecture • Automation system for deploying operating systems • Virtual and physical hardware supported • Allows running boot, bootloader and system level tests 9/49

  16. Kernel CI . https://kernelci.org/st6ts/ 10/49

  17. LAVA LMP . https://linux.codehelp.co.uk/the-problem-of-sd-mux.html 11/49

  18. SD MUX . 12/49

  19. SD MUX – open hardware . https://git.tizen.org/cgit/tools/testl6b/sd-mux 13/49

  20. Autohat board (SD MUX-based) . https://github.com/resin-io/6utoh6t-bo6rd 14/49

  21. SD MUX issues . $ dmesg | t6il -�� [ ��.������] usb �-�: new full-speed USB device number �� using xhci_hcd [ ��.������] usb �-�: device descriptor re6d/��, error -�� [ ��.������] usb �-�: device descriptor re6d/��, error -�� [ ��.������] usb �-�: new full-speed USB device number �� using xhci_hcd [ ��.������] usb �-�: Device not responding to setup 6ddress. [ ��.������] usb �-�: Device not responding to setup 6ddress. [ ��.������] usb �-�: device not 6ccepting 6ddress ��, error -�� [ ��.������] usb �-�: new full-speed USB device number �� using xhci_hcd [ ��.������] usb �-�: Device not responding to setup 6ddress. [ ��.������] usb �-�: Device not responding to setup 6ddress. [ ��.������] usb �-�: device not 6ccepting 6ddress ��, error -�� [ ��.������] usb usb�-port�: un6ble to enumer6te USB device 15/49

  22. Idea .

  23. Constraints . • Only replaceable media • No single point of failure parts • No USB involvement (from test server) 16/49

  24. Requirements . • Minimum external connections • Unified remote access to target devices • Easy setup and maintenance 17/49

  25. Features . • User interface (often requested) • Power measurement (increasing demand) • Writing EDID to HDMI 18/49

  26. Hardware .

  27. MuxPi . 19/49

  28. MuxPi components . . 20/49

  29. MuxPi components . . 20/49

  30. MuxPi components . . 20/49

  31. MuxPi components . . 20/49

  32. MuxPi components . . 20/49

  33. Essential MuxPi functions . • Switching a microSD card between DUT and TS • Switching power supply for DUT • Switching jumpers/buttons of DUT • Measuring power consumption of DUT • Writing EDID to DUT over HDMI connection • Providing DUT connection (UART, USB, ETH, microSD card) over Ethernet • Interacting with farm maintainer 21/49

  34. Indicators . 22/49

  35. Easy maintenance . 23/49

  36. Extensibility . 24/49

  37. Major improvements . • Independent (standalone) • Aware of its state • Easy to maintain • Extensible from start 25/49

  38. Parts Soldering skills High Patience A LOT https://git.tizen.org/cgit/tools/muxpi Building your own . NanoPi NEO ≈ $10 26/49

  39. Soldering skills High Patience A LOT https://git.tizen.org/cgit/tools/muxpi Building your own . NanoPi NEO ≈ $10 Parts ≈ $80 26/49

  40. Patience A LOT https://git.tizen.org/cgit/tools/muxpi Building your own . NanoPi NEO ≈ $10 Parts ≈ $80 Soldering skills High 26/49

  41. https://git.tizen.org/cgit/tools/muxpi Building your own . NanoPi NEO ≈ $10 Parts ≈ $80 Soldering skills High Patience A LOT 26/49

  42. Building your own . NanoPi NEO ≈ $10 Parts ≈ $80 Soldering skills High Patience A LOT https://git.tizen.org/cgit/tools/muxpi 26/49

  43. Software .

  44. Multitier architecture . • “Do One Thing and Do It Well” • RESTful HTTP APIs • Homogeneous solution stack 27/49

  45. Perun Weles Boruta MuxPi Responsibilities . • Who knows what requires verification? • Who knows which actions are necessary? • Who knows where can it be done? • Who knows how to do it? 28/49

  46. Weles Boruta MuxPi Responsibilities . • Who knows what requires verification? Perun • Who knows which actions are necessary? • Who knows where can it be done? • Who knows how to do it? 28/49

  47. Boruta MuxPi Responsibilities . • Who knows what requires verification? Perun • Who knows which actions are necessary? Weles • Who knows where can it be done? • Who knows how to do it? 28/49

  48. MuxPi Responsibilities . • Who knows what requires verification? Perun • Who knows which actions are necessary? Weles • Who knows where can it be done? Boruta • Who knows how to do it? 28/49

  49. Responsibilities . • Who knows what requires verification? Perun • Who knows which actions are necessary? Weles • Who knows where can it be done? Boruta • Who knows how to do it? MuxPi 28/49

  50. MuxPi (farm) . • Manages single DUT • Fully aware of its capabilities • Requires only two interfaces • Power supply • Network connection (Ethernet) . . 29/49

  51. MuxPi (software) . $ fot6 --help $ stm --help Us6ge of fot6: Us6ge of stm: -c6rd string -dut p6th to SDc6rd connect SD c6rd to DUT -m6p string -m dur6tion p6th to JSON form6tted m6pping time del6y for tick comm6nd -md� string -tick URL to MD�SUMS file power off 6nd on 6fter 'm' (s) -quiet -ts suppress logging connect SD c6rd to test server . . 30/49

  52. MuxPi (software) . $ fot6 --help $ stm --help Us6ge of fot6: Us6ge of stm: -c6rd string -dut p6th to SDc6rd connect SD c6rd to DUT -m6p string -m dur6tion p6th to JSON form6tted m6pping time del6y for tick comm6nd -md� string -tick URL to MD�SUMS file power off 6nd on 6fter 'm' (s) -quiet -ts suppress logging connect SD c6rd to test server . . 30/49

  53. MuxPi (software) . $ fot6 --help $ stm --help Us6ge of fot6: Us6ge of stm: -c6rd string -dut p6th to SDc6rd connect SD c6rd to DUT -m6p string -m dur6tion p6th to JSON form6tted m6pping time del6y for tick comm6nd -md� string -tick URL to MD�SUMS file power off 6nd on 6fter 'm' (s) -quiet -ts suppress logging connect SD c6rd to test server . . 30/49

  54. MuxPi (software) . $ fot6 --help $ stm --help Us6ge of fot6: Us6ge of stm: -c6rd string -dut p6th to SDc6rd connect SD c6rd to DUT -m6p string -m dur6tion p6th to JSON form6tted m6pping time del6y for tick comm6nd -md� string -tick URL to MD�SUMS file power off 6nd on 6fter 'm' (s) -quiet -ts suppress logging connect SD c6rd to test server . . 30/49

  55. Boruta . • Dryad farm management system • Schedules requests • Priority • Device groups • Delayed access • Provides convenient access to selected Dryad 31/49

  56. Boruta on stack . . 32/49

  57. Dryad life cycle in Boruta . Maintenance . mode Actions . performed Unallocated . Sets up . . . . . . . tunnel Matches . requirements Prepares . environment . . . 33/49

  58. Weles . • Lightweight testing framework • Provides LAVA-like interface • YAML job definition �→ actions executed on DUT • Deploy • Boot • Test • Collect 34/49

  59. Weles on stack . . 35/49

  60. Weles purpose . Maintenance . mode Actions . performed Unallocated . Sets up . . . . . . . tunnel Matches . requirements Prepares . environment . . . 36/49

  61. Weles action sequence . . . . . . Parse . YAML Collect . assets Request . DUT Perform . tests 37/49

  62. Perun . • OS images testing system • Schedules verification (per new set of OS images) • Automates QA step of Release Engineering Duty 38/49

  63. Perun on stack . . 39/49

  64. Perun action sequence . Crawl . URL Report . changes Interpret . . . . . . . results Submit . Weles jobs Collect . artifacts 40/49

  65. Keeping it simple . 41/49

  66. Keeping it simple (and decoupled) . 42/49

  67. Keeping it simple (and decoupled) . 42/49

  68. Keeping it simple (and decoupled) . 42/49

  69. Keeping it simple (and decoupled) . 42/49

  70. Next steps .

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend