basic architecture detection

This commit is contained in:
paukstelis
2022-04-17 10:38:17 -04:00
parent ffca067051
commit fbe1ea9886
2 changed files with 46 additions and 14 deletions

View File

@@ -6,7 +6,10 @@ if (( $EUID != 0 )); then
exit
fi
#Get abbreviated architecture
ARCH=$(arch)
ARCH=${ARCH:0:3}
echo $ARCH
# from stackoverflow.com/questions/3231804
prompt_confirm() {
while true; do
@@ -37,7 +40,7 @@ new_instance () {
BUDEFAULT="/home/$user/OctoPrint/bin/octoprint"
OTHERDEFAULT=""
PS3='Installation type: '
options=("OctoPi" "OctoBuntu" "Other" "Quit")
options=("OctoPi" "Linux/OctoBuntu" "Other" "Quit")
select opt in "${options[@]}"
do
case $opt in
@@ -46,7 +49,7 @@ new_instance () {
INSTALL=1
break
;;
"OctoBuntu")
"Linux/OctoBuntu")
DAEMONPATH=$BUDEFAULT
INSTALL=2
break
@@ -349,6 +352,7 @@ add_camera() {
USBCAM=$TEMPUSBCAM
else
echo -e "Camera detected with serial number: \033[0;34m $CAM \033[0m" | log
check_sn "$CAM"
fi
echo "Camera Port (ENTER will increment last value in /etc/camera_ports):"
read CAMPORT
@@ -446,6 +450,7 @@ usb_testing() {
fi
if [ -n "$UDEV" ]; then
echo "Serial Number detected: $UDEV" | log
check_sn "$UDEV"
fi
done
main_menu
@@ -487,6 +492,18 @@ prepare () {
*) echo "invalid option $REPLY";;
esac
done
if [ $INSTALL -eq 1 ] && [[ "$ARCH" != arm ]]; then
echo "WARNING! You have selected OctoPi, but are not using an ARM processor."
echo "If you are using generic another linux distribution, select it from the list."
echo "Unless you really know what you are doing, select N."
if prompt_confirm "Continue with OctoPi? (Y/N)"; then
echo "OK!"
else
main_menu
fi
fi
if prompt_confirm "Ready to begin?"
then
echo 'instance:generic port:5000' > /etc/octoprint_instances
@@ -496,7 +513,6 @@ prepare () {
usermod -a -G dialout,video $user
if [ $INSTALL -eq 1 ]; then
echo 'Disabling unneeded services....'
systemctl disable octoprint.service
@@ -512,7 +528,9 @@ prepare () {
echo 'Modifying config.yaml'
cp -p $SCRIPTDIR/config.basic /home/pi/.octoprint/config.yaml
echo 'Connect to your octoprint instance and setup admin user'
fi
if [ $INSTALL -gt 1 ]; then
echo "Creating OctoBuntu installation equivalent."
echo "Adding systemctl and reboot to sudo"
@@ -538,7 +556,7 @@ prepare () {
if [ $INSTALL -eq 5 ]; then
dnf -y install python3-devel cmake libjpeg-turbo-devel
fi
echo "Installing OctoPrint in /home/$user/OctoPrint"
#make venv
sudo -u $user python3 -m venv /home/$user/OctoPrint
@@ -557,7 +575,7 @@ prepare () {
echo 'Updating config.yaml'
sudo -u $user mkdir /home/$user/.octoprint
sudo -u $user cp -p $SCRIPTDIR/config.basic /home/$user/.octoprint/config.yaml
#install mjpg-streamer, not doing any error checking or anything
echo 'Installing mjpeg-streamer'
sudo -u $user git clone https://github.com/jacksonliam/mjpg-streamer.git mjpeg
@@ -567,12 +585,12 @@ prepare () {
sudo -u $user rm -rf mjpeg
#Fedora has SELinux on by default so must make adjustments? Don't really know what these do...
if [ $INSTALL -eq 5 ]; then
semanage fcontext -a -t bin_t "/home/$user/OctoPrint/bin/.*"
chcon -Rv -u system_u -t bin_t "/home/$user/OctoPrint/bin/"
restorecon -R -v /home/$user/OctoPrint/bin
semanage fcontext -a -t bin_t "/home/$user/mjpg-streamer/.*"
chcon -Rv -u system_u -t bin_t "/home/$user/mjpg-streamer/"
restorecon -R -v /home/$user/mjpg-streamer
semanage fcontext -a -t bin_t "/home/$user/OctoPrint/bin/.*"
chcon -Rv -u system_u -t bin_t "/home/$user/OctoPrint/bin/"
restorecon -R -v /home/$user/OctoPrint/bin
semanage fcontext -a -t bin_t "/home/$user/mjpg-streamer/.*"
chcon -Rv -u system_u -t bin_t "/home/$user/mjpg-streamer/"
restorecon -R -v /home/$user/mjpg-streamer
fi
echo 'Starting generic service on port 5000'
systemctl start octoprint_default.service
@@ -582,6 +600,17 @@ prepare () {
fi
main_menu
}
check_sn() {
if [ -f "/etc/udev/rules.d/99-octoprint.rules" ]; then
if grep -q $1 /etc/udev/rules.d/99-octoprint.rules; then
echo "An identical serial number has been detected in the udev rules. Please be warned, this will likely cause instability!" | log
else
echo "No duplicate serial number detected" | log
fi
fi
}
main_menu() {
#reset
UDEV=''