basic architecture detection
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
Updated February 2022.
|
Updated April 2022.
|
||||||
Want to support this work? Buy Me a Coffee. https://www.buymeacoffee.com/ppaukstelis
|
Want to support this work? Buy Me a Coffee. https://www.buymeacoffee.com/ppaukstelis
|
||||||
# octoprint_deploy
|
# octoprint_deploy
|
||||||
These files provide a simple bash script for quickly deploying multiple octoprint instances on a single computer.
|
These files provide a simple bash script for quickly deploying multiple octoprint instances on a single computer.
|
||||||
@@ -19,7 +19,7 @@ YouTube video for OctoPi setup here: https://www.youtube.com/watch?v=J5VzI4AFav4
|
|||||||
* haproxy entries are updated so you can connect via http://octopi.local/instancename/
|
* haproxy entries are updated so you can connect via http://octopi.local/instancename/
|
||||||
* Ubuntu/Mint/Fedora (Fedora not completely tested)
|
* Ubuntu/Mint/Fedora (Fedora not completely tested)
|
||||||
* Install Ubuntu 20-21.X, Mint 20.3+, or Fedora35+ on your system (make sure your user is admin for sudo)
|
* Install Ubuntu 20-21.X, Mint 20.3+, or Fedora35+ on your system (make sure your user is admin for sudo)
|
||||||
* Install git if it isn't already: `sudo apt install git`
|
* Install git if it isn't already: `sudo apt install git` or `sudo dnf install git`
|
||||||
* run the command `git clone https://github.com/paukstelis/octoprint_deploy.git`
|
* run the command `git clone https://github.com/paukstelis/octoprint_deploy.git`
|
||||||
* run the command `sudo octoprint_deploy/octoprint_deploy.sh`
|
* run the command `sudo octoprint_deploy/octoprint_deploy.sh`
|
||||||
* Choose `Prepare System` from the menu. This will install necessary packages, install octoprint, and start an instance
|
* Choose `Prepare System` from the menu. This will install necessary packages, install octoprint, and start an instance
|
||||||
@@ -31,3 +31,6 @@ YouTube video for OctoPi setup here: https://www.youtube.com/watch?v=J5VzI4AFav4
|
|||||||
* Remove instances
|
* Remove instances
|
||||||
* Add USB webcams AFTER you've created the instance
|
* Add USB webcams AFTER you've created the instance
|
||||||
* Test USB connections
|
* Test USB connections
|
||||||
|
# Recent Changes
|
||||||
|
* Add duplicate serial number detection.
|
||||||
|
* Add architecture check to minimize errors where a system gets prepared as OctoPi when someone is using Ubuntu/Fedora/etc.
|
||||||
|
|||||||
@@ -6,7 +6,10 @@ if (( $EUID != 0 )); then
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#Get abbreviated architecture
|
||||||
|
ARCH=$(arch)
|
||||||
|
ARCH=${ARCH:0:3}
|
||||||
|
echo $ARCH
|
||||||
# from stackoverflow.com/questions/3231804
|
# from stackoverflow.com/questions/3231804
|
||||||
prompt_confirm() {
|
prompt_confirm() {
|
||||||
while true; do
|
while true; do
|
||||||
@@ -37,7 +40,7 @@ new_instance () {
|
|||||||
BUDEFAULT="/home/$user/OctoPrint/bin/octoprint"
|
BUDEFAULT="/home/$user/OctoPrint/bin/octoprint"
|
||||||
OTHERDEFAULT=""
|
OTHERDEFAULT=""
|
||||||
PS3='Installation type: '
|
PS3='Installation type: '
|
||||||
options=("OctoPi" "OctoBuntu" "Other" "Quit")
|
options=("OctoPi" "Linux/OctoBuntu" "Other" "Quit")
|
||||||
select opt in "${options[@]}"
|
select opt in "${options[@]}"
|
||||||
do
|
do
|
||||||
case $opt in
|
case $opt in
|
||||||
@@ -46,7 +49,7 @@ new_instance () {
|
|||||||
INSTALL=1
|
INSTALL=1
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
"OctoBuntu")
|
"Linux/OctoBuntu")
|
||||||
DAEMONPATH=$BUDEFAULT
|
DAEMONPATH=$BUDEFAULT
|
||||||
INSTALL=2
|
INSTALL=2
|
||||||
break
|
break
|
||||||
@@ -349,6 +352,7 @@ add_camera() {
|
|||||||
USBCAM=$TEMPUSBCAM
|
USBCAM=$TEMPUSBCAM
|
||||||
else
|
else
|
||||||
echo -e "Camera detected with serial number: \033[0;34m $CAM \033[0m" | log
|
echo -e "Camera detected with serial number: \033[0;34m $CAM \033[0m" | log
|
||||||
|
check_sn "$CAM"
|
||||||
fi
|
fi
|
||||||
echo "Camera Port (ENTER will increment last value in /etc/camera_ports):"
|
echo "Camera Port (ENTER will increment last value in /etc/camera_ports):"
|
||||||
read CAMPORT
|
read CAMPORT
|
||||||
@@ -446,6 +450,7 @@ usb_testing() {
|
|||||||
fi
|
fi
|
||||||
if [ -n "$UDEV" ]; then
|
if [ -n "$UDEV" ]; then
|
||||||
echo "Serial Number detected: $UDEV" | log
|
echo "Serial Number detected: $UDEV" | log
|
||||||
|
check_sn "$UDEV"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
main_menu
|
main_menu
|
||||||
@@ -487,6 +492,18 @@ prepare () {
|
|||||||
*) echo "invalid option $REPLY";;
|
*) echo "invalid option $REPLY";;
|
||||||
esac
|
esac
|
||||||
done
|
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?"
|
if prompt_confirm "Ready to begin?"
|
||||||
then
|
then
|
||||||
echo 'instance:generic port:5000' > /etc/octoprint_instances
|
echo 'instance:generic port:5000' > /etc/octoprint_instances
|
||||||
@@ -496,7 +513,6 @@ prepare () {
|
|||||||
usermod -a -G dialout,video $user
|
usermod -a -G dialout,video $user
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if [ $INSTALL -eq 1 ]; then
|
if [ $INSTALL -eq 1 ]; then
|
||||||
echo 'Disabling unneeded services....'
|
echo 'Disabling unneeded services....'
|
||||||
systemctl disable octoprint.service
|
systemctl disable octoprint.service
|
||||||
@@ -512,7 +528,9 @@ prepare () {
|
|||||||
echo 'Modifying config.yaml'
|
echo 'Modifying config.yaml'
|
||||||
cp -p $SCRIPTDIR/config.basic /home/pi/.octoprint/config.yaml
|
cp -p $SCRIPTDIR/config.basic /home/pi/.octoprint/config.yaml
|
||||||
echo 'Connect to your octoprint instance and setup admin user'
|
echo 'Connect to your octoprint instance and setup admin user'
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $INSTALL -gt 1 ]; then
|
if [ $INSTALL -gt 1 ]; then
|
||||||
echo "Creating OctoBuntu installation equivalent."
|
echo "Creating OctoBuntu installation equivalent."
|
||||||
echo "Adding systemctl and reboot to sudo"
|
echo "Adding systemctl and reboot to sudo"
|
||||||
@@ -567,12 +585,12 @@ prepare () {
|
|||||||
sudo -u $user rm -rf mjpeg
|
sudo -u $user rm -rf mjpeg
|
||||||
#Fedora has SELinux on by default so must make adjustments? Don't really know what these do...
|
#Fedora has SELinux on by default so must make adjustments? Don't really know what these do...
|
||||||
if [ $INSTALL -eq 5 ]; then
|
if [ $INSTALL -eq 5 ]; then
|
||||||
semanage fcontext -a -t bin_t "/home/$user/OctoPrint/bin/.*"
|
semanage fcontext -a -t bin_t "/home/$user/OctoPrint/bin/.*"
|
||||||
chcon -Rv -u system_u -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
|
restorecon -R -v /home/$user/OctoPrint/bin
|
||||||
semanage fcontext -a -t bin_t "/home/$user/mjpg-streamer/.*"
|
semanage fcontext -a -t bin_t "/home/$user/mjpg-streamer/.*"
|
||||||
chcon -Rv -u system_u -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
|
restorecon -R -v /home/$user/mjpg-streamer
|
||||||
fi
|
fi
|
||||||
echo 'Starting generic service on port 5000'
|
echo 'Starting generic service on port 5000'
|
||||||
systemctl start octoprint_default.service
|
systemctl start octoprint_default.service
|
||||||
@@ -582,6 +600,17 @@ prepare () {
|
|||||||
fi
|
fi
|
||||||
main_menu
|
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() {
|
main_menu() {
|
||||||
#reset
|
#reset
|
||||||
UDEV=''
|
UDEV=''
|
||||||
|
|||||||
Reference in New Issue
Block a user