(→Starting QEMU) |
|||
| (12 intermediate revisions not shown) | |||
| Line 1: | Line 1: | ||
'''Under construction, experimental and unsupported''' | '''Under construction, experimental and unsupported''' | ||
| - | QEMU offers | + | QEMU offers you an easy way to try out MeeGo on ARM. |
== Building QEMU == | == Building QEMU == | ||
| - | Prerequisites | + | === Prerequisites === |
| + | * git (to get the source code) | ||
| + | * build-essential | ||
| + | * zlib (called zlib-bin and zlib1g-dev under Debian Squeeze) | ||
| + | * SDL-devel libraries. | ||
| + | * OsMesa (in case hardware opengl acceleration doesn't work). | ||
| + | |||
| + | First we compile OpenGL ES to OpenGL acceleration library. | ||
| + | |||
| + | git clone git://gitorious.org/qemu-maemo/gles-libs.git | ||
| + | cd gles-libs/dgles2 | ||
| + | ./configure --enable-glx --enable-x11 --enable-osmesa --prefix=/opt/dgles2 --enable-offscreen | ||
| + | make | ||
| + | sudo make install | ||
| + | |||
| + | Then we build MeeGo Qemu: | ||
git clone git://gitorious.org/qemu-maemo/qemu.git | git clone git://gitorious.org/qemu-maemo/qemu.git | ||
cd qemu | cd qemu | ||
| - | ./configure --target-list=arm-softmmu --enable- | + | ./configure --target-list="arm-softmmu" --enable-gles2 --gles2dir=/opt/dgles2 |
make | make | ||
| + | cp arm-softmmu/qemu-system-arm ~/bin/meego-qemu | ||
| - | + | (Note: if you experience this message "cc1: warnings being treated as errors" during compilation, you can get around it with passing "--disable-werror" to "configure" as an argument.) | |
| - | ( | + | |
== Downloading MeeGo image == | == Downloading MeeGo image == | ||
| - | + | Qemu tarball is found from: | |
| - | http:// | + | http://repo.meego.com/MeeGo/builds/trunk/latest/images/meego-handset-armv7hl-qemu/ |
| + | |||
| + | get nolo-qemu and qflasher packages from non-oss repository: | ||
| + | |||
| + | http://repo.meego.com/MeeGo/builds/trunk/latest/repos/non-oss/ia32/packages/i586/ | ||
| + | |||
| + | == Preparing MeeGo image for Qemu == | ||
| + | |||
| + | Since NAND images are missing from current autobuilds, one needs to create it manually. Replace VERSION with the version from the filename downloaded. extract qflasher and nolo-qemu rpm to current directory and: | ||
| + | |||
| + | tar xvjf meego-handset-armv7l-qemu-VERSION-raw.tar.bz2 | ||
| + | cd meego-handset-armv7l-qemu-VERSION | ||
| + | ./qflasher -m rx51 -p 3072 -x xloader-qemu.bin -s secondary-qemu.bin -k meego-handset-armv7l-qemu-vmlinuz-version-n900 -o meego-handset-armv7l-qemu-VERSION-nand.raw | ||
| - | |||
== Starting QEMU == | == Starting QEMU == | ||
| - | + | When starting Qemu, you need decide if you want to use hardware acceleration for graphics, or software rendering. Hardware rendering is known to crash qemu with Mesa-based Intel and Ati radeon drivers, While proprietary nvidia drivers are known to work. | |
| + | |||
| + | LD_LIBRARY_PATH=/opt/dgles2/lib DGLES_BACKEND=glx ~/bin/meego-qemu -M n900 \ | ||
| + | -mtdblock meego-handset-armv7l-qemu-VERSION-nand.raw -sd /dev/null -sd meego-handset-armv7l-qemu-VERSION-mmcblk0p.raw \ | ||
| + | -serial stdio -clock unix -redir tcp:5555:10.0.2.15:22 | ||
| + | |||
| + | If qemu crashes while initializing user interface, use DGLES_BACKEND=osmesa. The "-redir" option is for convinience, allowing you to ssh inside the qemu with ssh -p 5555 root@localhost. | ||
| - | You can then log | + | You can then log in with root/meego. |
Under construction, experimental and unsupported
QEMU offers you an easy way to try out MeeGo on ARM.
Contents |
First we compile OpenGL ES to OpenGL acceleration library.
git clone git://gitorious.org/qemu-maemo/gles-libs.git cd gles-libs/dgles2 ./configure --enable-glx --enable-x11 --enable-osmesa --prefix=/opt/dgles2 --enable-offscreen make sudo make install
Then we build MeeGo Qemu:
git clone git://gitorious.org/qemu-maemo/qemu.git cd qemu ./configure --target-list="arm-softmmu" --enable-gles2 --gles2dir=/opt/dgles2 make cp arm-softmmu/qemu-system-arm ~/bin/meego-qemu
(Note: if you experience this message "cc1: warnings being treated as errors" during compilation, you can get around it with passing "--disable-werror" to "configure" as an argument.)
Qemu tarball is found from:
http://repo.meego.com/MeeGo/builds/trunk/latest/images/meego-handset-armv7hl-qemu/
get nolo-qemu and qflasher packages from non-oss repository:
http://repo.meego.com/MeeGo/builds/trunk/latest/repos/non-oss/ia32/packages/i586/
Since NAND images are missing from current autobuilds, one needs to create it manually. Replace VERSION with the version from the filename downloaded. extract qflasher and nolo-qemu rpm to current directory and:
tar xvjf meego-handset-armv7l-qemu-VERSION-raw.tar.bz2 cd meego-handset-armv7l-qemu-VERSION ./qflasher -m rx51 -p 3072 -x xloader-qemu.bin -s secondary-qemu.bin -k meego-handset-armv7l-qemu-vmlinuz-version-n900 -o meego-handset-armv7l-qemu-VERSION-nand.raw
When starting Qemu, you need decide if you want to use hardware acceleration for graphics, or software rendering. Hardware rendering is known to crash qemu with Mesa-based Intel and Ati radeon drivers, While proprietary nvidia drivers are known to work.
LD_LIBRARY_PATH=/opt/dgles2/lib DGLES_BACKEND=glx ~/bin/meego-qemu -M n900 \ -mtdblock meego-handset-armv7l-qemu-VERSION-nand.raw -sd /dev/null -sd meego-handset-armv7l-qemu-VERSION-mmcblk0p.raw \ -serial stdio -clock unix -redir tcp:5555:10.0.2.15:22
If qemu crashes while initializing user interface, use DGLES_BACKEND=osmesa. The "-redir" option is for convinience, allowing you to ssh inside the qemu with ssh -p 5555 root@localhost.
You can then log in with root/meego.