Meego Wiki
From MeeGo wiki
< SDK(Difference between revisions)
Jump to: navigation, search
 
(4 intermediate revisions not shown)
Line 3: Line 3:
MeeGo Qemu team maintains QEMU system emulator for MeeGo SDK and QEMU linux-user emulator for OBS builders. Legacy support for scratchbox and Nokia N900 Running Maemo5 is provided as well.
MeeGo Qemu team maintains QEMU system emulator for MeeGo SDK and QEMU linux-user emulator for OBS builders. Legacy support for scratchbox and Nokia N900 Running Maemo5 is provided as well.
-
== Consumers of QEMU ==
+
== Users of QEMU ==
Currently each and every consumer of QEMU under the MeeGo umbrella has their own version of Qemu. The plan is to migrate all this versions to a single repository, merge all code together, and then start tagging releases which will be same for all.
Currently each and every consumer of QEMU under the MeeGo umbrella has their own version of Qemu. The plan is to migrate all this versions to a single repository, merge all code together, and then start tagging releases which will be same for all.
-
* MeeGo Qemu
+
* MeeGo ARM Qemu
-
** OpenGL ES 2.0 accelerated QEMU
+
** OpenGL ES 2.0 accelerated ARM [[ARM/Meego_on_Qemu| QEMU for N900]].
-
** http://wiki.meego.com/ARM/Meego_on_Qemu
+
** Smoke test: Maemo5 and latest Meego N900 images boot and display UI
** Smoke test: Maemo5 and latest Meego N900 images boot and display UI
* Qemugl
* Qemugl
-
** OpenGL accelerated Qemu for intel images
+
** OpenGL accelerated X86 [[SDK/Docs/1.1/Building_QEMU_Tools| QEMU for X86]] handset and netbook images.
-
** http://wiki.meego.com/SDK/Docs/1.1/Building_QEMU_Tools
+
** Smoke test: That x86 handset and netbook images boot and display UI
** Smoke test: That x86 handset and netbook images boot and display UI
* OBS Qemu
* OBS Qemu
Line 98: Line 96:
  make
  make
-
=== Creating MeeGo Qemu images for N900 ===
+
=== Creating MeeGo Qemu images ===
-
=== Creating MeeGo Qemu images for Intel ===
+
* Meego [[SDK/Tutorials/Image_Creation| N900 Qemu Image instructions]] for 1.1.
-
 
+
* Meego [[SDK/Docs/1.1/Building_QEMU_Tools| X86 Qemu Image instructions]] for 1.1.
-
Meego [http://wiki.meego.com/SDK/Docs/1.1/Building_QEMU_Tools Qemu Image instructions] for 1.1.
+
=== Troubleshooting ===
=== Troubleshooting ===
Line 130: Line 127:
| Zhiyuan Lv || OpenGL and OpenGL ES enabling and acceleration || Team member || Intel || zhiyuan
| Zhiyuan Lv || OpenGL and OpenGL ES enabling and acceleration || Team member || Intel || zhiyuan
|-
|-
-
| Jun Tian || Skin || Team member || Intel || juntian
+
| Jun Tian || Skin and Device simulation || Team member || Intel || juntian
 +
|-
 +
| Joonas Lahtinen || OpenGL ES acceleration framework design || Team member || Nomovok || dolphin
|}
|}
Line 137: Line 136:
* [[SDK/Qemu/Tasks]] task tracker on wiki
* [[SDK/Qemu/Tasks]] task tracker on wiki
* [[SDK/Qemu/OpenGLES]] OpenGL ES plan for x86 handset on the wiki
* [[SDK/Qemu/OpenGLES]] OpenGL ES plan for x86 handset on the wiki
 +
* [[SDK/Emulator]] MeeGo X86 Emulator device simulation task tracker
 +
* [[SDK/Emulator/Skin]] MeeGo Skin usage manual
* [http://lists.meego.com/listinfo/meego-dev meego-dev@meego.com mailing list], please prefix with 'QEMU' for team related topics.
* [http://lists.meego.com/listinfo/meego-dev meego-dev@meego.com mailing list], please prefix with 'QEMU' for team related topics.
* [http://webchat.freenode.net/?channels=meego-sdk #meego-qemu IRC channel on irc.freenode.net]([http://trac.tspre.org/merbot/freenode/%23meego-sdk/ IRC channel logs])
* [http://webchat.freenode.net/?channels=meego-sdk #meego-qemu IRC channel on irc.freenode.net]([http://trac.tspre.org/merbot/freenode/%23meego-sdk/ IRC channel logs])

Latest revision as of 10:03, 11 March 2011

Contents

MeeGo QEMU Team

MeeGo Qemu team maintains QEMU system emulator for MeeGo SDK and QEMU linux-user emulator for OBS builders. Legacy support for scratchbox and Nokia N900 Running Maemo5 is provided as well.

Users of QEMU

Currently each and every consumer of QEMU under the MeeGo umbrella has their own version of Qemu. The plan is to migrate all this versions to a single repository, merge all code together, and then start tagging releases which will be same for all.

  • MeeGo ARM Qemu
    • OpenGL ES 2.0 accelerated ARM QEMU for N900.
    • Smoke test: Maemo5 and latest Meego N900 images boot and display UI
  • Qemugl
    • OpenGL accelerated X86 QEMU for X86 handset and netbook images.
    • Smoke test: That x86 handset and netbook images boot and display UI
  • OBS Qemu
    • Used internaly by OBS to build ARM packages
    • url?
    • Smoke test: arm build round without regressions
  • Scratchbox Qemu
    • Used by scratchbox to allow building ARM packages
    • url: merged with MeeGo Qemu.
    • Smoke test: arm build round without regressions

Development

The main repository For MeeGo Qemu is MeeGo Qemu on gitorious. Upstream is at qemu.org.

Version control strategy

In this documentation we shall refer to upstream git as "origin" and the the MeeGo QEMU gitorious repository as "meego".

$ git clone git://git.qemu.org/qemu.git
$ cd qemu
$ git remote add meego git://gitorious.org/qemu-maemo/qemu.git
$ git fetch meego

The rule of thumb in development is "keep up to date with upstream". To achieve this, we rebase with upstream often. rebasing causes some pain, but that should be seen as an incentive to push the patches upstream.

Qemu head (origin/master)
|
(periodic rebase)
|
MeeGo Qemu master (meego/master)
|
|
Everyones working branches ^

Where the working branches are "temporary" in nature. Eg once the code in the working branches have been applied (via git merge/cherry-pick/rebase or by hand), that working branch is thrown away and a new branch is created.

Being branches on top of rebased branches means one cant just "merge" changes from upstream branches - one either must rebase their own branch, or cherrypick selected changes in.

Submitting merge requests to MeeGo QEMU

Gitorious provides "request merge" functionality, which can be used to propose changes to MeeGo Qemu.

Alternatively, people with commit access to MeeGo gitorious can push their branches for merging to MeeGo gitorious directly.git offers infinite amount of was to do that, but there is two that are probably most practical

  • Cherry-pick commits from your working branch
$ git fetch meego # Make sure you are up to date
$ git checkout -b temp-branch-name meego/master
$ git log your-local-working-branch # pick the commit-id's of changes you want
$ git cherry-pick commit-id
$ vi foo.c # cleanup if necessary
$ commit -a --amend # improve commit message if necessary
$ git push meego temp-branch-name
  • rebase working branch on top of latest dvcs
$ git fetch meego
$ git checkout -b temp-branch-name your-local-working-branch
$ git rebase -i meego/master
$ # follow instructions on editor
$ git push master temp-branch-name

Where the working branches are "temporary" in nature. Eg once the code in the working branches have been applied (via git merge/cherry-pick/rebase or by hand), that working branch is thrown away and a new branch is created.

Being branches on top of rebased branches means one cant just "merge"changes from upstream branches - one either must rebase their own branch, or cherrypick selected changes in.

Documentation

Building Qemu

For ARM

git clone git://gitorious.org/qemu-maemo/gles-libs.git
cd gles-libs/dgles2
./configure --enable-glx --enable-x11 --enable-osmesa --prefix=/opt/dgles2
make install
git clone git://gitorious.org/qemu-maemo/qemu.git 
cd qemu
./configure --target-list="arm-softmmu arm-linux-user" --enable-gles2 --gles2dir=/opt/dgles2
make

Creating MeeGo Qemu images

Troubleshooting

The team and the work

This QEMU adaptation team maintains and develops Qemu for MeeGo.

The current team members are (in no particular order):

Name Area Role Affiliation IRC nickname
Riku Voipio Linux-user and Arm system Maintainer Nokia suihkulokki
Juha Riihimäki Arm system Team member Nokia __jr
Fathi Boudra Package maintainer Nokia fabo
Haitao Feng OpenGL and OpenGL ES enabling and acceleration Team member Intel haitao
Zhiyuan Lv OpenGL and OpenGL ES enabling and acceleration Team member Intel zhiyuan
Jun Tian Skin and Device simulation Team member Intel juntian
Joonas Lahtinen OpenGL ES acceleration framework design Team member Nomovok dolphin

Our collaboration spaces are:

Personal tools