Changes to Emulating a Nokia N800 with QEMU between r15 and r16
'''Safe Testing Platform for the Nokia N800'''
The OpenHanded Project [http://www.o-hand.com/] [] has created patches against [QEMU] to emulate a [Nokia N800] on your desktop PC. Their instructions are geared towards using their platform ("Poky") on the emulated system, but with some work it should be possible to use the [Nokia N800] software on the emulated system. Here's how to do it:
1. Create a scratch area to work in
11. `$ mkdir ~/tmp/qemu-n800`
1. Download the QEMU CVS tree from 2008-03-07 into the scratch area
11. `$ cd ~/tmp/qemu-n800/`
11. `$ cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/qemu checkout -D 2008-03-07 qemu`
11. `$ mv qemu/ qemu-20080307`
1. Download the OpenHanded Project's patches against QEMU CVS 2008-03-07
11. `$ cd ~/tmp/qemu-n800/`
11. `$ svn checkout 'http://svn.o-hand.com/repos/poky/trunk/meta/packages/qemu/qemu-0.9.1+cvs20080307/' qemu-20080307-patches-poky`
1. Apply the patches to the QEMU source tree
11. `$ cd ~/tmp/qemu-n800/qemu-20080307-patches-poky/`
11. `$ cat series | while read patchfile patchstrip; do ( cd ../qemu-20080307/ && patch ${patchstrip} ) < "${patchfile}"; done`
1. Compile QEMU
11. `$ cd ~/tmp/qemu-n800/qemu-20080307/`
11. `$ ./configure --prefix=${HOME}/tmp/qemu-n800/instroot --disable-linux-user --enable-system --disable-darwin-user --disable-kqemu`
11. `$ make`
11. `$ make install`
1. Download the Nokia N800 Maemo Firmware
11. Go to http://maemo.org/community/wiki/HOWTO_FlashLatestNokiaImageWithLinux/
11. Download the OS for the Nokia N800 by clicking on the appropriate link, probably something like "IT OS Software Edition 2008 (version 2.2007.51-3)"
111. Note that you may need a Nokia N800 serial number for this -- if you don't have a Nokia N800, now might be a good time to get one.
11. Save the file to `~/tmp/qemu-n800/`
11. I will assume that the file is called "`RX-34_2008SE_2.2007.51-3_PR_COMBINED_MR0_ARM.bin`"
1. Download the Nokia Nseries Firmware Flashing Tool version 3
11. Download the appropriate version for your operating system from: http://tablets-dev.nokia.com/d3.php
11. Save the file to `~/tmp/qemu-n800/`
11. I will assume that the file is called "`flasher-3.0-static`"
1. Make the Firmware Flashing Tool executable
11. `$ chmod +x ~/tmp/qemu-n800/flasher-3.0-static`
1. Unpack the Nokia N800 OS2008 Firmware
11. `$ cd ~/tmp/qemu-n800/`
11. `$ mkdir os2008`
11. `$ cd os2008/`
11. `$ ../flasher-3.0-static -u -F ../RX-34_2008SE_2.2007.51-3_PR_COMBINED_MR0_ARM.bin`
1. Download the OpenHanded Project's Flash Filesystem Tool
11. `$ cd ~/tmp/qemu-n800/`
11. `$ svn cat http://svn.o-hand.com/repos/poky/trunk/scripts/poky-nokia800-flashutil > poky-nokia800-flashutil`
11. `$ chmod +x poky-nokia800-flashutil`
1. Extract the "config" partition from your Nokia N800
11. `$ cd ~/tmp/qemu-n800/`
11. `$ ssh root@nokia-n800 cat /dev/mtd1ro > config.mtd`
1. Use the OpenHanded Project's Flash Filesystem Tool to create a filesytem for the emulated system (these directions adapted from Marcin Juszkiewicz's instructions [http://blog.haerwu.biz/2008/04/11/nokia-n800-emulation/])
11. `$ cd ~/tmp/qemu-n800/`
11. `$ ./poky-nokia800-flashutil os2008/initfs.jffs2 qemu-n800.img initfs`
11. `$ ./poky-nokia800-flashutil config.mtd qemu-n800.img config`
11. `$ ./poky-nokia800-flashutil os2008/rootfs.jffs2 qemu-n800.img rootfs`
1. Start QEMU with the appropriate options
11. `$ cd ~/tmp/qemu-n800/`
11. `$ ./instroot/bin/qemu-system-arm -kernel os2008/zImage -M n800 -mtdblock qemu-n800.img -m 130 -append "root=/dev/mtdblock4 rootfstype=jffs2"`
1. Victory !
----
'''Where Can I Learn More About the OpenHanded Project ?'''
The OpenHanded Project's Subversion repository is at:
* ViewCVS: http://svn.o-hand.com/view/poky/trunk/
* Subversion: http://svn.o-hand.com/repos/poky/trunk/
----
'''What about Windows Users ?'''
QEMU compiles under [MinGW32]
----
'''No, Really, What about Windows Users ?'''
Here is a patched QEMU with Nokia N800 support for Win32 [http://www.rkeene.org/projects/info/resources/projects/nokian800/qemu/qemu-20080307-win32-nokian800.zip]. It might even work, I really have no way to try it. Here's how I compiled it (cross-compiled under Linux), though:
1. `$ CFLAGS='-I/home/rkeene/root/windows-i386/include' LDFLAGS='-L/home/rkeene/root/windows-i386/lib' ./configure --prefix=${HOME}/tmp/qemu-n800/qemu-20080307-win32-nokian800 --disable-linux-user --enable-system --disable-darwin-user --disable-kqemu --disable-vnc-tls --cpu=i386 --enable-mingw32 --cross-prefix=i586-mingw32msvc-`
1. `$ make`
1. `$ make install`
You will still need to figure out to extract the Nokia N800 firmware, and create the MTD block device contents. Good luck!
Only in r15
Only in r16 --> Modified slightly between r15 and r16