Installing Arduino IDE 2.0 on Ubuntu
2026-01-26
Table of Contents
- 1. Getting Started: The Download
- 2. Setting Permissions and Dependencies
- The Permissions Fix
- The FUSE Requirement (Ubuntu 22.04 and 24.04+)
- 3. Solving the Sandbox Startup Error
- The Quick Fix
- The Permanent System Fix
- 4. Creating a Desktop Shortcut (With Icon)
- 5. Troubleshooting ESP32: DEADLINE_EXCEEDED
- Step A: Increase the CLI Network Timeout
- Step B: The Clean Slate Method
- Final Checklist
After Switching to Linux more details in this blog Fuck It, I’m Moving to Linux I had to install Arduino IDE here is what you have to do to make it work
1. Getting Started: The Download
First, grab the latest version of the Linux AppImage 64 bits (X86_64) from the official Arduino Software page.
Since AppImages are standalone, I recommend moving it to a dedicated folder like ~/Apps/Arduino-IDE/ to keep your system organized.
2. Setting Permissions and Dependencies
Before you can run it, you must tell Ubuntu that this file is an executable.
The Permissions Fix
- Right-click the
.AppImagefile -> Properties. - Under the Permissions tab, check Allow executing file as program.
- Terminal alternative:
chmod +x ~/Apps/Arduino-IDE/arduino-ide_2.x.x_Linux_64bit.AppImage
The FUSE Requirement (Ubuntu 22.04 and 24.04+)
Newer versions of Ubuntu have transitioned their libraries. If you are on Ubuntu 24.04 or newer, the package name has changed. Use the command relevant to your version:
For Ubuntu 24.04+:
Bashsudo apt update && sudo apt install libfuse2t64For Ubuntu 22.04:
Bashsudo apt update && sudo apt install libfuse2
3. Solving the "Sandbox" Startup Error
If you try to launch the IDE and see a "Namespace" or "Sandbox" error in your terminal, modern Ubuntu security policies are likely clashing with the Electron engine.
The Quick Fix
Launch the IDE with the sandbox disabled:
~/Apps/Arduino-IDE/arduino-ide_2.x.x_Linux_64bit.AppImage --no-sandbox
The Permanent System Fix
To allow unprivileged namespaces system-wide (the "cleaner" way):
sudo sysctl -w kernel.unprivileged_userns_clone=1
echo 'kernel.unprivileged_userns_clone=1' | sudo tee /etc/sysctl.d/00-local-userns.conf
4. Creating a Desktop Shortcut (With Icon)
To get a clickable icon in your App Grid, we need to create a manual entry.
- Get an Icon: Since official links can change, search for an "Arduino Logo PNG" on Google, download it, and save it as
arduino-icon.pnginside your~/Apps/Arduino-IDE/folder. - Create the Desktop Entry:
Runnano ~/.local/share/applications/arduino-ide.desktopand paste this (replaceabdaswith your actual Linux username):TOML[Desktop Entry] Name=Arduino IDE 2.0 Exec=/home/abdas/Apps/Arduino-IDE/arduino-ide_2.x.x_Linux_64bit.AppImage --no-sandbox Icon=/home/abdas/Apps/Arduino-IDE/arduino-icon.png Type=Application Categories=Development;Engineering; Terminal=false StartupWMClass=arduino-ide - Apply Changes:
update-desktop-database ~/.local/share/applications
5. Troubleshooting ESP32: "DEADLINE_EXCEEDED"
If the Boards Manager fails with a 4 DEADLINE_EXCEEDED error, it’s usually because the internal downloader (Arduino CLI) timed out before the large ESP32 packages could finish.
Step A: Increase the CLI Network Timeout
The timeout setting isn't in the standard IDE preferences; it's hidden in the CLI configuration file.
Navigate to your Arduino data folder:
cd ~/.arduino15/Open the CLI config file:
nano arduino-cli.yml
(If the file is empty or doesn't exist, you may need to create it or look for it in the same directory where your boards are installed).Look for the
networksection and update the timeout (or add it if it's missing):YAMLnetwork: timeout: 1m0s(Setting it to
1m0sor5m0sgives your connection much more breathing room).Save and restart the IDE.
Step B: The "Clean Slate" Method
If the download still fails, a corrupted partial file might be blocking the progress:
- Navigate to
~/.arduino15/staging/packages. (PressCtrl + Hin your home folder to see hidden files). - Delete everything inside the
packagesfolder. - Re-run the ESP32 installation in the Boards Manager.
Final Checklist
- Dialout Group: Run
sudo usermod -a -G dialout $USERthen log out and back in to ensure you can upload code. - ESP32 URL: Ensure
https://dl.espressif.com/dl/package_esp32_index.jsonis in your "Additional Boards Manager URLs."