# Installing the latest qemu-system-arm on Ubuntu 22.04.4 LTS
## Language
[English](#English) | [中文](#中文)
## English
### Created Date
2025/04/01
### Environment
ubuntu-22.04.4-desktop-amd64.iso
> This is console output:
> ```console=
> $ cat /etc/os-release
> PRETTY_NAME="Ubuntu 22.04.4 LTS"
> NAME="Ubuntu"
> VERSION_ID="22.04"
> VERSION="22.04.4 LTS (Jammy Jellyfish)"
> VERSION_CODENAME=jammy
> ID=ubuntu
> ID_LIKE=debian
> HOME_URL="https://www.ubuntu.com/"
> SUPPORT_URL="https://help.ubuntu.com/"
> BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
> PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
> UBUNTU_CODENAME=jammy
>
> $ uname -a
> Linux wilkes-evt 6.8.0-52-generic #53~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Jan 15 19:18:46 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
> ```
### Symptom
None
### Cause
The qemu-system-arm version 6.2 was installed from the APT server, but the `ast1030-evb` is not listed among the supported machines.
### Solution
#### Buiild
1. Install a few prerequisite packages which let qemu build successfully.
- System's packages:
```shell
sudo apt install -y build-essential libglib2.0-dev libpixman-1-dev zlib1g-dev git python3-pip ninja-build
```
- Python's packages:
```shell
pip install tomli
```
2. Download QEMU source code and enter the directory.
```shell
git clone https://gitlab.com/qemu-project/qemu.git
cd qemu
```
3. Configure the build target.
- To support ARM platform
```shell
./configure --target-list=arm-softmmu,arm-linux-user --enable-slirp
```
> `--target-list=arm-softmmu`:set target list, it's for system mode.
>
> `--target-list=arm-linux-user`:set target list, it's for user mode.
>
> `--enable-slirp`:libslirp user mode network backend support
- To support AARCH64 platform
```shell
./configure --target-list=aarch64-softmmu,aarch64-linux-user --enable-slirp
```
> `--target-list=aarch64-softmmu`:set target list, it's for system mode.
>
> `--target-list=aarch64-linux-user`:set target list, it's for user mode.
>
> `--enable-slirp`:libslirp user mode network backend support
- Both support ARM and AARCH64 platform
```shell
./configure --target-list=arm-softmmu,arm-linux-user,aarch64-softmmu,aarch64-linux-user --enable-slirp
```
4. Compile QEMU.
```shell
make -j$(nproc)
```
#### Method 1:Use directly
1. Execute binary in build directory.
- Check version for ARM platform:
```shell
./build/qemu-system-arm --version
```
> This is console output:
> ```console=
> $ ./build/qemu-system-arm --version
> QEMU emulator version 10.0.50 (v10.0.0-529-g5134cf9b5d)
> Copyright (c) 2003-2025 Fabrice Bellard and the QEMU Project developers
> ```
- Check version for AARCH64 platform:
```shell
./build/qemu-system-aarch64 --version
```
> This is console output:
> ```console=
> $ ./build/qemu-system-aarch64 --version
> QEMU emulator version 10.0.50 (v10.0.0-529-g5134cf9b5d)
> Copyright (c) 2003-2025 Fabrice Bellard and the QEMU Project developers
> ```
#### Method 2:Install into system environment
1. Install into system.
```shell
sudo make install
```
2. Verify the installation is success.
```shell
qemu-system-arm --version
```
> This is console output:
> ```console=
> $ qemu-system-arm --version
> QEMU emulator version 10.0.50 (v10.0.0-529-g5134cf9b5d)
> Copyright (c) 2003-2025 Fabrice Bellard and the QEMU Project developers
> ```
#### Extension
`ast1030-evb` is supported in the latest version.
> This is console output:
> ```console=
> $ qemu-system-arm -machine help
> Supported machines are:
> ast1030-evb Aspeed AST1030 MiniBMC (Cortex-M4)
> ast2500-evb Aspeed AST2500 EVB (ARM1176)
> ast2600-evb Aspeed AST2600 EVB (Cortex-A7)
> b-l475e-iot01a B-L475E-IOT01A Discovery Kit (Cortex-M4)
> bletchley-bmc Facebook Bletchley BMC (Cortex-A7)
> bpim2u Bananapi M2U (Cortex-A7)
> canon-a1100 Canon PowerShot A1100 IS (ARM946)
> collie Sharp SL-5500 (Collie) PDA (SA-1110)
> cubieboard cubietech cubieboard (Cortex-A8)
> emcraft-sf2 SmartFusion2 SOM kit from Emcraft (M2S010)
> fby35-bmc Facebook fby35 BMC (Cortex-A7)
> fby35 Meta Platforms fby35
> fp5280g2-bmc Inspur FP5280G2 BMC (ARM1176)
> fuji-bmc Facebook Fuji BMC (Cortex-A7)
> g220a-bmc Bytedance G220A BMC (ARM1176)
> highbank Calxeda Highbank (ECX-1000)
> imx25-pdk ARM i.MX25 PDK board (ARM926)
> integratorcp ARM Integrator/CP (ARM926EJ-S)
> kudo-bmc Kudo BMC (Cortex-A9)
> kzm ARM KZM Emulation Baseboard (ARM1136)
> lm3s6965evb Stellaris LM3S6965EVB (Cortex-M3)
> lm3s811evb Stellaris LM3S811EVB (Cortex-M3)
> mcimx6ul-evk Freescale i.MX6UL Evaluation Kit (Cortex-A7)
> mcimx7d-sabre Freescale i.MX7 DUAL SABRE (Cortex-A7)
> microbit BBC micro:bit (Cortex-M0)
> midway Calxeda Midway (ECX-2000)
> mori-bmc Mori BMC (Cortex-A9)
> mps2-an385 ARM MPS2 with AN385 FPGA image for Cortex-M3
> mps2-an386 ARM MPS2 with AN386 FPGA image for Cortex-M4
> mps2-an500 ARM MPS2 with AN500 FPGA image for Cortex-M7
> mps2-an505 ARM MPS2 with AN505 FPGA image for Cortex-M33
> mps2-an511 ARM MPS2 with AN511 DesignStart FPGA image for Cortex-M3
> mps2-an521 ARM MPS2 with AN521 FPGA image for dual Cortex-M33
> mps3-an524 ARM MPS3 with AN524 FPGA image for dual Cortex-M33
> mps3-an536 ARM MPS3 with AN536 FPGA image for Cortex-R52
> mps3-an547 ARM MPS3 with AN547 FPGA image for Cortex-M55
> musca-a ARM Musca-A board (dual Cortex-M33)
> musca-b1 ARM Musca-B1 board (dual Cortex-M33)
> musicpal Marvell 88w8618 / MusicPal (ARM926EJ-S)
> netduino2 Netduino 2 Machine (Cortex-M3)
> netduinoplus2 Netduino Plus 2 Machine (Cortex-M4)
> none empty machine
> npcm750-evb Nuvoton NPCM750 Evaluation Board (Cortex-A9)
> nuri Samsung NURI board (Exynos4210)
> olimex-stm32-h405 Olimex STM32-H405 (Cortex-M4)
> orangepi-pc Orange Pi PC (Cortex-A7)
> palmetto-bmc OpenPOWER Palmetto BMC (ARM926EJ-S)
> qcom-dc-scm-v1-bmc Qualcomm DC-SCM V1 BMC (Cortex A7)
> qcom-firework-bmc Qualcomm DC-SCM V1/Firework BMC (Cortex A7)
> quanta-gbs-bmc Quanta GBS (Cortex-A9)
> quanta-gsj Quanta GSJ (Cortex-A9)
> quanta-q71l-bmc Quanta-Q71l BMC (ARM926EJ-S)
> rainier-bmc IBM Rainier BMC (Cortex-A7)
> raspi0 Raspberry Pi Zero (revision 1.2)
> raspi1ap Raspberry Pi A+ (revision 1.1)
> raspi2b Raspberry Pi 2B (revision 1.1)
> realview-eb ARM RealView Emulation Baseboard (ARM926EJ-S)
> realview-eb-mpcore ARM RealView Emulation Baseboard (ARM11MPCore)
> realview-pb-a8 ARM RealView Platform Baseboard for Cortex-A8
> realview-pbx-a9 ARM RealView Platform Baseboard Explore for Cortex-A9
> romulus-bmc OpenPOWER Romulus BMC (ARM1176)
> sabrelite Freescale i.MX6 Quad SABRE Lite Board (Cortex-A9)
> smdkc210 Samsung SMDKC210 board (Exynos4210)
> sonorapass-bmc OCP SonoraPass BMC (ARM1176)
> stm32vldiscovery ST STM32VLDISCOVERY (Cortex-M3)
> supermicro-x11spi-bmc Supermicro X11 SPI BMC (ARM1176)
> supermicrox11-bmc Supermicro X11 BMC (ARM926EJ-S)
> sx1 Siemens SX1 (OMAP310) V2
> sx1-v1 Siemens SX1 (OMAP310) V1
> tiogapass-bmc Facebook Tiogapass BMC (ARM1176)
> versatileab ARM Versatile/AB (ARM926EJ-S)
> versatilepb ARM Versatile/PB (ARM926EJ-S)
> vexpress-a15 ARM Versatile Express for Cortex-A15
> vexpress-a9 ARM Versatile Express for Cortex-A9
> virt QEMU 10.0 ARM Virtual Machine (alias of virt-10.0)
> virt-10.0 QEMU 10.0 ARM Virtual Machine
> virt-2.10 QEMU 2.10 ARM Virtual Machine (deprecated)
> virt-2.11 QEMU 2.11 ARM Virtual Machine (deprecated)
> virt-2.12 QEMU 2.12 ARM Virtual Machine (deprecated)
> virt-2.6 QEMU 2.6 ARM Virtual Machine (deprecated)
> virt-2.7 QEMU 2.7 ARM Virtual Machine (deprecated)
> virt-2.8 QEMU 2.8 ARM Virtual Machine (deprecated)
> virt-2.9 QEMU 2.9 ARM Virtual Machine (deprecated)
> virt-3.0 QEMU 3.0 ARM Virtual Machine (deprecated)
> virt-3.1 QEMU 3.1 ARM Virtual Machine (deprecated)
> virt-4.0 QEMU 4.0 ARM Virtual Machine (deprecated)
> virt-4.1 QEMU 4.1 ARM Virtual Machine (deprecated)
> virt-4.2 QEMU 4.2 ARM Virtual Machine (deprecated)
> virt-5.0 QEMU 5.0 ARM Virtual Machine (deprecated)
> virt-5.1 QEMU 5.1 ARM Virtual Machine (deprecated)
> virt-5.2 QEMU 5.2 ARM Virtual Machine (deprecated)
> virt-6.0 QEMU 6.0 ARM Virtual Machine (deprecated)
> virt-6.1 QEMU 6.1 ARM Virtual Machine (deprecated)
> virt-6.2 QEMU 6.2 ARM Virtual Machine (deprecated)
> virt-7.0 QEMU 7.0 ARM Virtual Machine
> virt-7.1 QEMU 7.1 ARM Virtual Machine
> virt-7.2 QEMU 7.2 ARM Virtual Machine
> virt-8.0 QEMU 8.0 ARM Virtual Machine
> virt-8.1 QEMU 8.1 ARM Virtual Machine
> virt-8.2 QEMU 8.2 ARM Virtual Machine
> virt-9.0 QEMU 9.0 ARM Virtual Machine
> virt-9.1 QEMU 9.1 ARM Virtual Machine
> virt-9.2 QEMU 9.2 ARM Virtual Machine
> witherspoon-bmc OpenPOWER Witherspoon BMC (ARM1176)
> xilinx-zynq-a9 Xilinx Zynq 7000 Platform Baseboard for Cortex-A9
> yosemitev2-bmc Facebook YosemiteV2 BMC (ARM1176)
> ```
### Reference
None
## 中文
### 建立日期
2025/04/01
### 環境
ubuntu-22.04.4-desktop-amd64.iso
> 這是控制台輸出:
> ```console=
> $ cat /etc/os-release
> PRETTY_NAME="Ubuntu 22.04.4 LTS"
> NAME="Ubuntu"
> VERSION_ID="22.04"
> VERSION="22.04.4 LTS (Jammy Jellyfish)"
> VERSION_CODENAME=jammy
> ID=ubuntu
> ID_LIKE=debian
> HOME_URL="https://www.ubuntu.com/"
> SUPPORT_URL="https://help.ubuntu.com/"
> BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
> PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
> UBUNTU_CODENAME=jammy
>
> $ uname -a
> Linux wilkes-evt 6.8.0-52-generic #53~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Jan 15 19:18:46 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
> ```
### 症狀
無
### 原因
從 APT 伺服器安裝的 qemu-system-arm 版本是 6.2 ,但「ast1030-evb」未列在支援的機器中。
### 解決方案
#### 建造
1. 安裝一些使 qemu 成功建置的必備軟體包。
- 系統的軟體包:
```shell
sudo apt install -y build-essential libglib2.0-dev libpixman-1-dev zlib1g-dev git python3-pip ninja-build
```
- Python 的軟體包:
```shell
pip install tomli
```
2. 下載 QEMU 原始碼並進入目錄。
```shell
git clone https://gitlab.com/qemu-project/qemu.git
cd qemu
```
3. 配置建置目標。
- 支援 ARM 平台
```shell
./configure --target-list=arm-softmmu,arm-linux-user --enable-slirp
```
> `--target-list=arm-softmmu`:設定目標,用於系統模式。
>
> `--target-list=arm-linux-user`:設定目標,用於使用者模式。
>
> `--enable-slirp`:libslirp 用戶模式網路支持。
- 支援 AARCH64 平台
```shell
./configure --target-list=aarch64-softmmu,aarch64-linux-user --enable-slirp
```
> `--target-list=aarch64-softmmu`:設定目標,用於系統模式。
>
> `--target-list=aarch64-linux-user`:設定目標,用於使用者模式。
>
> `--enable-slirp`:libslirp 用戶模式網路支持。
- 支援 ARM 和 AARCH64 平台
```shell
./configure --target-list=arm-softmmu,arm-linux-user,aarch64-softmmu,aarch64-linux-user --enable-slirp
```
4. 編譯 QEMU。
```shell
make -j$(nproc)
```
#### 方法 1:直接使用
1. 在建置目錄中執行二進位檔案。
- 檢查 ARM 平台的版本:
```shell
./build/qemu-system-arm --version
```
> 這是控制台輸出:
> ```console=
> $ ./build/qemu-system-arm --version
> QEMU emulator version 10.0.50 (v10.0.0-529-g5134cf9b5d)
> Copyright (c) 2003-2025 Fabrice Bellard and the QEMU Project developers
> ```
- 檢查 AARCH64 平台的版本:
```shell
./build/qemu-system-aarch64 --version
```
> 這是控制台輸出:
> ```console=
> $ ./build/qemu-system-aarch64 --version
> QEMU emulator version 10.0.50 (v10.0.0-529-g5134cf9b5d)
> Copyright (c) 2003-2025 Fabrice Bellard and the QEMU Project developers
> ```
#### 方法 2:安裝到系統環境中
1. 安裝到系統中。
```shell
sudo make install
```
2. 驗證安裝是否成功。
```shell
qemu-system-arm --version
```
> 這是控制台輸出:
> ```console=
> $ qemu-system-arm --version
> QEMU emulator version 10.0.50 (v10.0.0-529-g5134cf9b5d)
> Copyright (c) 2003-2025 Fabrice Bellard and the QEMU Project developers
> ```
#### 延伸
最新版本支援`ast1030-evb`。
> 這是控制台輸出:
> ```console=
> $ qemu-system-arm -machine help
> Supported machines are:
> ast1030-evb Aspeed AST1030 MiniBMC (Cortex-M4)
> ast2500-evb Aspeed AST2500 EVB (ARM1176)
> ast2600-evb Aspeed AST2600 EVB (Cortex-A7)
> b-l475e-iot01a B-L475E-IOT01A Discovery Kit (Cortex-M4)
> bletchley-bmc Facebook Bletchley BMC (Cortex-A7)
> bpim2u Bananapi M2U (Cortex-A7)
> canon-a1100 Canon PowerShot A1100 IS (ARM946)
> collie Sharp SL-5500 (Collie) PDA (SA-1110)
> cubieboard cubietech cubieboard (Cortex-A8)
> emcraft-sf2 SmartFusion2 SOM kit from Emcraft (M2S010)
> fby35-bmc Facebook fby35 BMC (Cortex-A7)
> fby35 Meta Platforms fby35
> fp5280g2-bmc Inspur FP5280G2 BMC (ARM1176)
> fuji-bmc Facebook Fuji BMC (Cortex-A7)
> g220a-bmc Bytedance G220A BMC (ARM1176)
> highbank Calxeda Highbank (ECX-1000)
> imx25-pdk ARM i.MX25 PDK board (ARM926)
> integratorcp ARM Integrator/CP (ARM926EJ-S)
> kudo-bmc Kudo BMC (Cortex-A9)
> kzm ARM KZM Emulation Baseboard (ARM1136)
> lm3s6965evb Stellaris LM3S6965EVB (Cortex-M3)
> lm3s811evb Stellaris LM3S811EVB (Cortex-M3)
> mcimx6ul-evk Freescale i.MX6UL Evaluation Kit (Cortex-A7)
> mcimx7d-sabre Freescale i.MX7 DUAL SABRE (Cortex-A7)
> microbit BBC micro:bit (Cortex-M0)
> midway Calxeda Midway (ECX-2000)
> mori-bmc Mori BMC (Cortex-A9)
> mps2-an385 ARM MPS2 with AN385 FPGA image for Cortex-M3
> mps2-an386 ARM MPS2 with AN386 FPGA image for Cortex-M4
> mps2-an500 ARM MPS2 with AN500 FPGA image for Cortex-M7
> mps2-an505 ARM MPS2 with AN505 FPGA image for Cortex-M33
> mps2-an511 ARM MPS2 with AN511 DesignStart FPGA image for Cortex-M3
> mps2-an521 ARM MPS2 with AN521 FPGA image for dual Cortex-M33
> mps3-an524 ARM MPS3 with AN524 FPGA image for dual Cortex-M33
> mps3-an536 ARM MPS3 with AN536 FPGA image for Cortex-R52
> mps3-an547 ARM MPS3 with AN547 FPGA image for Cortex-M55
> musca-a ARM Musca-A board (dual Cortex-M33)
> musca-b1 ARM Musca-B1 board (dual Cortex-M33)
> musicpal Marvell 88w8618 / MusicPal (ARM926EJ-S)
> netduino2 Netduino 2 Machine (Cortex-M3)
> netduinoplus2 Netduino Plus 2 Machine (Cortex-M4)
> none empty machine
> npcm750-evb Nuvoton NPCM750 Evaluation Board (Cortex-A9)
> nuri Samsung NURI board (Exynos4210)
> olimex-stm32-h405 Olimex STM32-H405 (Cortex-M4)
> orangepi-pc Orange Pi PC (Cortex-A7)
> palmetto-bmc OpenPOWER Palmetto BMC (ARM926EJ-S)
> qcom-dc-scm-v1-bmc Qualcomm DC-SCM V1 BMC (Cortex A7)
> qcom-firework-bmc Qualcomm DC-SCM V1/Firework BMC (Cortex A7)
> quanta-gbs-bmc Quanta GBS (Cortex-A9)
> quanta-gsj Quanta GSJ (Cortex-A9)
> quanta-q71l-bmc Quanta-Q71l BMC (ARM926EJ-S)
> rainier-bmc IBM Rainier BMC (Cortex-A7)
> raspi0 Raspberry Pi Zero (revision 1.2)
> raspi1ap Raspberry Pi A+ (revision 1.1)
> raspi2b Raspberry Pi 2B (revision 1.1)
> realview-eb ARM RealView Emulation Baseboard (ARM926EJ-S)
> realview-eb-mpcore ARM RealView Emulation Baseboard (ARM11MPCore)
> realview-pb-a8 ARM RealView Platform Baseboard for Cortex-A8
> realview-pbx-a9 ARM RealView Platform Baseboard Explore for Cortex-A9
> romulus-bmc OpenPOWER Romulus BMC (ARM1176)
> sabrelite Freescale i.MX6 Quad SABRE Lite Board (Cortex-A9)
> smdkc210 Samsung SMDKC210 board (Exynos4210)
> sonorapass-bmc OCP SonoraPass BMC (ARM1176)
> stm32vldiscovery ST STM32VLDISCOVERY (Cortex-M3)
> supermicro-x11spi-bmc Supermicro X11 SPI BMC (ARM1176)
> supermicrox11-bmc Supermicro X11 BMC (ARM926EJ-S)
> sx1 Siemens SX1 (OMAP310) V2
> sx1-v1 Siemens SX1 (OMAP310) V1
> tiogapass-bmc Facebook Tiogapass BMC (ARM1176)
> versatileab ARM Versatile/AB (ARM926EJ-S)
> versatilepb ARM Versatile/PB (ARM926EJ-S)
> vexpress-a15 ARM Versatile Express for Cortex-A15
> vexpress-a9 ARM Versatile Express for Cortex-A9
> virt QEMU 10.0 ARM Virtual Machine (alias of virt-10.0)
> virt-10.0 QEMU 10.0 ARM Virtual Machine
> virt-2.10 QEMU 2.10 ARM Virtual Machine (deprecated)
> virt-2.11 QEMU 2.11 ARM Virtual Machine (deprecated)
> virt-2.12 QEMU 2.12 ARM Virtual Machine (deprecated)
> virt-2.6 QEMU 2.6 ARM Virtual Machine (deprecated)
> virt-2.7 QEMU 2.7 ARM Virtual Machine (deprecated)
> virt-2.8 QEMU 2.8 ARM Virtual Machine (deprecated)
> virt-2.9 QEMU 2.9 ARM Virtual Machine (deprecated)
> virt-3.0 QEMU 3.0 ARM Virtual Machine (deprecated)
> virt-3.1 QEMU 3.1 ARM Virtual Machine (deprecated)
> virt-4.0 QEMU 4.0 ARM Virtual Machine (deprecated)
> virt-4.1 QEMU 4.1 ARM Virtual Machine (deprecated)
> virt-4.2 QEMU 4.2 ARM Virtual Machine (deprecated)
> virt-5.0 QEMU 5.0 ARM Virtual Machine (deprecated)
> virt-5.1 QEMU 5.1 ARM Virtual Machine (deprecated)
> virt-5.2 QEMU 5.2 ARM Virtual Machine (deprecated)
> virt-6.0 QEMU 6.0 ARM Virtual Machine (deprecated)
> virt-6.1 QEMU 6.1 ARM Virtual Machine (deprecated)
> virt-6.2 QEMU 6.2 ARM Virtual Machine (deprecated)
> virt-7.0 QEMU 7.0 ARM Virtual Machine
> virt-7.1 QEMU 7.1 ARM Virtual Machine
> virt-7.2 QEMU 7.2 ARM Virtual Machine
> virt-8.0 QEMU 8.0 ARM Virtual Machine
> virt-8.1 QEMU 8.1 ARM Virtual Machine
> virt-8.2 QEMU 8.2 ARM Virtual Machine
> virt-9.0 QEMU 9.0 ARM Virtual Machine
> virt-9.1 QEMU 9.1 ARM Virtual Machine
> virt-9.2 QEMU 9.2 ARM Virtual Machine
> witherspoon-bmc OpenPOWER Witherspoon BMC (ARM1176)
> xilinx-zynq-a9 Xilinx Zynq 7000 Platform Baseboard for Cortex-A9
> yosemitev2-bmc Facebook YosemiteV2 BMC (ARM1176)
> ```
### 參考
無