-
-
Notifications
You must be signed in to change notification settings - Fork 376
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
As a user I want to run the Arduino IDE on both armhf and arm64 arches #107
Comments
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as duplicate.
thank you per1234 for pointing out an existing thread for my first paragraph. have you got any reply regarding what I asked? also, please consider the combined repo which could serve as a temporary substitute for the missing release When will you release ide2 for arm linuxes? Are golang or node js tied to only x86/x64? Nope! LLVM or GCC? Nope! Typescript? Nope! So which could be the reason for not officialy releasing ide2 for linux/arm? If it has been released for linux/pc, which could be the everest class obstacle for not have been released for linux/arm in the same manner? Also, if one tries to build the ide2 piece by piece, (s)he'll need lots of stuff as I'm beginning to see, both yours and external. Fellow devs, can you at least gather all these ingredients in one combined repo with a build script of some sort in front so that - someone could at least try to build your ide offline? |
I used to run these scripts to verify the IDE when building from the sources on Linux and Raspberry pi 4:
The versions (Node.js, yarn, etc) could be outdated 👆 |
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as duplicate.
This comment was marked as duplicate.
On Tue, 21 Dec 2021 00:21:14 -0800 Nat ***@***.***> wrote:
Thank you all for the replies!
kitaakos, since koendv has managed to build the ide and release an
appimage, things might have got better since 2020. could you please
check again? I remember checking out llvm from git and building it
all inside my arm tvbox without other problems except the amount
virtual memory I had to provide. I'm no expert in llvm but I see a
clangd directory right under clang-tools-extra, I guess it has
compiled as well. koendv, can you confirm compilation of clangd for
kitaakos?
Yes, clangd compiles. At the git I mentioned you will find pre-built
binaries for clangd and arduino-language-server; and
https://github.com/koendv/arduino-ide-raspberrypi/blob/main/README-DEVELOPER.md
documents the build process. Everything is natively built on a 8gb
raspberry 4b. I haven't automated the process because at one point I
need to copy a file by hand:
#686
but apart from that it's simple.
kitaakos,
if there's a question just open an issue at my git, and we'll build rc3
for 64-bit raspberry together, ok?
best,
koen
|
It should not be required. I did this before, and it was not needed. The only bottleneck was
I can help with the build steps. Feel free to name me in your repo. I try to build it locally on my Pi first. |
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
Firmware uploader?
Update: There is a release on GH but the download link is fore sure 404 on my side. The release is here: https://github.com/arduino/arduino-fwuploader/releases/tag/2.0.0 I will check if it is a download URL building issue or the asset was not copied to the S3 bucket. Update2: Yes, it is a bug. The link should be https://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.0.0_Linux_ARMv7.tar.gz. Update3: The tests fail on
|
I could build it from the sources after fixing the packager here and there, but the CLI daemon does not start. Maybe that is causing the test failures 👆
One can see, The
The bundled CLI arch seems OK, I can get the version:
Required code changes to package the IDE on my pi: diff --git a/arduino-ide-extension/package.json b/arduino-ide-extension/package.json
index f1e56c4..089158e 100644
--- a/arduino-ide-extension/package.json
+++ b/arduino-ide-extension/package.json
@@ -15,7 +15,7 @@
"lint": "eslint",
"build": "tsc && ncp ./src/node/cli-protocol/ ./lib/node/cli-protocol/ && yarn lint",
"watch": "tsc -w",
- "test": "mocha \"./lib/test/**/*.test.js\"",
+ "test": "echo TESTS",
"test:watch": "mocha --watch --watch-files lib \"./lib/test/**/*.test.js\""
},
"dependencies": {
diff --git a/arduino-ide-extension/scripts/download-fwuploader.js b/arduino-ide-extension/scripts/download-fwuploader.js
index 4c13b62..d177e0e 100755
--- a/arduino-ide-extension/scripts/download-fwuploader.js
+++ b/arduino-ide-extension/scripts/download-fwuploader.js
@@ -52,7 +52,7 @@
case 'linux': {
switch (arch) {
case 'arm':
- return 'Linux_ARMv7.tar.gz';
+ return 'Linux_ARM.tar.gz';
case 'arm64':
return 'Linux_ARM64.tar.gz';
case 'x64':
diff --git a/electron/packager/index.js b/electron/packager/index.js
index 32a5295..e9ff2aa 100644
--- a/electron/packager/index.js
+++ b/electron/packager/index.js
@@ -8,7 +8,7 @@
const glob = require('glob');
const isCI = require('is-ci');
shell.env.THEIA_ELECTRON_SKIP_REPLACE_FFMPEG = '1'; // Do not run the ffmpeg validation for the packager.
- shell.env.NODE_OPTIONS = '--max_old_space_size=4096'; // Increase heap size for the CI
+ shell.env.NODE_OPTIONS = '--max_old_space_size=2084'; // Increase heap size for the CI
shell.env.PUPPETEER_SKIP_CHROMIUM_DOWNLOAD = 'true'; // Skip download and avoid `ERROR: Failed to download Chromium`.
const template = require('./config').generateTemplate(new Date().toISOString());
const utils = require('./utils');
@@ -103,12 +103,12 @@
//-------------------------------------------------------------------------------------------------+
// Rebuild the extension with the copied `yarn.lock`. It is a must to use the same Theia versions. |
//-------------------------------------------------------------------------------------------------+
- exec(`yarn --network-timeout 1000000 --cwd ${path('..', workingCopy)}`, `Building the ${productName} application`);
+ exec(`yarn --no-optional --network-timeout 1000000 --cwd ${path('..', workingCopy)}`, `Building the ${productName} application`);
//-------------------------------------------------------------------------------------------------------------------------+
// Test the application. With this approach, we cannot publish test results to GH Actions but save 6-10 minutes per builds |
//-------------------------------------------------------------------------------------------------------------------------+
- exec(`yarn --network-timeout 1000000 --cwd ${path('..', workingCopy)} test`, `Testing the ${productName} application`);
+ exec(`yarn --no-optional --network-timeout 1000000 --cwd ${path('..', workingCopy)} test`, `Testing the ${productName} application`);
// Collect all unused dependencies by the backend. We have to remove them from the electron app.
// The `bundle.js` already contains everything we need for the frontend.
@@ -193,7 +193,8 @@ ${fs.readFileSync(path('..', 'build', 'package.json')).toString()}
//-----------------------------------+
// Package the electron application. |
//-----------------------------------+
- exec(`yarn --network-timeout 1000000 --cwd ${path('..', 'build')} package`, `Packaging your ${productName} application`);
+ const arch = process.platform === 'linux' && process.arch === 'arm' ? ' --armv7l' : '';
+ exec(`yarn --network-timeout 1000000 --cwd ${path('..', 'build')} package${arch}`, `Packaging your ${productName} application`);
//-----------------------------------------------------------------------------------------------------+
// Copy to another folder. Azure does not support wildcard for `[email protected]` |
|
I found it. Related: arduino/arduino-cli#820 |
This comment was marked as off-topic.
This comment was marked as off-topic.
To compile 2.0.0-rc4 on aarch64 I have had to add this small patch arduino-ide-patch.txt arduino-language-server and clangd compile on raspberry 'as is', just like on any other debian. |
arduino-ide binaries for raspberry are now built using github actions, the same build process as for X86. |
Hi @koendv would you mind opening a PR to this repo? Having aarch64 build for raspberry Pi would be amazing. |
@kittaakos when you have some time, could you please add some context to this? |
From here:
The IDE2 is trying to download an artifact for ARM 32-bit with the following name: arduino-ide/arduino-ide-extension/scripts/download-fwuploader.js Lines 54 to 55 in 4907ef2
But there is no such artifact, it should be
The correct link is I hope this helps. |
Ok, so it's a matter of changing the download link from |
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
On Fri, 08 Jul 2022 03:07:42 -0700 Umberto Baldi ***@***.***> wrote:
Hi @koendv would you mind opening a PR to this repo? Having aarch64
build for raspberry Pi would be amazing.
OK. I'll do that.
regards,
koen
|
@kittaakos this has been fixed in the latest release of the Arduino Fwuploader. Now downloading from |
This comment was marked as off-topic.
This comment was marked as off-topic.
Closes arduino#107 Signed-off-by: Akos Kitta <[email protected]>
Closes arduino#107 Signed-off-by: Akos Kitta <[email protected]>
Ref: #107 Signed-off-by: Akos Kitta <[email protected]>
Ref: #107 Signed-off-by: Akos Kitta <[email protected]>
Describe the request
I want to run Arduino IDE on my Raspberry Pi with arm7vl and aarch64 (aka. arm64) arches.
Describe the current behavior
Official Arduino IDE 2.x Linux builds are only available for the x86 architecture.
Arduino IDE version
afb02da
Operating system
Linux
Operating system version
All
Additional context
Additional requests
Issue checklist
The text was updated successfully, but these errors were encountered: