2020-09-28 16:39:15 +00:00
#!/bin/bash
# Simple Jibri Env tester
# 2020 - SwITNet Ltd
# GNU GPLv3 or later.
while getopts m: option
do
case " ${ option } "
in
m) MODE = ${ OPTARG } ; ;
\? ) echo "Usage: sudo ./test-jibri-env.sh [-m debug]" && exit; ;
esac
done
#DEBUG
if [ " $MODE " = "debug" ] ; then
set -x
fi
echo -e '
########################################################################
Welcome to Jibri Environment Tester
########################################################################
by Software, IT & Networks Ltd
\n '
#Check if user is root
if ! [ $( id -u) = 0 ] ; then
echo "You need to be root or have sudo privileges!"
exit 0
fi
echo "Checking for updates...."
apt -q2 update
apt -yq2 install apt-show-versions
2020-09-30 02:42:19 +00:00
JITSI_REPO = $( apt-cache policy | grep http | grep jitsi | grep stable | awk '{print $3}' | head -n 1 | cut -d "/" -f1)
SND_AL_MODULE = $( lsmod | awk '{print$1}' | grep snd_aloop)
HWE_VIR_MOD = $( apt-cache madison linux-modules-extra-virtual-hwe-$( lsb_release -sr) 2>/dev/null| head -n1| grep -c "extra-virtual-hwe" )
2020-10-01 07:12:09 +00:00
CONF_JSON = "/etc/jitsi/jibri/config.json"
JIBRI_CONF = "/etc/jitsi/jibri/jibri.conf"
2020-09-30 02:42:19 +00:00
2020-10-01 07:12:09 +00:00
echo -e "\n# -- Check repository --\n"
2020-09-28 16:39:15 +00:00
if [ -z $JITSI_REPO ] ; then
echo "No repository detected, wait whaaaat?..."
else
echo " This installation is using the \" $JITSI_REPO \" repository. "
fi
2020-10-01 07:12:09 +00:00
echo -e "\n# -- Check latest updates for jibri --\n"
2020-09-28 16:39:15 +00:00
if [ " $( dpkg-query -W -f= '${Status}' jibri 2>/dev/null | grep -c "ok installed" ) " = = "1" ] ; then
echo "Jibri is installed, checking version:"
apt-show-versions jibri
else
echo "Wait!, jibri is not installed on this system using apt, exiting..."
exit
fi
2020-10-07 21:58:51 +00:00
if [ " $( apt-show-versions jibri | grep -c "uptodate" ) " = "1" ] ; then
echo -e "Jibri is already up to date: \xE2\x9C\x94"
else
echo -e "\nAttempting jibri upgrade!"
2020-09-28 16:39:15 +00:00
apt -y install --only-upgrade jibri
2020-10-07 21:58:51 +00:00
fi
2020-09-28 16:39:15 +00:00
2020-10-01 07:12:09 +00:00
echo -e "\n# -- Test kernel modules --\n"
2020-09-28 16:39:15 +00:00
if [ -z $SND_AL_MODULE ] ; then
2020-10-07 21:58:51 +00:00
#First make sure the recommended kernel is installed.
if [ " $HWE_VIR_MOD " = = "1" ] ; then
apt-get -y install \
linux-image-generic-hwe-$( lsb_release -sr) \
linux-modules-extra-virtual-hwe-$( lsb_release -sr)
else
apt-get -y install \
linux-modules-extra-$( uname -r)
fi
echo -e " No module snd_aloop detected. \xE2\x9C\x96 <== IMPORTANT! \nCurrent kernel: $( uname -r) "
2020-10-05 11:24:12 +00:00
echo -e " \nIf you just installed a new kernel, \
2020-09-28 16:39:15 +00:00
please try rebooting.\n For now wait ' til the end of the recommended kernel installation."
echo "# Check and Install HWE kernel if possible..."
2020-10-05 23:40:56 +00:00
if uname -r | grep -q aws; then
2020-10-05 12:26:10 +00:00
KNL_HWE = " $( apt-cache madison linux-image-generic-hwe-$( lsb_release -sr) | head -n1| awk '{print$3}' | cut -d "." -f1-4) "
KNL_MENU = " $( awk -F\' '/menuentry / {print $2}' /boot/grub/grub.cfg | grep generic | grep -v recovery | awk '{print$3,$4}' | grep $KNL_HWE ) "
if [ ! -z " $KNL_MENU " ] ; then
2020-10-07 21:58:51 +00:00
echo -e "\nSeems you are using an AWS kernel \xE2\x9C\x96 <== IMPORTANT! \nYou might consider modify your grub (/etc/default/grub) to use the following:" && \
echo -e " \n > $KNL_MENU "
2020-10-05 12:26:10 +00:00
fi
fi
2020-09-28 16:39:15 +00:00
else
echo -e "Great!\nModule snd-aloop found!"
fi
2020-10-01 07:12:09 +00:00
echo -e "\n# -- Test .asoundrc file --\n"
2020-09-28 16:39:15 +00:00
ASRC_MASTER = "https://raw.githubusercontent.com/jitsi/jibri/master/resources/debian-package/etc/jitsi/jibri/asoundrc"
ASRC_INSTALLED = "/home/jibri/.asoundrc"
ASRC_MASTER_MD5SUM = $( curl -sL $ASRC_MASTER | md5sum | cut -d ' ' -f 1)
ASRC_INSTALLED_MD5SUM = $( md5sum $ASRC_INSTALLED | cut -d ' ' -f 1)
if [ " $ASRC_MASTER_MD5SUM " = = " $ASRC_INSTALLED_MD5SUM " ] ; then
echo "Seems to be using the latest asoundrc file available!"
else
echo "asoundrc files differ, if you have errors, you might wanna check this file!"
fi
2020-10-01 07:12:09 +00:00
echo -e "\n# -- Old or new config --\n"
2020-09-28 16:39:15 +00:00
echo -e "What config version is this using?"
2020-10-01 07:12:09 +00:00
if [ -f ${ CONF_JSON } _disabled ] && \
[ -f $JIBRI_CONF ] && \
[ -f $JIBRI_CONF -dpkg-file ] ; then
echo -e " \n> This jibri config has been upgraded already.\n\nIf you think there maybe an error on checking you current jibri configuration.\nPlease report this to \
https://github.com/switnet-ltd/quick-jibri-installer/issues\n "
elif [ ! -f $CONF_JSON ] && \
[ -f $JIBRI_CONF ] && \
[ -f ${ JIBRI_CONF } -dpkg-file ] ; then
echo -e " \n> This jibri seems to be running the lastest configuration already.\n\nIf you think there maybe an error on checking you current jibri configuration.\nPlease report this to \
https://github.com/switnet-ltd/quick-jibri-installer/issues\n "
2020-10-01 07:21:58 +00:00
elif [ -f ${ CONF_JSON } ] && \
2020-10-01 07:12:09 +00:00
[ -f $JIBRI_CONF ] ; then
echo -e " \n> This jibri config seems to be candidate for upgrading.\nIf you think there maybe an error on checking you current jibri configuration.\nPlease report this to \
https://github.com/switnet-ltd/quick-jibri-installer/issues\n "
fi
2020-09-28 16:39:15 +00:00
echo -e "\nJibri Test complete, thanks for testing.\n"