Using QEMU to emulate your hardware can result in speed issues
depending on the target and host architecture mix.
For example, using the qemux86
image in the
emulator on an Intel-based 32-bit (x86) host machine is fast
because the target and host architectures match.
On the other hand, using the qemuarm
image
on the same Intel-based host can be slower.
But, you still achieve faithful emulation of ARM-specific issues.
To speed things up, the QEMU images support using
distcc
to call a cross-compiler outside the
emulated system.
If you used runqemu
to start QEMU, and the
distccd
application is present on the host
system, any BitBake cross-compiling toolchain available from the
build system is automatically used from within QEMU simply by
calling distcc
.
You can accomplish this by defining the cross-compiler variable
(e.g. export CC="distcc"
).
Alternatively, if you are using a suitable SDK image or the
appropriate stand-alone toolchain is present, the toolchain is
also automatically used.
QEMU provides a framebuffer interface that makes standard consoles available.
Generally, headless embedded devices have a serial port. If so, you can configure the operating system of the running image to use that port to run a console. The connection uses standard IP networking.
SSH servers exist in some QEMU images.
The core-image-sato
QEMU image
has a Dropbear secure shell (SSH) server that runs
with the root password disabled.
The core-image-full-cmdline
and
core-image-lsb
QEMU images
have OpenSSH instead of Dropbear.
Including these SSH servers allow you to use standard
ssh
and scp
commands.
The core-image-minimal
QEMU image,
however, contains no SSH server.
You can use a provided, user-space NFS server to boot
the QEMU session using a local copy of the root
filesystem on the host.
In order to make this connection, you must extract a
root filesystem tarball by using the
runqemu-extract-sdk
command.
After running the command, you must then point the
runqemu
script to the extracted directory instead of a root
filesystem image file.
See the
"Running Under a Network File System (NFS) Server"
section for more information.