prusa3d / Prusa-Firmware-SL1

Original Prusa SL1 3D printer firmware
GNU General Public License v3.0
34 stars 17 forks source link

Prusa-Firmware-SL1

Build enviroment based on the Yocto project for building GNU\Linux OS used in Original Prusa SL1 printers.

Requirements

Building the Image

There is optional Docker image where you can find what you need to prepare your customized build enviroment.

Obtaining the Repository

~$ git clone --recurse-submodules https://github.com/prusa3d/Prusa-Firmware-SL1.git
~$ cd Prusa-Firmware-SL1/

Tagging the Build

It is strongly recommended to tag the repo in order to distinguish it from official builds. The tag defines version string displayed on the printer screen.

Prusa-Firmware-SL1$ git tag -a -m "My stuff" my_stuff

Note: For example on your printer screen will be displayed version as:

my_stuff-special_feature.5-12cfba63d
<Tag name>[-<Branch>.<Commits from tag>-<Last commit hash>]

Stuff after Tag name will be displayed only if you make changes in the repo after tagging it.

(Optional) Obtaining a certificates for image signing

This step is only needed if you intend to build Rauc update bundle by running bitbake sla-update-bundle. You can skip the following section if you are interested only in a bootable image for an SD card built by running bitbake sla-dev-image.

Prusa-Firmware-SL1$ sh ./keys/gen_certs.sh     # Skip this if you already have the keys
Prusa-Firmware-SL1$ sh ./keys/deploy_certs.sh

Making an OS image

Submodule init

You need to also intialize submodules by git submodule update --init --recursive or you might get missing symbolic links error. Execute this command in terminal in your local repo directory.

Targets

Possible targets for deployment:

Procedure

Prusa-Firmware-SL1$ source ./oe-init-build-env
Prusa-Firmware-SL1$ bitbake sla-dev-image 

Change sla-dev-image by desired Target.

Add -c populate_sdk or -c populate_sdk_ext to make SDK installer script.

Important files

Image file: Prusa-Firmware-SL1/build/tmp/deploy/images/prusa64-sl1/sla-dev-image-prusa64-sl1.wic

SDK script: Prusa-Firmware-SL1/build/tmp/deploy/sdk/prusa-glibc-x86_64-sla-dev-image-cortexa53-crypto-toolchain-*-build.sh

Making the SD card