Skip to content

Commit 6f15345

Browse files
committed
Install guide for Arm Linux Migration Tools
1 parent 61d4c41 commit 6f15345

1 file changed

Lines changed: 325 additions & 0 deletions

File tree

Lines changed: 325 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,325 @@
1+
---
2+
title: Arm Linux Migration Tools
3+
4+
draft: true
5+
6+
additional_search_terms:
7+
- migration
8+
- porting
9+
- analysis
10+
- containers
11+
- arm64
12+
- aarch64
13+
- sysreport
14+
- skopeo
15+
- llvm-mca
16+
- topdown-tool
17+
- kubearchinspect
18+
- migrate-ease
19+
- aperf
20+
- bolt
21+
- papi
22+
- perf
23+
- processwatch
24+
- check-image
25+
- porting-advisor
26+
27+
minutes_to_complete: 20
28+
29+
author: Jason Andrews
30+
31+
official_docs: https://github.com/arm/arm-linux-migration-tools
32+
33+
test_images:
34+
- ubuntu:latest
35+
test_maintenance: true
36+
test_link: null
37+
38+
layout: installtoolsall
39+
tool_install: true
40+
multi_install: false
41+
multitool_install_part: false
42+
weight: 1
43+
---
44+
45+
[Arm Linux Migration Tools](https://github.com/arm/arm-linux-migration-tools) provides a comprehensive collection of thirteen essential utilities to help you migrate applications from x86 to Arm Linux systems. Instead of installing and managing each tool individually, you get everything you need in a single, streamlined installation.
46+
47+
This package includes code analysis, performance, and migration tools such as Sysreport, Skopeo, LLVM Machine Code Analyzer, Telemetry Solution, KubeArchInspect, Migrate Ease, Aperf, BOLT, PAPI, Perf, Process Watch, Check Image, and Porting Advisor for Graviton. These tools help you assess application compatibility, analyze performance characteristics, optimize code layout, and identify potential issues before and after migration.
48+
49+
Whether you're migrating containerized applications, analyzing system performance, or optimizing binaries for Arm processors, this package simplifies your migration workflow by providing all the necessary tools through a unified installation process, saving you time on setup and configuration.
50+
51+
## What are the tools included in Arm Linux Migration Tools?
52+
53+
The Arm Linux Migration Tools package includes the following utilities:
54+
55+
| Tool | Purpose | Test Command | Documentation |
56+
|------|---------|--------------|---------------|
57+
| Sysreport | System analysis and reporting tool for performance and configuration checks | `sysreport --help` | [Get ready for performance analysis with Sysreport](/learning-paths/servers-and-cloud-computing/sysreport/) |
58+
| Skopeo | Container image inspection and manipulation tool | `skopeo --help` | [Skopeo install guide](/install-guides/skopeo/) |
59+
| LLVM Machine Code Analyzer | Machine Code Analyzer for performance analysis of compiled code | `llvm-mca --help` | [Learn about LLVM Machine Code Analyzer](/learning-paths/cross-platform/mca-godbolt/) |
60+
| Telemetry Solution | Performance analysis methodology tool for Linux systems | `topdown-tool --help` | [Telemetry Solution](/install-guides/topdown-tool/) |
61+
| KubeArchInspect | Kubernetes architecture inspection and reporting tool | `kubearchinspect --help` | [Migrate containers to Arm using KubeArchInspect](/learning-paths/servers-and-cloud-computing/kubearchinspect/) |
62+
| Migrate Ease | Migration assistance tool for analyzing and porting workloads | `migrate-ease-cpp --help` | [Migrate applications to Arm servers using migrate-ease](/learning-paths/servers-and-cloud-computing/migrate-ease/) |
63+
| Aperf | Performance monitoring tool for Linux systems | `aperf --help` | [Aperf install guide](/install-guides/aperf/) |
64+
| BOLT | Binary optimization and layout tool (part of LLVM) | `llvm-bolt --help` | [BOLT install guide](/install-guides/bolt/) |
65+
| PAPI | Performance API for accessing hardware performance counters | `papi_avail -h` | [PAPI install guide](/install-guides/papi/) |
66+
| Perf | Linux performance analysis tool for profiling and tracing | `perf --help` | [Perf install guide](/install-guides/perf/) |
67+
| Process Watch | Process monitoring tool for Linux systems | `processwatch -h` | [Run Process watch on your Arm machine](/learning-paths/servers-and-cloud-computing/processwatch/) |
68+
| Check Image | Checks a container image for Arm architecture support | `check-image -h` | [Check Image on learn.arm.com](/learning-paths/cross-platform/docker/check-images/) |
69+
| Porting Advisor for Graviton | Tool to assess portability of software to Arm architecture | `porting-advisor --help` | [Porting Advisor install guide](/install-guides/porting-advisor/) |
70+
71+
Each tool serves a specific purpose in the migration process, from analyzing system configurations and performance characteristics to optimizing binaries and checking container compatibility.
72+
73+
## Prerequisites
74+
75+
Before installing the Arm Linux Migration Tools, verify that your system meets the following requirements:
76+
77+
### Architecture verification
78+
79+
This package is designed for Arm Linux systems. Verify that you're running on the Arm architecture:
80+
81+
```bash
82+
uname -m
83+
```
84+
85+
The output should be `aarch64`. If you see `x86_64` or another architecture, this package isn't compatible with your system.
86+
87+
### Operating system support
88+
89+
The Arm Linux Migration Tools package supports Ubuntu 22.04 and Ubuntu 24.04.
90+
91+
### Required dependencies
92+
93+
Some tools in the package require additional software to function properly:
94+
95+
Docker or Podman is required for Migrate Ease. You can install Docker with the [Docker install guide](/install-guides/docker/docker-engine).
96+
97+
Alternatively, if you prefer Podman over Docker, install it with the Ubuntu package manager:
98+
99+
```bash
100+
sudo apt install -y podman
101+
```
102+
103+
## Installation
104+
105+
The Arm Linux Migration Tools package provides multiple installation methods to suit different preferences and environments. Choose the method that works best for your setup.
106+
107+
### Option 1: Single-line installation
108+
109+
The fastest way to install the Arm Linux Migration Tools is with the automated installation script. This method downloads and installs the latest release automatically:
110+
111+
```bash
112+
curl -sSL https://github.com/arm/arm-linux-migration-tools/releases/download/v3/install.sh | sudo bash
113+
```
114+
115+
The command above performs the following actions:
116+
- Downloads the installation script `install.sh` from the GitHub repository
117+
- Automatically detects your system architecture
118+
- Installs required dependencies using the package manager
119+
- Downloads the appropriate release package for your system
120+
- Installs the included tools in `/opt/arm-migration-tools/`
121+
- Creates wrapper scripts in `/usr/local/bin` for easy access
122+
- Configures a Python virtual environment with the required dependencies
123+
124+
The installation script prompts for your password when `sudo` access is required for copying files to system directories.
125+
126+
If this is your first install, review the script before running it with `curl | bash`.
127+
128+
```console
129+
curl -fsSL https://github.com/arm/arm-linux-migration-tools/releases/download/v3/install.sh | more
130+
```
131+
132+
This command displays the script so you can verify what it does before executing it.
133+
134+
### Option 2: Download and install
135+
136+
For manual installation, download the release tar file for a specific version from GitHub and install it.
137+
138+
Download the latest release file with `wget`:
139+
140+
```bash
141+
wget https://github.com/arm/arm-linux-migration-tools/releases/download/v3/arm-migration-tools-v3-arm64.tar.gz
142+
```
143+
144+
Extract the downloaded tar file to a temporary directory:
145+
146+
```bash
147+
tar xvfz arm-migration-tools-v3-arm64.tar.gz
148+
```
149+
150+
Navigate to the extracted directory and run the installation script:
151+
152+
```bash
153+
cd arm-linux-migration-tools
154+
sudo ./scripts/install.sh
155+
```
156+
157+
After successful installation, you can remove the downloaded files:
158+
159+
```bash
160+
cd ..
161+
rm -rf arm-linux-migration-tools arm-migration-tools-v3-arm64.tar.gz
162+
```
163+
164+
### Option 3: Build from source
165+
166+
To build the Arm Linux Migration Tools from source code, clone the repository and build it locally. This method is useful for developers who want to modify the tools or contribute to the project.
167+
168+
First, clone the GitHub repository to your local system:
169+
170+
```bash
171+
git clone https://github.com/arm/arm-linux-migration-tools.git
172+
```
173+
174+
Change to the cloned repository directory:
175+
176+
```bash
177+
cd arm-linux-migration-tools
178+
```
179+
180+
Run the build script to compile and prepare all tools:
181+
182+
```console
183+
./scripts/build.sh
184+
```
185+
186+
The build script performs the following tasks:
187+
- Downloads and compiles source code for the tools that have source
188+
- Resolves dependencies and builds binaries
189+
- Creates the directory structure for installation
190+
- Prepares a Python virtual environment and installs required packages
191+
- Validates that all tools build successfully
192+
193+
After a successful build, install the tools to your system:
194+
195+
```console
196+
sudo ./scripts/install.sh
197+
```
198+
199+
The install script:
200+
- Installs the locally built tools to `/opt/arm-migration-tools/`
201+
- Creates wrapper scripts in `/usr/local/bin` for easy access
202+
- Sets up the Python virtual environment with the built dependencies
203+
- Configures permissions for all installed components
204+
205+
After successful installation, you can clean up the build directory:
206+
207+
```bash
208+
cd ..
209+
rm -rf arm-linux-migration-tools
210+
```
211+
212+
## Installation locations
213+
214+
After successful installation, the Arm Linux Migration Tools are organized in a structured directory layout that separates the core tools, dependencies, and user-accessible commands. Understanding this structure helps you troubleshoot issues and manage the installation effectively.
215+
216+
All tools and their dependencies are installed in the `/opt/arm-migration-tools/` directory. Review the details of the software installed there.
217+
218+
For easy access from anywhere in your system, wrapper scripts are also installed in `/usr/local/bin/`, making it easier to invoke each tool. View the available executables there.
219+
220+
### Python virtual environment
221+
222+
A Python virtual environment is located at `/opt/arm-migration-tools/venv/` and contains all Python packages required by the migration tools.
223+
224+
The wrapper scripts in `/usr/local/bin` use this environment automatically, but you can activate it with:
225+
226+
```bash
227+
source /opt/arm-migration-tools/venv/bin/activate
228+
```
229+
230+
You can view the installed Python packages in the virtual environment:
231+
232+
```bash
233+
/opt/arm-migration-tools/venv/bin/pip list
234+
```
235+
236+
The output is similar to:
237+
238+
```output
239+
Package Version Editable project location
240+
------------------------- ---------- --------------------------------------------------------------
241+
altgraph 0.17.3
242+
annotated-types 0.7.0
243+
attrs 25.4.0
244+
blinker 1.9.0
245+
certifi 2025.11.12
246+
charset-normalizer 3.4.4
247+
click 8.3.1
248+
Flask 3.1.2
249+
gitdb 4.0.12
250+
GitPython 3.1.45
251+
idna 3.11
252+
itsdangerous 2.2.0
253+
Jinja2 3.1.4
254+
jsonschema 4.25.1
255+
jsonschema-specifications 2025.9.1
256+
lxml 5.3.2
257+
markdown-it-py 4.0.0
258+
MarkupSafe 2.1.3
259+
mdurl 0.1.2
260+
packaging 23.1
261+
pip 25.3
262+
progressbar33 2.4
263+
pycryptodome 3.19.1
264+
pydantic 2.11.7
265+
pydantic_core 2.33.2
266+
Pygments 2.19.2
267+
pyparsing 3.1.1
268+
python-magic 0.4.27
269+
referencing 0.37.0
270+
requests 2.32.5
271+
rich 14.1.0
272+
rpds-py 0.30.0
273+
ruamel.yaml 0.18.16
274+
ruamel.yaml.clib 0.2.15
275+
smmap 5.0.2
276+
topdown-tool 1.0.0 /opt/arm-migration-tools/telemetry-solution/tools/topdown_tool
277+
typing_extensions 4.15.0
278+
typing-inspection 0.4.2
279+
urllib3 2.6.2
280+
uuid 1.30
281+
Werkzeug 3.1.4
282+
XlsxWriter 3.1.2
283+
```
284+
285+
## Verify installation
286+
287+
After installing the Arm Linux Migration Tools, verify that all tools are working correctly. The package includes a comprehensive test script to validate your installation.
288+
289+
Execute the included test script to verify all 13 tools are properly installed and functional:
290+
291+
```bash
292+
/opt/arm-migration-tools/scripts/arm-migration-tools-test.sh
293+
```
294+
295+
The script performs a basic invocation of each tool to confirm it runs.
296+
297+
{{% notice Note %}}
298+
If you get an error on Topdown Tool you need to run the commands below.
299+
```console
300+
sudo sh -c "echo -1 > /proc/sys/kernel/perf_event_paranoid"
301+
sudo sh -c "echo 0 > /proc/sys/kernel/kptr_restrict"
302+
```
303+
More information about the options is in the [Linux Perf install guide](/install-guides/perf/).
304+
{{% /notice %}}
305+
306+
### Next steps
307+
308+
Now that you have successfully installed and verified the Arm Linux Migration Tools, you're ready to begin.
309+
310+
You can review the [Arm Migration overview](/migration/) for additional guidance.
311+
312+
## Uninstall
313+
314+
If you need to remove the Arm Linux Migration Tools from your system, use the included uninstall script. This process completely removes all installed components and restores your system to its previous state.
315+
316+
To uninstall the Arm Linux Migration Tools package, run the uninstall script:
317+
318+
```bash
319+
sudo /opt/arm-migration-tools/scripts/uninstall.sh
320+
```
321+
322+
The uninstall script performs the following tasks:
323+
- Removes all tools from `/opt/arm-migration-tools/` directory
324+
- Deletes all wrapper scripts from `/usr/local/bin/`
325+
- Removes the Python virtual environment and all installed dependencies

0 commit comments

Comments
 (0)