From Gentoo Wiki
Jump to:navigation Jump to:search
This article has been flagged for not conforming to the wiki guidelines. Please help Gentoo out by starting fixing things.
This article is a stub. Please help out by expanding it - how to get started.

OctoPrint is an open source 3D printer web interface written in Python. It provides real-time video streaming during prints, remote printer control, an integrated GCODE visualizer, temperature monitoring, and many other features. A large community-maintained plugin ecosystem is available as well to extend its functionality.[1]

Printer support

OctoPrint supports a large number of printers out of the box. A listing of printers known to work/not work is available at this post.[2]


The ebuild referenced below was never linked to.

Previous OctoPrint ebuild work can be seen at these links.[3][4][5][6][7]

The installation places files in the following locations:

Path Description
/var/lib/octoprint The home folder for the OctoPrint User, containing configuration, log and stored files
/etc/init.d/octoprint RC-Service Script for starting and stopping OctoPrint
/etc/conf.d/octoprint This is where the OctoPrint configuration file should go but currently does not (See the home folder)
/usr/bin/octoprint This is the main Python script that is called by the service. If one calls it, a .OctoPrint folder will be created in the home directory.
/usr/libs/python3_11/site-packages The main installation of OctoPrint Code - one Python version


The OctoPrint manual recommends creating an OctoPrint user and allowing access to the Serial and Terminal groups. Gentoo provides the tty group for terminal access but this is not really required by OctoPrint. As there is no Serial group, the uucp group is specified in the ebuild.


Note that one must enable USB/Serial communication in the Kernel for these printers to work. 3D Printers communicate with the computer via a serial interface. The Arduino section describes how to set this up. There is a nice entry in the Gentoo Forums that explained this setup as well. The Arduino website further discusses serial connection issues.


Cura is a 3D slicing program which seems to have gone through three major architecture changes roughly coinciding with versions 0.15.x and 2.1.x. OctoPrint 12.1 does not support the 2.1.x implementation and the ebuild locks in the 0.15.6 version.

When OctoPrint calls Cura it might fail with one of the following error codes. This occurred with the 2.1.x version and OctoPrint 12.5.

Error Code Error Description
1 Cura executed but did not produce a G-Code file. The logs indicate a call arguments issue.
6 This call to Cura appears to be mostly meta information about the STL file.


The Cura Plugin is enabled by default but one must specify the location of the Cura Binary. There are two created by media-gfx/cura - one in /user/bin/cura (user interface), and one in /user/bin/CuraEngine (the slicing engine). The latter path must be provided in the OctoPrint Cura Plugin settings.

The CuraEngine requires a Printer Profile generated from Cura itself. This is done by navigating to Cura → Preferences → Profiles → Profile → Export and saving the resulting file which is then loaded directly into the OctoPrint interface under Settings → CuraEngine → Import → Profile.


Once installed, one may enable an OctoPrint service via OpenRC commands.


When one initially opens the first page in OctoPrint they are asked to create an admin account. Choose a secure password if it is desired to be able to remotely access the printer.

See also

External resources