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

As a user I want to run the Arduino IDE on both armhf and arm64 arches #107

Open
3 tasks done
kittaakos opened this issue Jul 8, 2020 · 37 comments
Open
3 tasks done
Labels
architecture: arm Specific to ARM host architecture criticality: high Of high impact os: linux Specific to Linux operating system priority: high Resolution is a high priority topic: infrastructure Related to project infrastructure type: enhancement Proposed improvement

Comments

@kittaakos
Copy link
Contributor

kittaakos commented Jul 8, 2020

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

  • I searched for previous requests in the issue tracker
  • I verified the feature was still missing when using the latest nightly build
  • My request contains all necessary details
@lordfriky

This comment was marked as duplicate.

@kittaakos

This comment was marked as duplicate.

@rsora rsora transferred this issue from arduino/arduino-pro-ide Mar 1, 2021
@silvanocerza silvanocerza added the type: enhancement Proposed improvement label Mar 1, 2021
@g3holliday

This comment was marked as duplicate.

@koendv
Copy link

koendv commented May 13, 2021

@abusr
Copy link

abusr commented Dec 20, 2021

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?

@kittaakos
Copy link
Contributor Author

So which could be the reason for not officialy releasing ide2 for linux/arm

clangd is not available on ARM if I am not mistaken: clangd/clangd#514

build script

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 👆

@koendv

This comment was marked as off-topic.

@abusr

This comment was marked as duplicate.

@koendv
Copy link

koendv commented Dec 21, 2021 via email

@kittaakos
Copy link
Contributor Author

I need to copy a file by hand: #686

It should not be required. I did this before, and it was not needed. The only bottleneck was clangd and an armhf/arm64 node to build on. I do not know if it is possible now, but there was no way to use a non-self-hosted node for the GitHub Actions to build for armhf/arm64.

we'll build rc3 for 64-bit raspberry together

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.

@koendv

This comment was marked as off-topic.

@jack07Code

This comment was marked as off-topic.

@koendv

This comment was marked as off-topic.

@kittaakos
Copy link
Contributor Author

kittaakos commented Dec 27, 2021

So which could be the reason for not officialy releasing ide2 for linux/arm?

Firmware uploader?

arduino-ide-extension: $ node ./scripts/download-fwuploader.js
arduino-ide-extension: 📦  Identified released version of the Firmware Uploader. Downloading version 2.0.0 from 'https://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.0.0_Linux_ARMv7.tar.gz'
arduino-ide-extension: >>> Downloading from 'https://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.0.0_Linux_ARMv7.tar.gz'...
arduino-ide-extension: HTTPError: Response code 404 (Not Found)
arduino-ide-extension: error Command failed with exit code 1.
arduino-ide-extension: info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
arduino-ide-extension: error Command failed with exit code 1.

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 armhf:

arduino-ide-extension: $ mocha "./lib/test/**/*.test.js"
arduino-ide-extension: 
arduino-ide-extension:   Monitor Utils
arduino-ide-extension:     when converting messages
arduino-ide-extension:       ✓ should give the right result
arduino-ide-extension:     when converting messages
arduino-ide-extension:       ✓ should give the right result
arduino-ide-extension:     when converting messages
arduino-ide-extension:       ✓ should give the right result
arduino-ide-extension:     when converting messages
arduino-ide-extension:       ✓ should give the right result
arduino-ide-extension:     when converting messages
arduino-ide-extension:       ✓ should give the right result
arduino-ide-extension:     when converting messages
arduino-ide-extension:       ✓ should give the right result
arduino-ide-extension:     when converting messages
arduino-ide-extension:       ✓ should give the right result
arduino-ide-extension:   boards-service
arduino-ide-extension:     AttachedBoardsChangeEvent
arduino-ide-extension:       ✓ should detect one attached port
arduino-ide-extension:   installable
arduino-ide-extension:     compare
arduino-ide-extension:       ✓ '1.8.1' should be equal to '1.8.1'
arduino-ide-extension:       ✓ '1.8.1' should be greater than '1.6.1'
arduino-ide-extension:       ✓ '1.6.1' should be less than '1.8.1'
arduino-ide-extension:       ✓ '1.6.1' should be less than '1.6.3'
arduino-ide-extension:       ✓ '5.1.1' should be greater than '5.1.0'
arduino-ide-extension:       ✓ '5.1.0' should be greater than '5.1.0-beta.1'
arduino-ide-extension:       ✓ '5.1.0-beta.1' should be less than '5.1.0'
arduino-ide-extension:       ✓ '5.1.0-beta.2' should be greater than '5.1.0-beta.1'
arduino-ide-extension:       ✓ '5.1.0-beta.1' should be less than '5.1.0-beta.2'
arduino-ide-extension:       ✓ '5.1.0-beta.1' should be less than '5.1.1'
arduino-ide-extension:       ✓ '1.1.0' should be greater than '1.1.0-a'
arduino-ide-extension:       ✓ '1.1.0-a' should be less than '1.1.0'
arduino-ide-extension:       ✓ 'COM1' should be less than 'COM2'
arduino-ide-extension:       ✓ 'COM1' should be less than 'COM10'
arduino-ide-extension:       ✓ 'COM10' should be greater than 'COM1'
arduino-ide-extension:       ✓ 'COM10' should be greater than 'COM2'
arduino-ide-extension:       ✓ 'COM2' should be less than 'COM10'
arduino-ide-extension:       ✓ 'COM10' should be equal to 'COM10'
arduino-ide-extension:   arduino-daemon-impl
arduino-ide-extension:     1) should parse the port address when the log format is json
arduino-ide-extension:     2) should parse the port address when the log format is text
arduino-ide-extension:   cli-config
arduino-ide-extension:     ✓ {"board_manager":{"additional_urls":[]},"daemon":{"port":5000},"directories":{"data":"data","downloads":"downloads","user":"user"}} should be the same as {"board_manager":{"additional_urls":[]},"daemon":{"port":5000},"directories":{"data":"data","downloads":"downloads","user":"user"}}
arduino-ide-extension:     ✓ {"daemon":{"port":5000},"directories":{"data":"data","downloads":"downloads","user":"user"}} should be the same as {"board_manager":{"additional_urls":[]},"daemon":{"port":5000},"directories":{"data":"data","downloads":"downloads","user":"user"}}
arduino-ide-extension:     ✓ {"board_manager":{"additional_urls":[]},"daemon":{"port":"5000"},"directories":{"data":"data","downloads":"downloads","user":"user"}} should be the same as {"board_manager":{"additional_urls":[]},"daemon":{"port":5000},"directories":{"data":"data","downloads":"downloads","user":"user"}}
arduino-ide-extension:   getExecPath
arduino-ide-extension:     ✓ should resolve arduino-cli (1778ms)
arduino-ide-extension:     ✓ should resolve arduino-language-server
arduino-ide-extension: Error: Error executing "/home/pi/dev/git/arduino-ide/electron/working-copy/arduino-ide-extension/build/bin/clangd" --version: /bin/sh: 1: /home/pi/dev/git/arduino-ide/electron/working-copy/arduino-ide-extension/build/bin/clangd: Exec format error
arduino-ide-extension:     at ChildProcess.<anonymous> (/home/pi/dev/git/arduino-ide/electron/working-copy/arduino-ide-extension/lib/node/exec-util.js:53:31)
arduino-ide-extension:     at ChildProcess.emit (events.js:314:20)
arduino-ide-extension:     at Process.ChildProcess._handle.onexit (internal/child_process.js:276:12)
arduino-ide-extension:     3) should resolve clangd
arduino-ide-extension:   SerialServiceImpl
arduino-ide-extension:     when a serial connection is requested
arduino-ide-extension:       and an upload is in progress
arduino-ide-extension:         ✓ should not change the connection status
arduino-ide-extension:       and there is no upload in progress
arduino-ide-extension:         and there are 0 attached ws clients
arduino-ide-extension:           ✓ should disconnect
arduino-ide-extension:         and there are > 0 attached ws clients
arduino-ide-extension:           ✓ should not call the disconenct
arduino-ide-extension:     when a disconnection is requested
arduino-ide-extension:       and a serialConnection is not set
arduino-ide-extension:         ✓ should return a NOT_CONNECTED status
arduino-ide-extension:       and a serialConnection is set
arduino-ide-extension:         ✓ should dispose the serialConnection
arduino-ide-extension:         ✓ should call updateWsConfigParam with disconnected status
arduino-ide-extension:     when a new config is passed in
arduino-ide-extension:       ✓ should disconnect from previous connection
arduino-ide-extension:       ✓ should create the serialConnection
arduino-ide-extension:   39 passing (3s)
arduino-ide-extension:   3 failing
arduino-ide-extension:   1) arduino-daemon-impl
arduino-ide-extension:        should parse the port address when the log format is json:
arduino-ide-extension:      Error: panic: unaligned 64-bit atomic operation
arduino-ide-extension: goroutine 1 [running]:
arduino-ide-extension:       at Socket.<anonymous> (lib/node/arduino-daemon-impl.js:185:42)
arduino-ide-extension:       at addChunk (_stream_readable.js:297:12)
arduino-ide-extension:       at readableAddChunk (_stream_readable.js:272:9)
arduino-ide-extension:       at Socket.Readable.push (_stream_readable.js:213:10)
arduino-ide-extension:       at Pipe.onStreamRead (internal/stream_base_commons.js:188:23)
arduino-ide-extension: 
arduino-ide-extension:   2) arduino-daemon-impl
arduino-ide-extension:        should parse the port address when the log format is text:
arduino-ide-extension:      Error: panic: unaligned 64-bit atomic operation
arduino-ide-extension: goroutine 1 [running]:
arduino-ide-extension:       at Socket.<anonymous> (lib/node/arduino-daemon-impl.js:185:42)
arduino-ide-extension:       at addChunk (_stream_readable.js:297:12)
arduino-ide-extension:       at readableAddChunk (_stream_readable.js:272:9)
arduino-ide-extension:       at Socket.Readable.push (_stream_readable.js:213:10)
arduino-ide-extension:       at Pipe.onStreamRead (internal/stream_base_commons.js:188:23)
arduino-ide-extension: 
arduino-ide-extension:   3) getExecPath
arduino-ide-extension:        should resolve clangd:
arduino-ide-extension:      Error: Error executing "/home/pi/dev/git/arduino-ide/electron/working-copy/arduino-ide-extension/build/bin/clangd" --version: /bin/sh: 1: /home/pi/dev/git/arduino-ide/electron/working-copy/arduino-ide-extension/build/bin/clangd: Exec format error
arduino-ide-extension:       at ChildProcess.<anonymous> (lib/node/exec-util.js:53:31)
arduino-ide-extension:       at Process.ChildProcess._handle.onexit (internal/child_process.js:276:12)
arduino-ide-extension: 
arduino-ide-extension: error Command failed with exit code 3.

@kittaakos
Copy link
Contributor Author

kittaakos commented Dec 27, 2021

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 👆

electron-build part:

  • electron-builder  version=22.7.0 os=4.19.118-v7l+
  • loaded configuration  file=package.json ("build" field)
  • writing effective config  file=dist/builder-effective-config.yaml
  • rebuilding native dependencies  dependencies=@theia/[email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]
                                    platform=linux
                                    arch=armv7l
  • install prebuilt binary  name=keytar version=7.2.0 platform=linux arch=armv7l
  • install prebuilt binary  name=drivelist version=9.2.4 platform=linux arch=armv7l
  • build native dependency from sources  name=keytar
                                          version=7.2.0
                                          platform=linux
                                          arch=armv7l
                                          reason=prebuild-install failed with error (run with env DEBUG=electron-builder to get more information)
                                          error=prebuild-install info begin Prebuild-install version 6.1.1
    prebuild-install WARN install prebuilt binaries enforced with --force!
    prebuild-install WARN install prebuilt binaries may be out of date!
    prebuild-install info looking for local prebuild @ prebuilds/keytar-v7.2.0-electron-v80-linux-armv7l.tar.gz
    prebuild-install info looking for cached prebuild @ /home/pi/.npm/_prebuilds/4d2fa7-keytar-v7.2.0-electron-v80-linux-armv7l.tar.gz
    prebuild-install http request GET https://github.com/atom/node-keytar/releases/download/v7.2.0/keytar-v7.2.0-electron-v80-linux-armv7l.tar.gz
    prebuild-install http 404 https://github.com/atom/node-keytar/releases/download/v7.2.0/keytar-v7.2.0-electron-v80-linux-armv7l.tar.gz
    prebuild-install WARN install No prebuilt binaries found (target=9.4.4 runtime=electron arch=armv7l libc= platform=linux)
    
  • build native dependency from sources  name=drivelist
                                          version=9.2.4
                                          platform=linux
                                          arch=armv7l
                                          reason=prebuild-install failed with error (run with env DEBUG=electron-builder to get more information)
                                          error=prebuild-install info begin Prebuild-install version 6.1.1
    prebuild-install WARN install prebuilt binaries enforced with --force!
    prebuild-install WARN install prebuilt binaries may be out of date!
    prebuild-install info looking for local prebuild @ prebuilds/drivelist-v9.2.4-electron-v80-linux-armv7l.tar.gz
    prebuild-install info looking for cached prebuild @ /home/pi/.npm/_prebuilds/46cc15-drivelist-v9.2.4-electron-v80-linux-armv7l.tar.gz
    prebuild-install http request GET https://github.com/balena-io-modules/drivelist/releases/download/v9.2.4/drivelist-v9.2.4-electron-v80-linux-armv7l.tar.gz
    prebuild-install http 404 https://github.com/balena-io-modules/drivelist/releases/download/v9.2.4/drivelist-v9.2.4-electron-v80-linux-armv7l.tar.gz
    prebuild-install WARN install No prebuilt binaries found (target=9.4.4 runtime=electron arch=armv7l libc= platform=linux)
    
  • rebuilding native dependency  name=drivelist version=9.2.4
  • rebuilding native dependency  name=@theia/node-pty version=0.9.0-theia.6
  • rebuilding native dependency  name=find-git-repositories version=0.1.3
  • rebuilding native dependency  name=grpc version=1.24.11
  • rebuilding native dependency  name=keytar version=7.2.0
  • rebuilding native dependency  name=native-keymap version=2.2.1
  • rebuilding native dependency  name=nsfw version=2.1.2
  • rebuilding native dependency  name=oniguruma version=7.2.1
  • packaging       platform=linux arch=armv7l electron=9.4.4 appOutDir=dist/linux-armv7l-unpacked
  • downloading     url=https://github.com/electron/electron/releases/download/v9.4.4/electron-v9.4.4-linux-armv7l.zip size=63 MB parts=8
  • downloaded      url=https://github.com/electron/electron/releases/download/v9.4.4/electron-v9.4.4-linux-armv7l.zip duration=36.353s
  • asar usage is disabled — this is strongly not recommended  solution=enable asar and use asarUnpack to unpack files that must be externally available
Skipping notarization: not on CI.
  • building        target=zip arch=armv7l file=dist/arduino-ide_2.0.0-rc3-snapshot.51da3c0_Linux_ARMv7.zip

One can see, drivelist is rebuilt, so no need to manually copy anything.

The arduino-cli daemon start error from the packaged IDE:

daemon INFO Executing `arduino-cli daemon`
daemon INFO Setting up Prometheus metrics on :9090/metrics
daemon INFO panic: unaligned 64-bit atomic operation
daemon INFO goroutine 1 [running]:
daemon INFO runtime/internal/atomic.panicUnaligned()
daemon INFO     /usr/local/go/src/runtime/internal/atomic/unaligned.go:8 +0x24
daemon INFO runtime/internal/atomic.Xadd64(0x103ed9c, 0x1, 0x0, 0x6, 0x9a91e9)
daemon INFO     /usr/local/go/src/runtime/internal/atomic/asm_arm.s:233 +0x14
daemon INFO github.com/segmentio/stats/v4/prometheus.(*Handler).HandleMeasures(0x103ed88, 0xc4863a2, 0xc06a9328, 0x292a945, 0x0, 0x103edc0, 0x1e1fe20, 0x1, 0x1)
daemon INFO     /go/pkg/mod/github.com/segmentio/stats/[email protected]/prometheus/handler.go:96 +0x1c8
daemon INFO github.com/segmentio/stats/v4.(*Engine).measure(0x1e1fd80, 0xc4863a2, 0xc06a9328, 0x292a945, 0x0, 0x103edc0, 0x0, 0x0, 0x8a6908, 0xa61d0c, ...)
daemon INFO     /go/pkg/mod/github.com/segmentio/stats/[email protected]/engine.go:155 +0x2cc
daemon INFO github.com/segmentio/stats/v4.(*Engine).Add(0x1e1fd80, 0x9a91e9, 0x6, 0x8a6908, 0xa61d0c, 0x1d97e6c, 0x1, 0x1)
daemon INFO     /go/pkg/mod/github.com/segmentio/stats/[email protected]/engine.go:94 +0x78
daemon INFO github.com/segmentio/stats/v4.(*Engine).Incr(...)
daemon INFO     /go/pkg/mod/github.com/segmentio/stats/[email protected]/engine.go:84
daemon INFO github.com/segmentio/stats/v4.Incr(...)
daemon INFO     /go/pkg/mod/github.com/segmentio/stats/[email protected]/engine.go:251
daemon INFO github.com/arduino/arduino-cli/cli/daemon.runDaemonCommand(0x1e34000, 0x1e39220, 0x0, 0x9)
daemon INFO     /home/build/cli/daemon/daemon.go:75 +0xc80
daemon INFO github.com/spf13/cobra.(*Command).execute(0x1e34000, 0x1e39180, 0x9, 0xa, 0x1e34000, 0x1e39180)
daemon INFO     /go/pkg/mod/github.com/spf13/[email protected]/command.go:860 +0x1f4
daemon INFO github.com/spf13/cobra.(*Command).ExecuteC(0x1cc1b80, 0x1, 0x1, 0x0)
daemon INFO     /go/pkg/mod/github.com/spf13/[email protected]/command.go:974 +0x280
daemon INFO github.com/spf13/cobra.(*Command).Execute(...)
daemon INFO     /go/pkg/mod/github.com/spf13/[email protected]/command.go:902
daemon INFO main.main()
daemon INFO     /home/build/main.go:31 +0xc0
daemon INFO Failed to start the daemon.
daemon ERROR Error: panic: unaligned 64-bit atomic operation

The bundled CLI arch seems OK, I can get the version:

~/dev/git/arduino-ide $ ./electron/build/dist/linux-armv7l-unpacked/resources/app/node_modules/arduino-ide-extension/build/arduino-cli version
arduino-cli  Version: 0.20.2 Commit: 13783819 Date: 2021-12-09T13:32:05Z

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]` |

@kittaakos
Copy link
Contributor Author

The arduino-cli daemon start error from the packaged IDE:

I found it. Related: arduino/arduino-cli#820

@ubidefeo ubidefeo added priority: high Resolution is a high priority criticality: high Of high impact labels Jan 5, 2022
@abusr

This comment was marked as off-topic.

@koendv
Copy link

koendv commented Mar 4, 2022

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.
As a small step forward, I suggest adding Linux_ARM64 builds for arduino-language-server and clangd to downloads.arduino.cc.

@koendv
Copy link

koendv commented Jun 9, 2022

arduino-ide binaries for raspberry are now built using github actions, the same build process as for X86.

@umbynos
Copy link

umbynos commented Jul 8, 2022

Hi @koendv would you mind opening a PR to this repo? Having aarch64 build for raspberry Pi would be amazing.

@umbynos
Copy link

umbynos commented Sep 5, 2022

fixed the firmware updater download link

@kittaakos when you have some time, could you please add some context to this?
I'm not sure if I understand the problem

@kittaakos
Copy link
Contributor Author

I'm not sure if I understand the problem

From here:

  • fixed the firmware updater download link

The IDE2 is trying to download an artifact for ARM 32-bit with the following name:

case 'arm':
return 'Linux_ARMv7.tar.gz';

But there is no such artifact, it should be 'Linux_ARM.tar.gz'.

https://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.0_Linux_ARMv7.tar.gz is an HTTP 404:

Screen Shot 2022-09-05 at 11 55 23

The correct link is https://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.0_Linux_ARM.tar.gz.

I hope this helps.

@umbynos
Copy link

umbynos commented Sep 5, 2022

Ok, so it's a matter of changing the download link from https://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.0_Linux_ARM.tar.gz to https://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.0_Linux_ARMv7.tar.gz right?
If so I already this the work and the arduino-fwuploader only needs a release ✨

@jtheck

This comment was marked as off-topic.

@per1234 per1234 added the os: linux Specific to Linux operating system label Sep 22, 2022
@HellToFire

This comment was marked as off-topic.

@koendv
Copy link

koendv commented Oct 11, 2022 via email

@umbynos
Copy link

umbynos commented Oct 11, 2022

@kittaakos this has been fixed in the latest release of the Arduino Fwuploader. Now downloading from https://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.1_Linux_ARMv7.tar.gz should work

@elgerg

This comment was marked as off-topic.

kittaakos pushed a commit to kittaakos/arduino-ide that referenced this issue Oct 27, 2022
Closes arduino#107

Signed-off-by: Akos Kitta <[email protected]>
kittaakos pushed a commit to kittaakos/arduino-ide that referenced this issue Oct 27, 2022
Closes arduino#107

Signed-off-by: Akos Kitta <[email protected]>
kittaakos pushed a commit that referenced this issue Oct 27, 2022
Ref: #107

Signed-off-by: Akos Kitta <[email protected]>
kittaakos pushed a commit that referenced this issue Oct 27, 2022
Ref: #107

Signed-off-by: Akos Kitta <[email protected]>
@theofficialgman

This comment was marked as off-topic.

@koendv

This comment was marked as duplicate.

@per1234 per1234 changed the title As a user I want to run the Pro IDE on both armhf and arm64 arches As a user I want to run the Arduino IDE on both armhf and arm64 arches Nov 7, 2022
@federicolarumbe

This comment was marked as spam.

@KurtE

This comment was marked as off-topic.

@koendv

This comment was marked as off-topic.

@per1234 per1234 added the topic: infrastructure Related to project infrastructure label Jan 20, 2023
@hybotics

This comment was marked as off-topic.

@abusr

This comment was marked as off-topic.

@onkoe

This comment was marked as off-topic.

@josefwegner

This comment was marked as off-topic.

@arduino arduino locked as too heated and limited conversation to collaborators Aug 30, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
architecture: arm Specific to ARM host architecture criticality: high Of high impact os: linux Specific to Linux operating system priority: high Resolution is a high priority topic: infrastructure Related to project infrastructure type: enhancement Proposed improvement
Projects
None yet
Development

No branches or pull requests