Skip to content

Build changes for Arm64 to produce binaries that will run on Linux on a Chromebook (2026)#2933

Open
chrismaeda wants to merge 1 commit into
arduino:mainfrom
chrismaeda:chromebook-arm64
Open

Build changes for Arm64 to produce binaries that will run on Linux on a Chromebook (2026)#2933
chrismaeda wants to merge 1 commit into
arduino:mainfrom
chrismaeda:chromebook-arm64

Conversation

@chrismaeda

Copy link
Copy Markdown
  • Build machine: EC2 Arm64 (t4g instance type) + Ubuntu 24
  • Chromebook: ASUS CM1402FM2 + ChromeOS 149 + Linux Penguin 6.6

Tests:

  • Build on EC2 Arm64 VM (using steps in scripts/package.sh)
  • SFTP AppImage to Linux on Chromebook
  • Install libnss3 on Chromebook Linux
  • Run AppImage, Connect ESP32 board (delegate USB to Linux), Upload Sketch

Motivation

Enable Arduino IDE Linux builds for Arm64 systems; in particular Chromebook Linux environments running on Arm64 hardware.

Note that Arm64 Chromebook is the standard hardware platform for K-12 education.

Change description

Updated the Electron packaging flow to support Linux Arm64 AppImage and ZIP generation. The packaging script now prepares the required Linux packaging tools, ensures app-builder-bin is executable, adds the bundled 7zip binary to PATH, and forces maximum compression so AppImage creation uses a compression format supported by the Arm64 mksquashfs payload.

Added workspace dependency linking before packaging so electron-builder can correctly validate dependencies when Yarn workspaces have linked or hoisted packages outside the Electron app directory. This includes linking the local arduino-ide-extension workspace package and creating package-local links for hoisted production dependencies discovered by app-builder-bin.

Added a prebuild helper for the Electron app that builds arduino-ide-extension when the expected compiled extension entry point is missing, ensuring the Electron build has the extension artifacts it needs. Also pinned app-builder-bin through the root package resolutions to keep packaging behavior consistent.

Other information

The Linux-specific packaging changes are gated to Linux builds. The dependency-linking and extension prebuild safeguards run across platforms to keep workspace packaging consistent, so the primary compatibility risk is symlink behavior on Windows; existing CI should validate that path.

Reviewer checklist

  • PR addresses a single concern.
  • The PR has no duplicates (please search among the Pull Requests before creating one)
  • PR title and description are properly filled.
  • Docs have been added / updated (for bug fixes / features)
@CLAassistant

CLAassistant commented Jun 24, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

…book.

 - Build machine: EC2 Arm64 (t4g instance type) + Ubuntu 24
 - Chromebook: ASUS CM1402FM2 + ChromeOS 149 + Linux Penguin 6.6

Tests:
 - Build on EC2 Arm64 VM (using steps in scripts/package.sh)
 - SFTP AppImage to Linux on Chromebook
 - Install libnss3 on Chromebook
 - Run AppImage, Connect ESP32 board (delegate USB to Linux), Upload Sketch
@per1234 per1234 added type: enhancement Proposed improvement topic: infrastructure Related to project infrastructure architecture: arm Specific to ARM host architecture os: linux Specific to Linux operating system labels Jun 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

architecture: arm Specific to ARM host architecture os: linux Specific to Linux operating system topic: infrastructure Related to project infrastructure type: enhancement Proposed improvement

3 participants