Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Linux ARM64 Installation

MediaGit-Core supports ARM64 Linux systems including Raspberry Pi, ARM servers, and cloud ARM instances.

Quick Install

curl -fsSL https://raw.githubusercontent.com/winnyboy5/mediagit-core/main/install.sh | sh

The script auto-detects ARM64 architecture and downloads the correct binary from GitHub Releases.

Raspberry Pi Setup

Raspberry Pi OS (64-bit)

# Update system
sudo apt update && sudo apt upgrade

# Install MediaGit
wget https://github.com/winnyboy5/mediagit-core/releases/download/v0.2.6-beta.1/mediagit-0.2.6-beta.1-aarch64-linux.tar.gz
tar -xzf mediagit-0.2.6-beta.1-aarch64-linux.tar.gz
sudo mv mediagit /usr/local/bin/
sudo chmod +x /usr/local/bin/mediagit

# Verify
mediagit --version

Raspberry Pi 4/5 Optimization

# ~/.mediagit/config.toml
[performance]
worker_threads = 4  # Raspberry Pi 4/5 has 4 cores
chunk_size = "4MB"  # Optimize for limited RAM

[compression]
algorithm = "zstd"
level = "fast"  # Less CPU intensive

ARM Server Installation

Ubuntu Server ARM64

# Add MediaGit repository
curl -fsSL https://apt.mediagit.dev/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/mediagit-archive-keyring.gpg
echo "deb [arch=arm64 signed-by=/usr/share/keyrings/mediagit-archive-keyring.gpg] https://apt.mediagit.dev stable main" | sudo tee /etc/apt/sources.list.d/mediagit.list

# Install
sudo apt update
sudo apt install mediagit-core

Amazon Linux 2 (Graviton)

# Download ARM64 build
wget https://github.com/winnyboy5/mediagit-core/releases/download/v0.2.6-beta.1/mediagit-0.2.6-beta.1-aarch64-linux.tar.gz

# Install
tar -xzf mediagit-0.2.6-beta.1-aarch64-linux.tar.gz
sudo mv mediagit /usr/local/bin/
sudo chmod +x /usr/local/bin/mediagit

Cloud ARM Instances

AWS Graviton (EC2 t4g, c7g)

Optimized for AWS Graviton processors:

# Install
curl -fsSL https://raw.githubusercontent.com/winnyboy5/mediagit-core/main/install.sh | sh

# Configure for Graviton
mediagit config set performance.worker_threads $(nproc)
mediagit config set compression.algorithm zstd

Oracle Cloud Ampere

# Install on Oracle Cloud ARM instances
sudo dnf config-manager --add-repo https://rpm.mediagit.dev/mediagit.repo
sudo dnf install mediagit-core

Azure ARM VMs

# Ubuntu 22.04 ARM64
curl -fsSL https://raw.githubusercontent.com/winnyboy5/mediagit-core/main/install.sh | sh

Manual Binary Installation

# Download ARM64 binary
wget https://github.com/winnyboy5/mediagit-core/releases/download/v0.2.6-beta.1/mediagit-0.2.6-beta.1-aarch64-linux.tar.gz

# Extract and install
tar -xzf mediagit-0.2.6-beta.1-aarch64-linux.tar.gz
sudo mv mediagit /usr/local/bin/
sudo chmod +x /usr/local/bin/mediagit

# Verify
mediagit --version

Performance Tuning for ARM

Memory-Constrained Devices (1-2GB RAM)

# ~/.mediagit/config.toml
[performance]
worker_threads = 2
chunk_size = "2MB"
cache_size = "256MB"

[compression]
level = "fast"
parallel = false

High-Performance ARM Servers (Graviton 3, Ampere Altra)

# ~/.mediagit/config.toml
[performance]
worker_threads = 64  # Full core utilization
chunk_size = "16MB"
cache_size = "4GB"

[compression]
level = 3
parallel = true
threads = 8

System Requirements

  • CPU: ARMv8-A or later (AArch64)
  • RAM: 512MB minimum, 2GB recommended
  • Disk: 100MB for binaries
  • OS: Linux kernel 4.4+

Verified ARM Platforms

PlatformVersionStatus
Raspberry Pi 48GB✅ Tested
Raspberry Pi 54GB, 8GB✅ Tested
AWS Graviton 2/3All instance types✅ Tested
Oracle Ampere A1All shapes✅ Tested
Azure ARM64 VMsDpsv5, Epsv5 series✅ Tested
Ampere AltraAll SKUs✅ Tested

Troubleshooting

Illegal Instruction Error

If you see “Illegal instruction”:

# Check CPU features
cat /proc/cpuinfo | grep Features

# Ensure ARMv8-A or later
uname -m  # Should output: aarch64

Out of Memory on Raspberry Pi

# Reduce memory usage
[performance]
worker_threads = 1
chunk_size = "1MB"
cache_size = "128MB"

[compression]
level = "fast"
parallel = false

Slow Performance

# Check CPU frequency (may be throttled)
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

# Enable performance governor
sudo apt install cpufrequtils
sudo cpufreq-set -g performance

Building from Source (ARM64)

If pre-built binaries don’t work:

# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Clone and build
git clone https://github.com/winnyboy5/mediagit-core.git
cd mediagit-core
cargo build --release --target aarch64-unknown-linux-gnu

# Install
sudo mv target/aarch64-unknown-linux-gnu/release/mediagit /usr/local/bin/

Cross-Compilation (Advanced)

Compile ARM64 binaries on x64 machines:

# Install cross-compilation tools
rustup target add aarch64-unknown-linux-gnu
sudo apt install gcc-aarch64-linux-gnu

# Build
cargo build --release --target aarch64-unknown-linux-gnu

Next Steps