2016-05-24 19:56:43 +02:00
#!/bin/sh
install_file()
{
src="$1"
dest="$2"
2017-02-08 14:36:28 +01:00
if [ ! -e "$dest" ]
2018-12-28 18:12:45 +01:00
then
2017-02-08 14:36:28 +01:00
cp "$src" "${dest}"
2016-06-02 19:54:37 +02:00
return 1
2017-02-08 14:36:28 +01:00
else
echo "--> Service file already exists, skip creation"
return 0
2016-05-24 19:56:43 +02:00
fi
}
2018-12-28 18:12:45 +01:00
echo "---Hyperion ambient light postinstall ---"
2017-02-08 14:36:28 +01:00
#check system
2020-06-17 20:59:26 +02:00
CPU_RPI=`grep -m1 -c 'BCM2708\|BCM2709\|BCM2710\|BCM2835\|BCM2836\|BCM2837\|BCM2711' /proc/cpuinfo`
2017-02-08 14:36:28 +01:00
CPU_X32X64=`uname -m | grep 'x86_32\|i686\|x86_64' | wc -l`
2020-11-24 22:28:02 +01:00
OS_HYPERBIAN=`grep ID /etc/os-release | grep -m1 -c HyperBian`
2017-02-08 14:36:28 +01:00
#Check for a bootloader as Berryboot
BOOT_BERRYBOOT=$(grep -m1 -c '\(/var/media\|/media/pi\)/berryboot' /etc/mtab)
2018-12-28 18:12:45 +01:00
#get current system ip
2019-01-07 23:33:27 +01:00
NET_IP=`hostname -I | cut -d " " -f1`
2016-06-02 19:54:37 +02:00
2018-12-28 18:12:45 +01:00
# search for users in system, returns first entry
2019-08-10 12:30:08 +02:00
FOUND_USR=`who | grep -o -m1 '^\w*\b'` || "root"
2018-12-28 18:12:45 +01:00
2019-01-07 23:33:27 +01:00
# determine if we should use a service
ENABLE_SERVICE=0
STARTUP_MSG="echo ---> You can start Hyperion from your menu now"
if [ $CPU_RPI -eq 1 ]; then
ENABLE_SERVICE=1
STARTUP_MSG="echo ---> Hyperion has been installed as service, it will start on each system startup"
fi
2016-06-02 19:54:37 +02:00
start_msg=""
restart_msg=""
2016-08-20 16:37:45 +02:00
if grep -m1 systemd /proc/1/comm > /dev/null
2016-06-02 19:54:37 +02:00
then
2019-01-07 23:33:27 +01:00
echo "---> init deamon: systemd"
2016-05-24 19:56:43 +02:00
# systemd
2020-11-24 22:28:02 +01:00
if [ $OS_HYPERBIAN -eq 1 ]; then
# start service only
echo "--> Service file already exists, skip creation"
start_msg="--> systemctl start hyperion"
systemctl start hyperion
else
install_file /usr/share/hyperion/service/hyperion.systemd /etc/systemd/system/hyperiond@.service
# service registration just on Raspberry Pi, probably need to ask the user how we should use the service. TODO service start in user login scope eg for x11?!
if [ $ENABLE_SERVICE -eq 1 ]; then
systemctl enable hyperiond"@${FOUND_USR}".service
start_msg="--> systemctl start hyperiond for user ${FOUND_USR}"
systemctl start hyperiond"@${FOUND_USR}"
fi
2019-01-07 23:33:27 +01:00
fi
2016-06-02 19:54:37 +02:00
2016-08-20 16:37:45 +02:00
elif [ -e /sbin/initctl ]
then
2019-01-07 23:33:27 +01:00
echo "---> init deamon: upstart"
2016-08-20 16:37:45 +02:00
# upstart
2019-01-07 23:33:27 +01:00
if [ $ENABLE_SERVICE -eq 1 ]; then
install_file /usr/share/hyperion/service/hyperiond.initctl /etc/init/hyperion.conf && initctl reload-configuration
start_msg="--> initctl start hyperiond"
initctl start hyperiond
fi
2016-05-24 19:56:43 +02:00
else
2019-01-07 23:33:27 +01:00
echo "---> init deamon: sysV"
2016-05-24 19:56:43 +02:00
# sysV
2019-01-07 23:33:27 +01:00
if [ $ENABLE_SERVICE -eq 1 ]; then
install_file /usr/share/hyperion/service/hyperion.init /etc/init.d/hyperiond && chmod +x /etc/init.d/hyperiond && update-rc.d hyperiond defaults 98 02
start_msg="---> service hyperiond start"
service hyperiond start
fi
2017-02-08 14:36:28 +01:00
fi
#cleanup
rm -r /usr/share/hyperion/service
#link binarys and set exec bit
BINSP=/usr/share/hyperion/bin
BINTP=/usr/bin
chmod +x -R $BINSP
ln -fs $BINSP/hyperiond $BINTP/hyperiond
ln -fs $BINSP/hyperion-remote $BINTP/hyperion-remote
ln -fs $BINSP/hyperion-v4l2 $BINTP/hyperion-v4l2
ln -fs $BINSP/hyperion-framebuffer $BINTP/hyperion-framebuffer 2>/dev/null
ln -fs $BINSP/hyperion-dispmanx $BINTP/hyperion-dispmanx 2>/dev/null
ln -fs $BINSP/hyperion-x11 $BINTP/hyperion-x11 2>/dev/null
2020-08-03 12:31:39 +02:00
ln -fs $BINSP/hyperion-xcb $BINTP/hyperion-xcb 2>/dev/null
2017-02-08 14:36:28 +01:00
ln -fs $BINSP/hyperion-aml $BINTP/hyperion-aml 2>/dev/null
2019-01-07 23:33:27 +01:00
ln -fs $BINSP/hyperion-qt $BINTP/hyperion-qt 2>/dev/null
2017-02-08 14:36:28 +01:00
2020-11-24 22:28:02 +01:00
# install desktop icons / not on HyperBian
if [ $OS_HYPERBIAN -ne 1 ]; then
echo "---> Install Hyperion desktop icons"
mkdir /usr/share/pixmaps/hyperion 2>/dev/null
cp /usr/share/hyperion/desktop/*.png /usr/share/pixmaps/hyperion 2>/dev/null
desktop-file-install /usr/share/hyperion/desktop/hyperiond.desktop 2>/dev/null
fi
2019-01-19 18:35:40 +01:00
# cleanup desktop icons
rm -r /usr/share/hyperion/desktop 2>/dev/null
2017-02-08 14:36:28 +01:00
#Check, if dtparam=spi=on is in place
if [ $CPU_RPI -eq 1 ]; then
BOOT_DIR="/boot"
if [ $BOOT_BERRYBOOT -eq 1 ]; then
BOOT_DIR=$(sed -ne "s#/dev/mmcblk0p1 \([^ ]*\) vfat rw,.*#\1#p" /etc/mtab)
fi
if [ -z "$BOOT_DIR" -o ! -f "$BOOT_DIR/config.txt" ]; then
echo '---> Warning: RPi using BERRYBOOT found but can not locate where config.txt is to enable SPI. (BOOT_DIR='"$BOOT_DIR)"
SPIOK=1 # Not sure if OK, but don't ask to reboot
else
SPIOK=`grep '^\dtparam=spi=on' "$BOOT_DIR/config.txt" | wc -l`
if [ $SPIOK -ne 1 ]; then
echo '---> Raspberry Pi found, but SPI is not set, we write "dtparam=spi=on" to '"$BOOT_DIR/config.txt"
sed -i '$a dtparam=spi=on' "$BOOT_DIR/config.txt"
REBOOTMESSAGE="echo Please reboot your Raspberry Pi, we inserted dtparam=spi=on to $BOOT_DIR/config.txt"
fi
fi
2016-06-02 19:54:37 +02:00
fi
2018-12-28 18:12:45 +01:00
echo ${start_msg}
2016-06-02 19:54:37 +02:00
echo "-----------------------------------------------------------------------------"
2019-01-07 23:33:27 +01:00
echo "---> Hyperion has been installed/updated!"
echo "---> "
$STARTUP_MSG
echo "---> For configuration, visit with your browser: ${NET_IP}:8090"
echo "---> or if already used by another service try: ${NET_IP}:8091"
2017-02-08 14:36:28 +01:00
$REBOOTMESSAGE
echo "-----------------------------------------------------------------------------"
echo "Webpage: www.hyperion-project.org"
2021-04-24 19:37:29 +02:00
echo "Forum: www.hyperion-project.org"
echo "Documenation: docs.hyperion-project.org"
2016-06-02 19:54:37 +02:00
echo "-----------------------------------------------------------------------------"
2017-02-08 14:36:28 +01:00
2016-06-02 19:54:37 +02:00
if [ -e /opt/hyperion/ ]
then
echo
echo "---------------------------------------------------------------------------------"
2018-12-28 18:12:45 +01:00
echo "- It seemd that you have an older version of hyperion installed in /opt/hyperion -"
echo "- please remove it to avoid problems -"
2016-06-02 19:54:37 +02:00
echo "---------------------------------------------------------------------------------"
2016-05-24 19:56:43 +02:00
fi
2019-01-07 23:33:27 +01:00
exit 0