

You can get a list of all supported CPUs (to be passed with -cpu option, see later below): qemu-system-arm -cpu help You can then install Debian using an ISO CD or directly from vmlinuz Netboot from vmlinuzįirst, you should decide what CPU and machine type you want to emulate. Notice that the version number of the libcstdc++ might changeĭebugging using GDB Install QEMU sudo apt-get install qemuĬreate a hard disk for your virtual machine with required capacity. Sudo apt-get install g++-aarch64-linux-gnu libstdc++-4.8-dev-arm64-cross Sudo apt-get install g++-arm-linux-gnueabihf libstdc++-4.8-dev-armhf-cross Qemu-aarch64 -L /usr/aarch64-linux-gnu/ # or qemu-aarch64-static if you install qemu-user-static If you want to run an ARM64 binary: sudo apt-get install libc6-dev-arm64-cross gcc-aarch64-linux-gnu hello # or qemu-arm-static if you install qemu-user-static

If you want a dynamically-linked executable, you've to pass the linker path too: arm-linux-gnueabihf-gcc -ohello hello.c Hello: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, Int main(void) Īrm-linux-gnueabihf-gcc -static -ohello hello.c Then compile your programs in amd64 directly: cat > hello.c Sudo apt-get install gcc-arm-linux-gnueabihf libc6-dev-armhf-cross qemu-user-static If there's no qemu-arm-static in the package list, install qemu-user-static instead # armel packages also exist Then install qemu-arm-static so that you can run ARM executables directly on linux Running ARM programs under linux (without starting QEMU VM!)įirst, cross-compile user programs with GCC-ARM toolchain. If the below is too much, you can try Ubuntu-ARMv7-Qemu but note it contains non-free blobs. You might want to read this to get an introduction to armel vs armhf.
