====== Board at Desk - Single Developer (B@D) Feature Page ====== ===== What’s New in B@D v1.0? ===== This is the [[https://www.cip-project.org/blog/2017/10/18/cip-launches-bd-v1-0|v1.0 release of Board-at-Desk]], a Virtual Machine provisioned using Vagrant with Virtualbox as the hypervisor, that includes the following tooling: * [[https://kernelci.org/|Kernel CI]] and [[https://www.validation.linaro.org/static/docs/|LAVA]] Virtual Machines have been merged into one VM. Kernel CI is an automated system for the building of Linux kernels linked to large board farms allowing potential problems to be spotted before any changes reach the kernel mainline. LAVA is an infrastructure for specifying and controlling tests to be carried out on the Kernel CI controlled board farms. * The VM hosts the Kernel CI Frontend, Backend and Storage Server as well as the LAVA server, scheduler and worker which includes the dispatcher. * The primary focus is on the Beaglebone Black, the Renesas iwg20m and the CIP Kernel v4.4.83 These are the main features and improvements included in this new release * Update of the VM to Debian Stretch * Newer version of LAVA * B@D supports Linux and Windows as host OS * B@D now works behind a webproxy * initramfs is now built locally * Bug fixes ==== Update to Debian Stretch ==== The previous release of B@D used a combination of Debian Jessie and Debian Testing - this made building a new virtual machine inherently unstable and produced problems when trying to use versions of packages which were not in Jessie but were older than the ones in testing. Codethink have decided to move the VM to use Debian Stretch this should make the product more stable. ==== Newer version of LAVA ==== The LAVA community releases a new LAVA version every month. The CIP testing team at Codethink have updated Board at Desk LAVA version to 2017.7, released this past July. It comes with many new features, enhancements and bug fixes that allow the CIP testing project to introduce more verbose reports, prevents issues related with partitions being filled with system logs, etc.. ==== B@D supports Linux and Windows as host OS ==== The previous version only supported Linux based systems as host OS. This new version of B@D also [[https://gitlab.com/cip-project/cip-testing/board-at-desk-single-dev/merge_requests/33|supports]] Windows 10 expanding the potential targets to those engineers who use this proprietary operating system in their development machines. ==== B@D now works behind a webproxy ==== Many organizations work behind a webproxy. B@D needed to give an answer to this use case, popular among CIP Members. Thanks to some contributions from Daniel Sangorrin, a Toshiba developer, Board at Desk now works behind a webproxy. ==== initramfs is now built locally ==== Previously, Board At Desk was using the initramfs provided by Linaro in their infrastructure. This created in B@D a dependency on the network connection latency that, under certain circumstances led to errors due to timeouts and that Linaro built version ran more slowly with an internal timeout. Now initramfs is [[https://gitlab.com/cip-project/cip-testing/board-at-desk-single-dev/merge_requests/41|built locally]] which improves the speed of the tests, also removing that need to access the internet. ==== Bug Fixes ==== * The Linaro kernel which was used in the earlier release is no longer accessible and therefore the wiki and the supplied tests as used in the wiki no longer access these files and only use the locally built kernel. * The test suite used has been updated so the Beaglebone Black test has been amended to use the [[https://gitlab.com/cip-project/cip-testing/board-at-desk-single-dev/merge_requests/40|new location]] ===== What is Board At Desk v1.0? ===== At a high level, Board At Desk is a testing environment based on two basic components, LAVA and kernelci designed to allow any developer to test locally on any board a Linux kernel or a simple Linux based system, evaluate the results and share them, together with the logs, with their colleagues. What makes B@D different is that in order to do so, there is no need for a managed centralised service. It is designed to run locally. Board At Desk - Single Developer, creates and publishes a VM that contains all the kernelci tools. Testing of any kernel is enabled by the installation of LAVA and the supply of, currently, a small number of health checks and reference tests. The test results can then be shared with other developers by using LAVA notifications either directly or via the [[https://lists.cip-project.org/mailman/listinfo/cip-testing-results|cip-testing-results]] email list. If we take a deeper look, there are several technologies and configurations involved. This block diagram tries to give a little more detail. Board At Desk - Single Dev. block diagram- this lays out the structure of the testing environment. The host running GNU/Linux or Windows 10 runs B@D within a Vagrant environment, this environment is provisioned during initial boot with the kernelci and LAVA packages which pull in other necessary tools using ansible, apt-get and git so that the box is ready for kernel builds and testing. {{ :civilinfrastructureplatform:b_d_git_block_diagram.jpg?600 |}} These are the main software components and the versions shipped in the previous version compared to the current one. ==== Virtualization ==== ^ Tool ^ Version in v0.9.1 release ^ Version in v1.0 release ^ Version in git ^ License ^ | Vagrant | v1.8.1 | v1.9.1 | v2.0.4 | MIT | | VirtualBox | v4.3 | v4.3 | v5.2.10 | GPLv2 | ==== KernelCI ==== KernelCI components included in this release vs the previous one: ^ Tool ^ Version in v0.9.1 release ^ Version in v1.0 release ^ Version in git ^ License ^ | board-at-desk-single-dev | v0.9.1 | v1.0 | | AGPLv3 | | kernelci-backend | v2017.3.2 | v2017.7.2 | v2018.2 | AGPLv3 | | kernelci-backend-config | v0.9.1 | v2017.7.2 | v2018.2 | AGPLv3 | | kernelci-frontend | v2017.5 | v2017.7.1 | v2018.2 | AGPLv3 | | kernelci-frontend-config | | v2017.7.1 | v2018.2 | AGPLv3 | | kernelci-build | v0.9.1 | v1.0 | | LGPLv2.1 | | Ansible | v2.3.0.0 | v2.4.0.0 | v2.5.2 | [[https://github.com/ansible/ansible/blob/devel/COPYING|GPLv3.0]] | | Flask framework | v0.10.1 | v.0.10.1 | v0.10.1 | BSD 3-clause | | Nginx Web Server | 1.10.3-1 | 1.10.3-1 | 1.10.3-1 | BSD 3-clause | | MongoDB Database | 3.2.13 | 3.2.11-2 | 3.2.11-2 | [[https://github.com/mongodb/mongo/blob/master/GNU-AGPL-3.0.txt|AGPLv3]] and language drivers \\ under [[https://github.com/mongodb/mongo/blob/master/APACHE-2.0.txt|Apache v2.0]] | | ARM Cross-Compiler | 6.3.0-16 | 6.3.0-18 | 6.3.0-18 | -- | | ARMhf Cross Compiler | 6.3.0-16 | 6.3.0-18 | 6.3.0-18 | -- | ==== LAVAv2 ==== LAVAv2 components included in this Board at Desk v1.0 are: ^ Tool ^ Version in v0.9.1 release ^ Version in v1.0 release ^ Version in git ^ License ^ | LAVAv2 | 2016.12-1 | 2017-7-1 | 2018-4-1 | [[https://github.com/Linaro/lava-server/blob/release/COPYING.AGPL-3|AGPLv3]] | | Apache Web Server | v2.4.25-3 | v2.4.25-3 | v2.4.25-3 | Apache v2 | | Django CMS | v1.8.16 | 1:1.11.5-2 | 1.11.10-1 | [[https://github.com/django/django/blob/master/LICENSE|BSD]] | | PostgreSQL DDBB | 9.6+181 | 9.6+181 | 9.6+181 | [[https://www.postgresql.org/about/licence/|PostgreSQL license]] | ==== Other tools ==== Other tools used in Board at desk v1.0 ^ Tool ^ Version in v0.9.1 release ^ Version in v1.0 release ^ Version in git ^ License ^ | Python | 2.7.13 | 2.7.13 | 2.7.13 / 3.5.3 | [[https://docs.python.org/2/license.html#psf-license-agreement-for-python-release|PSF License]] | The overall CIP license policy can be read [[https://www.cip-project.org/wp-content/uploads/sites/17/2017/04/cip_agreement_charter_121916.pdf | here ]]. ===== Snapshot Release ===== A snapshot release was created in October 2018 to support the Renesas iwg20m board and include the latest bug fixes. See the [[cipdownload#snapshot-b-d-box|Download page]] page for links. ===== Prerequisites ===== This tutorial assumes that you have the following installed on the host machine: ==== For Linux ==== * git v2.11.0 or better * Vagrant v1.9.1 or better * VirtualBox v4.3 or better * Your username must be a member of the ''vboxusers'' group. You can add it with: * ''[user@host ~]$ sudo usermod -aG vboxusers user'' * gpg v1.4.20 or better * sha256sum v8.25 or better otherwise the installation may fail. ==== For Windows 10 ==== * Install git, ssh and rsync from [[https://www.cygwin.com/install.html|cygwin]] * Vagrant v1.9.1 or better * VirtualBox v4.3 or better * For kernelci web interface you will need a Firefox or Chrome installation as the Windows browsers do not work with the KernelCI webserver. * core.autocrlf=input is needed in the git settings for the scripts to run under Debian of the virtual machine * Vagrant needs the guest additions ''vagrant plugin install vagrant-vbguest'' * If you need to copy files onto the vm (not required by the provisioning script) you will also need the scp plugin ''vagrant plugin install vagrant-scp'' ==== In both cases ==== * You will also need 13GB of disk space for the virtualbox vm or 12GB for the vagrant image for the initial install. * The Vagrantfile allocates 2GB of memory for the virtual machine and we recommend at least this value ===== Deploy and configure B@D v1.0, connect it to the board and test: step by step instructions ===== Follow these instructions to deploy and configure B@D, connect the board and test the reference examples: - Deploy B@D through [[ciptestingboardatdeskdingledevdeployment#b-d-deployment-method-2-building-vm-from-scratch-using-vagrant-15|Vagrant]] or by downloading the [[ciptestingboardatdeskdingledevdeployment#b-d-standalone-virtual-machine-box|B@D standalone VM box]] directly. - Once deployed, [[[[ciptestingboardatdesksingledevsetup|configure B@D]]. - Depending upon the board you are using, connect the board [[beagleboneblackboard|Beaglebone Black]] or [[renesasboard|IWG20M]] - in the Renesas case you must provision the box yourself rather than downloading the pre-provisioned box - to the host machine, where B@D is deployed. - [[cipsystembuildhowto|Build the kernel (system)]] to be tested and the required artifacts. - Check the [[civilinfrastructureplatform/ciptestingreferencetestcases|reference test cases]] and try them as examples. ===== Known Issues ===== * [[civilinfrastructureplatform:ciptestingknownissues| Known Issues]] and workarounds when testing Civil Infrastructure Platform or the tools provided by the project. ===== Interesting Links ===== ==== General Links ==== * [[/civilinfrastructureplatform/ciptesting/releases|CIP testing releases]], current and previous ones. * CIP testing project [[cipdownload|Download page]]. * CIP testing project [[ciptesting|landing page]]. * CIP code is in [[https://gitlab.com/cip-project/cip-testing/board-at-desk-single-dev/tree/master|Gitlab.com]] * You are welcome to [[/civilinfrastructureplatform/start#participate-in-cip|participate in CIP]]. ==== Links relating to the B@D tooling ==== * LAVA v2 [[https://validation.linaro.org/static/docs/v2/index.html|Pipeline Model]]. * How to write LAVA v2, or “pipeline” [[https://validation.linaro.org/static/docs/v2/dispatcher-format.html|jobs]]. * [[https://www.validation.linaro.org/static/docs/v2/contents.html|More on writing]] Lavav2 tests. * Online [[https://yaml-online-parser.appspot.com/|YAML Parser]]. ==== B@D Supported Hardware Links ==== * Beaglebone Black * [[http://beagleboard.org/black|Beaglebone Black]] page. * [[https://www.twam.info/hardware/beaglebone-black/u-boot-on-beaglebone-black|U-Boot]] on the Beaglebone Black. * BeagleBone Black: [[http://perf.tamu.edu/perftech/beaglebone-black-flash-the-on-board-memory-emmc/|Flash the On-Board Memory]]. * Renesas iWave-M (iwg20m) * [[http://www.iwavesystems.com/rz-g1m-qseven-development-kit.html|Board specs]] description. * Information about [[https://www.elinux.org/R-Car/Upstream-Kernel-Release-Highlights|new features]] being incorporated to the Linux Kernel that could be incorporated to the CIP kernel, so they can be tested in B@D. * [[https://elinux.org/RZ-G/Boards/SK-RZG1M|Set up instructions]] to bring a different board, but the same SoC, up. * Cyclone V (not supported yet) * Kernel CI https://kernelci.org/ [[ciptesting|Back to the parent page]]