Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FR] Update toolchains to support compiling on Raspberry Pi #27486

Open
thijstriemstra opened this issue Oct 20, 2024 · 2 comments
Open

[FR] Update toolchains to support compiling on Raspberry Pi #27486

thijstriemstra opened this issue Oct 20, 2024 · 2 comments
Labels
C: Build / Toolchain T: Feature Request Features requested by users.

Comments

@thijstriemstra
Copy link

thijstriemstra commented Oct 20, 2024

When I try to compile Marlin on a Raspberry Pi 3b+ (debian bookworm, 64bit) it fails with:

Processing STM32F446ZE_btt (board: marlin_BTT_Octopus_v1; platform: ststm32@~12.1; framework: arduino)
----------------------------------------------------------------------------------------------------------------
Platform Manager: Installing ststm32 @ ~12.1
Downloading  [####################################]  100%
Unpacking  [####################################]  100%
Platform Manager: ststm32@12.1.1 has been installed!
Tool Manager: Installing platformio/toolchain-gccarmnoneeabi @ ~1.90201.0
UnknownPackageError: Could not find the package with 'platformio/toolchain-gccarmnoneeabi @ ~1.90201.0' requirements for your system 'linux_aarch64'

Describe the feature you want

I would like to be able to compile Marlin on a 32 and 64-bit Raspberry Pi.

Additional context

This issue was raised before (#23815) but it was closed with rather vague comment about it being a platfomio issue. What issue specifically? I think it's more an issue with Marlin using an ancient ststm32@~12.1 (released in june 2021) which doesn't support linux_aarch64?

@thijstriemstra thijstriemstra added the T: Feature Request Features requested by users. label Oct 20, 2024
@The-EG
Copy link
Contributor

The-EG commented Oct 20, 2024

It's a platformio issue because it depends on the compiler toolchain that platformio provides. As your error message indicates, platformio does not provide the proper toolchain for aarch64, which is needed for an arm64 such as a raspberry pi.

This isn't something Marlin can address directly. It might be possible to update to another version of ststm32, which presumably might offer aarch64 support, but that would also likely require fixing up all the different variants and such along with it. It's not just a trivial version bump.

#25327 is a good example of this.

@thijstriemstra
Copy link
Author

thijstriemstra commented Oct 20, 2024

platformio does not provide the proper toolchain for aarch64, which is needed for an arm64 such as a raspberry pi.

I see there's an alternative platformio/toolchain-gccarmnoneeabi that presumably has linux_aarch64 support: platformio/platform-ststm32@2429457 That commit also references a Marlin-related platformio ticket that the pr closed: platformio/platform-ststm32#605

that would also likely require fixing up all the different variants and such along with it.

maybe there's a way to use ststm32 12.1 with this toolchain-gccarmnoneeabi ~1.100301.0 so these variants don't have to change? And what does it entail, "fixing up the different variants"?

It's not just a trivial version bump.

Just thinking out loud, not much experience with this. But I was a bit surprised to see Marlin cannot compile on a (64-bit; haven't tested 32-bit) Raspberry Pi OS (and how this, again, makes it different vs Klipper).

This isn't something Marlin can address directly.

I hope it is!

@thisiskeithb thisiskeithb changed the title [FR] Support for compiling on Raspberry Pi [FR] Update toolchains to support compiling on Raspberry Pi Oct 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C: Build / Toolchain T: Feature Request Features requested by users.
Projects
None yet
Development

No branches or pull requests

3 participants