BSP Integration & Testing
Device manufacturers usually write their own embedded software, as it is a major part of the unique selling points of the products. Due to the complexity of modern processors, it is not possible to write your own operating system in a way that economically makes sense. An embedded Linux that is adapted to the application is "best-of-both-worlds": a proven, maintained embedded operating system (including a lot of developer expertise), while staying in control over the complete source code.
In most cases, standard binary Linux distributions are not well suited for embedded systems, where full control over the source code is required. Therefore, Pengutronix integrates the software components into a board support package (BSP) during the course of the project.
Using Yocto or PTXdist, the BSPs ensure complete reproducibility:
- All sources, modifications (patches) and build rules are available
- The BSP can be managed conveniently conveniently in a git repository
- The creation of a firmware image is completely automated
- Integration into Continuous Integration / Continuous Testing System is possible
Test Automation
Automated testing for embedded Linux systems is a challenge: Conventional unit test frameworks usually only work on a single machine, and processes like the fully automated, robust image updates (for example, with our update framework RAUC) can not be tested at all.
For this reason, Pengutronix has initiated the labgrid project, which is used to automate tests on distributed systems as well as the initial installation of firmware images in production.
Pengutronix also operates a LAVA lab in the world-wide kernelci.org quality assurance network for the Linux kernel, as well as other internal servers for test automation.