Few days ago Nokia N800 tablet emulation was released into public. Richard integrated it into Poky so now we have QEMU which can be used not only to test ARM images on ARM Versatile or Sharp Zaurus but also to run on Nokia N800 tablet. Of course it is not limited to Poky images — Maemo boots very nicely on it 🙂
Booting Poky is easy:
runqemu nokia800 after building of “poky-image-sato” for “nokia800” machine. After few minutes (needed to create NAND Flash image and boot into JFFS2 rootfs) Poky desktop appears:
Booting Maemo takes few steps more now (will be improved).
- Edit “scripts/poky-qemu-internal” script and in line 154 change KERNELCMDLINE to boot from “/dev/mtdblock3” instead of “/dev/mtdblock4” as Poky do not use Maemo’s “initfs”.
- Get copy of “config” flash partition from N8x0 — simple “cat /dev/mtd1ro > config.mtd” is enough. Bad news: it does not work 🙁 And the one which works for me is not distributable as it does not came from device but was pre-generated somehow.
- Transfer it to the desktop.
- Grab OS2008 firmware image from Maemo website.
- Unpack firmware image to get kernel and images of “initfs” and “rootfs”.
poky-nokia800-flashutilto generate NAND Flash image:
poky-nokia800-flashutil initfs.jffs2 maemo-image.qemuflash initfs poky-nokia800-flashutil config.mtd maemo-image.qemuflash config poky-nokia800-flashutil rootfs.jffs2 maemo-image.qemuflash rootfs
Then “touch maemo-image” and run one command:
poky-qemu zImage maemo-image to boot it.
Basic emulation works. There is no networking yet, DSP code is not emulated and few other limitations. But it is work in progress so expect improvements.
How to get it
Patch alone can be fetched from Poky repository.
Linux binaries of QEMU with N800 support can be built with Poky by
bitbake qemu-sdk command. They will be also part of Poky Linux SDK.
poky-nokia800-flashutil instructions are fixed (thx to Yasser)
UPDATE: there is second part of that story.