Als erstes system Aktualisieren
sudo apt update && sudo apt upgrade
Pyton version überprüfen
python3 -V
Wenn Pyton nicht instaliert ist mit
sudo apt install python3
instalieren.
Folgende Python dependencies werden benötigt
sudo apt install python3-pip
sudo apt install python3-dev
sudo apt install python3-setuptools
sudo apt install python3-venv
sudo apt install git
sudo apt install libyaml-dev
sudo apt install build-essential
Checken ob alles up to date ist pip install pip –upgrade # minu minus upgrade
Bei Fehler das probieren: sudo apt-get -y install python3-pip
Ermitteln der IP Adresse: hostname -I
Jetz muss ein neuer User erstellt werden:
Als Beispiel: octo
sudo useradd -m octo
Password (Beispiel)
sudo passwd octo yourpassword
Gruppen zum User Hinzufügen
sudo usermod -a -G tty,dialout octo
User octo anmelden:
su octo
cd ~
cd /home/octo
mkdir OctoPrint && cd OctoPrint
Anlegen des virtual environment:
python3 -m venv venv
Achtung space zwischen den Punkten
. ./venv/bin/activate
pip install –no-cache-dir octoprint #install minu minus
Test der Insallation
su octo
cd ~
cd /home/octo
python3 -m venv venv
. ./venv/bin/activate
~/OctoPrint/venv/bin/octoprint serve
Start OctoPrint user Interface
localhost:5000
Vorbereitung zum Autostart von OctoPrint
Datei erstellen -> octoprint.default
cd Downloads
sudo nano octoprint.default
################################################################
# Configuration for /etc/init.d/octoprint
# The init.d script will only run if this variable non-empty.
OCTOPRINT_USER=octo
# base directory to use
#BASEDIR=/home/octo/.octoprint
# configuration file to use
#CONFIGFILE=/home/octo/.octoprint/config.yaml
# On what port to run daemon, default is 5000
PORT=5000
# Path to the OctoPrint executable, you need to set this to match your installation!
#DAEMON=/home/octo/OctoPrint/venv/bin/octoprint
# What arguments to pass to octoprint, usually no need to touch this
DAEMON_ARGS="--port=$PORT"
# Umask of files octoprint generates, Change this to 000 if running octoprint as its own, separate user
UMASK=022
# Process priority, 0 here will result in a priority 20 process.
# -2 ensures Octoprint has a slight priority over user processes.
NICELEVEL=-2
# Should we run at startup?
START=yes
#################################################################
Datei wurde in Downloads abgespeichert
Datei nach -> /etc/default/octoprint kopieren
Nach downloads wechseln
cd Downloads
sudo cp octoprint.default /etc/default/octoprint
Datei erstellen -> octoprint.init
sudo nano octoprint.init
################################################################
#!/bin/sh
### BEGIN INIT INFO
# Provides: octoprint
# Required-Start: $local_fs networking
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: OctoPrint daemon
# Description: Starts the OctoPrint daemon with the user specified in
# /etc/default/octoprint.
### END INIT INFO
# Author: Sami Olmari & Gina Häußge
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="OctoPrint Daemon"
NAME="OctoPrint"
PKGNAME=octoprint
PIDFILE=/var/run/$PKGNAME.pid
SCRIPTNAME=/etc/init.d/$PKGNAME
DEFAULTS=/etc/default/$PKGNAME
# Read configuration variable file if it is present
[ -r $DEFAULTS ] && . $DEFAULTS
# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions
# Exit if the DAEMON is not set
if [ -z "$DAEMON" ]
then
log_warning_msg "Not starting $PKGNAME, DAEMON not set in /etc/default/$PKGNAME."
exit 0
fi
# Exit if the DAEMON is not installed
[ -x "$DAEMON" ] || exit 0
# Load the VERBOSE setting and other rcS variables
[ -f /etc/default/rcS ] && . /etc/default/rcS
if [ -z "$START" -o "$START" != "yes" ]
then
log_warning_msg "Not starting $PKGNAME, edit /etc/default/$PKGNAME to start it."
exit 0
fi
if [ -z "$OCTOPRINT_USER" ]
then
log_warning_msg "Not starting $PKGNAME, OCTOPRINT_USER not set in /etc/default/$PKGNAME."
exit 0
fi
COMMAND_ARGS=
if [ -n "$BASEDIR" ]
then
COMMAND_ARGS="--basedir $BASEDIR $COMMAND_ARGS"
fi
if [ -n "$CONFIGFILE" ]
then
COMMAND_ARGS="--config $CONFIGFILE $COMMAND_ARGS"
fi
#
# Function to verify if a pid is alive
#
is_alive()
{
pid=`cat $1` > /dev/null 2>&1
kill -0 $pid > /dev/null 2>&1
return $?
}
#
# Function that starts the daemon/service
#
do_start()
{
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
is_alive $PIDFILE
RETVAL="$?"
if [ $RETVAL != 0 ]; then
start-stop-daemon --start --background --quiet --pidfile $PIDFILE --make-pidfile \
--exec $DAEMON --chuid $OCTOPRINT_USER --user $OCTOPRINT_USER --umask $UMASK --nicelevel=$NICELEVEL \
-- serve $COMMAND_ARGS $DAEMON_ARGS
RETVAL="$?"
fi
}
#
# Function that stops the daemon/service
#
do_stop()
{
# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
# other if a failure occurred
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $OCTOPRINT_USER --pidfile $PIDFILE
RETVAL="$?"
[ "$RETVAL" = "2" ] && return 2
rm -f $PIDFILE
[ "$RETVAL" = "0" ] && return 0 || return 1
}
case "$1" in
start)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
stop)
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
status)
status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $?
;;
restart)
log_daemon_msg "Restarting $DESC" "$NAME"
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|status|restart}" >&2
exit 3
;;
esac
################################################################
Datei wurde in Downloads abgespeichert
Datei nach -> /etc/init.d/octoprint
sudo cp octoprint.init /etc/init.d/octoprint
Datei erstellen -> octoprint.service
sudo nano octoprint.service
###############################################################
[Unit]
Description=The snappy web interface for your 3D printer
After=network-online.target
Wants=network-online.target
[Service]
Environment="LC_ALL=C.UTF-8"
Environment="LANG=C.UTF-8"
Type=exec
User=octo
ExecStart=/home/octo/OctoPrint/venv/bin/octoprint
[Install]
WantedBy=multi-user.target
#################################################################
Datei wurde in Downloads abgespeichert
Datei nach -> /etc/systemd/system
sudo cp octoprint.service /etc/systemd/system
Enable octoprint service
sudo update-rc.d octoprint defaults
and start it
sudo service octoprint start
sudo systemctl enable octoprint.service
Start OctoPrint user Interface
IP:5000 oder http://localhost:5000
Thats all
Prusa Slicer installieren unter Ubuntu
Wichtig: Nach der Installation über die Ubuntu Software Verwaltung auf den Button
Permissions klicken, sonst kann es vorkommen das z.B. gemountete Netzlaufwerke nicht geschrieben werden könne.
Troubleshooting
Snap Store lässt sich nicht aktualisieren
killall snap-store
sudo snap refresh
Octoprint Startet nicht nach upgrade auf 24.04
-> Hat alles nicht funktionieret
ls /usr/bin/python*
su octo
mv ~/octo ~/oprint.old
virtualenv ~/octo
~/octo/bin/pip install OctoPrint
sudo service octoprint restart
Alle Ordner unter venv löschen
sudo apt remove python3-pip
sudo apt remove python3-dev
sudo apt remove python3-setuptools
sudo apt remove python3-venv
sudo apt remove git
sudo apt remove libyaml-dev
sudo apt remove build-essential
sudo apt-get clean
sudo apt-get autoremove --purge
sudo apt-get remove python3.12.3
sudo apt-get autoremove