Today OpenQA mostly runs on virtual machines, but it can get really tricky to find bugs triggered by real hardware. There are only few interfaces required to interact with a machine though:

1) HDMI
2) USB keyboard
3) CD-ROM
4) Remote Power Switching

For 1, I ordered a few HDMI frame grabbers that will only arrive after Hackweek. 2 and 3 should be possible to implement using the USB gadget support in Linux which a lot of ARM devices support - I can definitely donate a Beaglebone Black to whoever is interested. Power switching is a solved problem.

With all these bits in place and a bit of plumbing we should be able to run tests on actual hardware, hopefully extending our test coverage to more tricky scenarios.


Succeeded in emulating USB-mass-storage and USB-keyboard and serial. Also made a RPC for it, so you can use it in code running on any machine. See the demo video

Code is in a github branch

This allows to boot any machine off a virtual USB-CDROM and automate with keystrokes.

Still to do: emulate a tablet with absolute pointer coordinates and capture screen output.

Looking for hackers with the skills:

openqa arm usb hdmi

This project is part of:

Hack Week 12

Activity

  • over 10 years ago: bmwiedemann liked this project.
  • over 10 years ago: bmwiedemann started this project.
  • over 10 years ago: algraf removed keyword stm32 from this project.
  • over 10 years ago: a_faerber liked this project.
  • over 10 years ago: joeyli liked this project.
  • over 10 years ago: mlin7442 liked this project.
  • over 10 years ago: algraf added keyword "openqa" to this project.
  • over 10 years ago: algraf added keyword "arm" to this project.
  • over 10 years ago: algraf added keyword "stm32" to this project.
  • over 10 years ago: algraf added keyword "usb" to this project.
  • over 10 years ago: algraf added keyword "arm" to this project.
  • over 10 years ago: algraf added keyword "hdmi" to this project.
  • over 10 years ago: algraf originated this project.

  • Comments

    • ancorgs
      over 10 years ago by ancorgs | Reply

      I guess you are aware of the IPMI and KVM2USB openQA backends and the discussions about real hardware support in the openQA mailing list (sorry, I don't know where to find the archives) that leaded to try IPMI as a first approach.

    • coolo
      over 10 years ago by coolo | Reply

      the kvm2usb part is basically rusty code and could use some polishing - using HDMI grabber sounds like a good plan, especially if they don't require closed source drivers like the kvm2usb need.

    • algraf
      over 10 years ago by algraf | Reply

      I just realized that we don't need to jump through hoops with the stm32 board or other cruftyness but instead we can just use the USB gadget support in Linux! So I guess the big task here would be to write a driver for the frame grabber, but that one will still take a few weeks to arrive :(.

      That means for now, the main goal of this project would be to script up working USB hid and mass storage emulation by leveraging the already existing Linux infrastructure. Then add some plumbing to hook it up into OpenQA. Then wait until the hdmi grabber arrives ;).

    • algraf
      over 10 years ago by algraf | Reply

      For reference: https://github.com/ckuethe/usbarmory/wiki/USB-Gadgets

    • bmwiedemann
      over 10 years ago by bmwiedemann | Reply

      Btw: from my experience with the kvm2usb, most hardware-specific bugs found are in the graphics drivers (apart from things like having 2 ethernet-ports with one being unconnected, which can be emulated in KVM)

    • matwey
      over 10 years ago by matwey | Reply

      Hm... I think we have to enable modules for usb gadgets in our arm kernel-default.

    Similar Projects

    openQA log viewer by mpagot

    Description

    *** Warning: Are You at Risk for VOMIT? ***

    Do you find yourself staring at a screen, your eyes glossing over as thousands of lines of text scroll by? Do you feel a wave of text-based nausea when someone asks you to "just check the logs"?

    You may be suffering from VOMIT (Verbose Output Mental Irritation Toxicity).

    This dangerous, work-induced ailment is triggered by exposure to an overwhelming quantity of log data, especially from parallel systems. The human brain, not designed to mentally process 12 simultaneous autoinst-log.txt files, enters a state of toxic shock. It rejects the "Verbose Output," making it impossible to find the one critical error line buried in a 50,000-line sea of "INFO: doing a thing."

    Before you're forced to rm -rf /var/log in a fit of desperation, we present the digital antacid.

    No panic: The openQA Log Visualizer (Also known as the "VOMIT-B-Gone 9000")

    This is your web-based hazmat suit for handling toxic log environments. It bravely dives into the chaotic, multi-machine mess of your openQA test runs, finds all the related, verbose logs, and force-feeds them into a parser.

    image

    Goals

    Work on the existing POC openqa-log-visualizer and change it to something usable

    Resources

    openqa-log-visualizer