Meego Wiki
Views

ARM/Meego on Qemu

From MeeGo wiki
< ARM(Difference between revisions)
Jump to: navigation, search
(Building QEMU)
(Undo revision 49819 by Shanieley (talk) Spam)
 
(19 intermediate revisions not shown)
Line 1: Line 1:
'''Under construction, experimental and unsupported'''
'''Under construction, experimental and unsupported'''
-
QEMU offers one an easy way to try out MeeGo on ARM
+
QEMU offers you an easy way to try out MeeGo on ARM.
== Building QEMU ==
== Building QEMU ==
-
Prerequisites: git, build-essential, zlib and sdl libraries.
+
=== 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
+
  ./configure --target-list="arm-softmmu" --enable-gles2 --gles2dir=/opt/dgles2
  make
  make
 +
cp arm-softmmu/qemu-system-arm ~/bin/meego-qemu
-
The qemu binary will appear as arm-softmmu/qemu-system-arm
+
(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 ==
-
The MeeGo QEMU  nand image( meego_qemu_nand.img.gz )  is available from:
+
Qemu tarball is found from:
-
http://tablets-dev.nokia.com/meego-codedrop.php
+
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
-
Uncompress the image with "gunzip" command.
 
== Starting QEMU ==  
== Starting QEMU ==  
-
qemu-system-arm -M n900 -mtdblock meego_qemu_nand.img  -serial stdio -clock unix
+
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.

Latest revision as of 10:26, 12 April 2012

Under construction, experimental and unsupported

QEMU offers you an easy way to try out MeeGo on ARM.

Contents

Building QEMU

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 
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.)

Downloading MeeGo image

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/

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

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.

Personal tools