Generic Linux System
Arm Virtual Hardware (AVH) provides a model of a generic Arm based workstation with Linux preinstalled. It can be used as a generic Arm development resource and assist you in building and testing your IoT applications on other virtual platforms.
Variants
The Generic Linux System is available in four variants that differ only in their support for nested virtualization and graphical output. The "Generic Linux" system is the base system supporting Arm Linux Distributions. The "Generic Linux with Hypervisor Support" adds support for software loads that include a hypervisor. In cases where a hypervisor is not included in the software stack variants without support will be faster. "Generic Linux (UI)" and "Generic Linux with Hypervisor Support (UI)" add a framebuffer device enabling a graphical UI but are otherwise identical to the "Generic Linux" and "Generic Linux with Hypervisor Support" respectively.
Supported Components
In all cases the system definition is very simple:
- 1, 2, or 4 Arm v8 CPU cores - User configurable via advanced boot options
- System Management Controller
- System Clock
- Real Time Clock (RTC)
- 1GB, 2GB, or 4GB RAM - User configurable via advanced boot options
- Interrupt Controller
- System Timer
- AMBA Bus with:
- UART
- Framebuffer
- xHCI controller with:
- Keyboard
- Mouse
- VirtIO Block - aka 15GB Storage device with about 11GB available
- VirtIO Net - aka ethernet
Note: Not all combinations of CPU Count and RAM size are configurable via the UI. The default is to match the size and count.
Default Firmware
- Pre-configured images include Ubuntu 22, Ubuntu 24, and Ubuntu 25
Installing new Firmware
- Many running systems can be replicated
- download the source image to one of the existing firmware configurations
- unpack the .zip
- replace the kernel and ramdisk files in the zip with the versions found in /boot on the running system
- replace the vdisk0 with an image of the root partition of running storage created via dd
- rezip and upload on the Configure page of create a new device
- Most Linux live CDs can be run by
- download the source image to one of the existing firmware configurations
- unpack the .zip
- unpack the .iso for the live cd
- replace the kernel and ramdisk files in the zip with the versions extracted from the .iso
- replace the vdisk0 with the .iso
- rezip and upload on the Configure page of create a new device
** Notes
- A recent version of resize2fs is needed as filesystems may be minimized. The version found in Ubuntu 24 is new enough.
- If creating/editing a new firmware or installing from a live CD set the platform name in the DTS to the magic string
Dummy Virtual Machine
. (Tested wth Ubuntu 22, 24 and 25)