| #!/bin/bash | |
| # | |
| # Copyright OpenEmbedded Contributors | |
| # | |
| # Script which can be run on new autobuilder workers to check all needed configuration is present. | |
| # Designed to be run in a repo where bitbake/oe-core are already present. | |
| # | |
| # SPDX-License-Identifier: GPL-2.0-only | |
| # | |
| # Todo | |
| # Add testtools/subunit import test | |
| # Add python3-git test | |
| # Add pigz test | |
| # vnc tests/checkvnc? | |
| # test sendmail works (for QA email notification) | |
| # test error report submission works | |
| # test buildistory git repo works? | |
| # | |
| if [ ! -x $HOME/yocto-autobuilder-helper/scripts/checkvnc ]; then | |
| echo "$HOME/yocto-autobuilder-helper should be created." | |
| exit 1 | |
| fi | |
| $HOME/yocto-autobuilder-helper/scripts/checkvnc | |
| . ./oe-init-build-env > /dev/null | |
| if [ "$?" != "0" ]; then | |
| exit 1 | |
| fi | |
| git config --global user.name > /dev/null | |
| if [ "$?" != "0" ]; then | |
| echo "Please set git config --global user.name" | |
| exit 1 | |
| fi | |
| git config --global user.email > /dev/null | |
| if [ "$?" != "0" ]; then | |
| echo "Please set git config --global user.email" | |
| exit 1 | |
| fi | |
| python3 -c "import jinja2" | |
| if [ "$?" != "0" ]; then | |
| echo "Please ensure jinja2 is available" | |
| exit 1 | |
| fi | |
| bitbake -p | |
| if [ "$?" != "0" ]; then | |
| echo "Bitbake parsing failed" | |
| exit 1 | |
| fi | |
| WATCHES=$(PATH="/sbin:/usr/sbin:$PATH" sysctl fs.inotify.max_user_watches -n) | |
| if (( $WATCHES < 65000 )); then | |
| echo 'Need to increase watches (echo fs.inotify.max_user_watches=65536 | sudo tee -a /etc/sysctl.conf' | |
| exit 1 | |
| fi | |
| OPEN_FILES=$(ulimit -n) | |
| if (( $OPEN_FILES < 65535 )); then | |
| echo 'Increase maximum open files in /etc/security/limits.conf' | |
| echo '* soft nofile 131072' | |
| echo '* hard nofile 131072' | |
| exit 1 | |
| fi | |
| MAX_PROCESSES=$(ulimit -u) | |
| if (( $MAX_PROCESSES < 514542 )); then | |
| echo 'Increase maximum user processes in /etc/security/limits.conf' | |
| echo '* hard nproc 515294' | |
| echo '* soft nproc 514543' | |
| exit 1 | |
| fi | |
| mkdir -p tmp/deploy/images/qemux86-64 | |
| pushd tmp/deploy/images/qemux86-64 | |
| if [ ! -e core-image-minimal-qemux86-64.ext4 ]; then | |
| wget http://downloads.yoctoproject.org/releases/yocto/yocto-4.0/machines/qemu/qemux86-64/core-image-minimal-qemux86-64.ext4 | |
| fi | |
| if [ ! -e core-image-minimal-qemux86-64.qemuboot.conf ]; then | |
| wget http://downloads.yoctoproject.org/releases/yocto/yocto-4.0/machines/qemu/qemux86-64/core-image-minimal-qemux86-64.qemuboot.conf | |
| fi | |
| if [ ! -e bzImage-qemux86-64.bin ]; then | |
| wget http://downloads.yoctoproject.org/releases/yocto/yocto-4.0/machines/qemu/qemux86-64/bzImage-qemux86-64.bin | |
| fi | |
| popd | |
| bitbake qemu-helper-native | |
| DISPLAY=:1 runqemu serialstdio qemux86-64 | |
| if [ "$?" != "0" ]; then | |
| echo "Unable to use runqemu" | |
| exit 1 | |
| fi | |
| DISPLAY=:1 runqemu serialstdio qemux86-64 kvm | |
| if [ "$?" != "0" ]; then | |
| echo "Unable to use runqemu with kvm" | |
| exit 1 | |
| fi |