If you are already running octoprint as a printserver on a Raspberry Pi it is very convenient to also build Marlin on it via commandline. I made a script that sets up the necessary build environment and provides commands for building and uploading. It uses the official Arduino toolchain for ARM. Everything is standalone, nothing is installed.
It also works on Linux in general. If you don’t build on ARM you will need to change the architecture though. Check the parameters at the beginning of the script for that.
The script is setup by default to build the Marlin fork “Skynet3D” for the Anet A8 Prusa clone. If you want to build stock Marlin change the “marlinRepositoryUrl” parameter respectively. You should also set the parameter “hardwareDefintionDirectory” to an empty string, this prevents the script from trying to copy the board definition that is needed for the A8.
If you are running octopi on you Raspberry you need to disconnect it from your printer before uploading otherwise the serial port is blocked.
here on github: https://github.com/mmone/marlintool
or download directly as a zip: https://github.com/mmone/marlintool/archive/master.zip
-s — setup
Download and configure the toolchain and the necessary libraries for building Marlin.
-m — marlin
Download Marlin sources.
Update an existing Marlin clone.
-v — verify
Build without uploading.
-u — upload
Build and upload Marlin. If you are running octopi on you Raspberry you need to disconnect it before uploading otherwise the serial port is blocked.
-b –backupConfig [name]
Backup the Marlin configuration to the named backup.
-r –restoreConfig [name]
Restore the given configuration into the Marlin directory.
-c — clean
Cleanup everything. Remove Marlin sources and Arduino toolchain.
-p — port [port]
Set the serialport for uploading the firmware. Overrides the default set in the script.
-h — help