1*4882a593Smuzhiyun#!/bin/bash 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# Script which can be run on new autobuilder workers to check all needed configuration is present. 4*4882a593Smuzhiyun# Designed to be run in a repo where bitbake/oe-core are already present. 5*4882a593Smuzhiyun# 6*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 7*4882a593Smuzhiyun# 8*4882a593Smuzhiyun# Todo 9*4882a593Smuzhiyun# Add testtools/subunit import test 10*4882a593Smuzhiyun# Add python3-git test 11*4882a593Smuzhiyun# Add pigz test 12*4882a593Smuzhiyun# vnc tests/checkvnc? 13*4882a593Smuzhiyun# test sendmail works (for QA email notification) 14*4882a593Smuzhiyun# test error report submission works 15*4882a593Smuzhiyun# test buildistory git repo works? 16*4882a593Smuzhiyun# 17*4882a593Smuzhiyun 18*4882a593Smuzhiyunif [ ! -x $HOME/yocto-autobuilder-helper/scripts/checkvnc ]; then 19*4882a593Smuzhiyun echo "$HOME/yocto-autobuilder-helper should be created." 20*4882a593Smuzhiyun exit 1 21*4882a593Smuzhiyunfi 22*4882a593Smuzhiyun$HOME/yocto-autobuilder-helper/scripts/checkvnc 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun. ./oe-init-build-env > /dev/null 25*4882a593Smuzhiyunif [ "$?" != "0" ]; then 26*4882a593Smuzhiyun exit 1 27*4882a593Smuzhiyunfi 28*4882a593Smuzhiyungit config --global user.name > /dev/null 29*4882a593Smuzhiyunif [ "$?" != "0" ]; then 30*4882a593Smuzhiyun echo "Please set git config --global user.name" 31*4882a593Smuzhiyun exit 1 32*4882a593Smuzhiyunfi 33*4882a593Smuzhiyungit config --global user.email > /dev/null 34*4882a593Smuzhiyunif [ "$?" != "0" ]; then 35*4882a593Smuzhiyun echo "Please set git config --global user.email" 36*4882a593Smuzhiyun exit 1 37*4882a593Smuzhiyunfi 38*4882a593Smuzhiyunpython3 -c "import jinja2" 39*4882a593Smuzhiyunif [ "$?" != "0" ]; then 40*4882a593Smuzhiyun echo "Please ensure jinja2 is available" 41*4882a593Smuzhiyun exit 1 42*4882a593Smuzhiyunfi 43*4882a593Smuzhiyunbitbake -p 44*4882a593Smuzhiyunif [ "$?" != "0" ]; then 45*4882a593Smuzhiyun echo "Bitbake parsing failed" 46*4882a593Smuzhiyun exit 1 47*4882a593Smuzhiyunfi 48*4882a593Smuzhiyun 49*4882a593SmuzhiyunWATCHES=$(PATH="/sbin:/usr/sbin:$PATH" sysctl fs.inotify.max_user_watches -n) 50*4882a593Smuzhiyunif (( $WATCHES < 65000 )); then 51*4882a593Smuzhiyun echo 'Need to increase watches (echo fs.inotify.max_user_watches=65536 | sudo tee -a /etc/sysctl.conf' 52*4882a593Smuzhiyun exit 1 53*4882a593Smuzhiyunfi 54*4882a593Smuzhiyunmkdir -p tmp/deploy/images/qemux86-64 55*4882a593Smuzhiyunpushd tmp/deploy/images/qemux86-64 56*4882a593Smuzhiyunif [ ! -e core-image-minimal-qemux86-64.ext4 ]; then 57*4882a593Smuzhiyun wget http://downloads.yoctoproject.org/releases/yocto/yocto-2.5.1/machines/qemu/qemux86-64/core-image-minimal-qemux86-64.ext4 58*4882a593Smuzhiyunfi 59*4882a593Smuzhiyunif [ ! -e core-image-minimal-qemux86-64.qemuboot.conf ]; then 60*4882a593Smuzhiyun wget http://downloads.yoctoproject.org/releases/yocto/yocto-2.5.1/machines/qemu/qemux86-64/core-image-minimal-qemux86-64.qemuboot.conf 61*4882a593Smuzhiyunfi 62*4882a593Smuzhiyunif [ ! -e bzImage-qemux86-64.bin ]; then 63*4882a593Smuzhiyun wget http://downloads.yoctoproject.org/releases/yocto/yocto-2.5.1/machines/qemu/qemux86-64/bzImage-qemux86-64.bin 64*4882a593Smuzhiyunfi 65*4882a593Smuzhiyunpopd 66*4882a593Smuzhiyunbitbake qemu-helper-native 67*4882a593SmuzhiyunDISPLAY=:1 runqemu serialstdio qemux86-64 68*4882a593Smuzhiyunif [ "$?" != "0" ]; then 69*4882a593Smuzhiyun echo "Unable to use runqemu" 70*4882a593Smuzhiyun exit 1 71*4882a593Smuzhiyunfi 72*4882a593SmuzhiyunDISPLAY=:1 runqemu serialstdio qemux86-64 kvm 73*4882a593Smuzhiyunif [ "$?" != "0" ]; then 74*4882a593Smuzhiyun echo "Unable to use runqemu with kvm" 75*4882a593Smuzhiyun exit 1 76*4882a593Smuzhiyunfi 77