Meego Wiki
Views

SDK/Docs/1.2/Getting started with the MeeGo SDK for Windows

From MeeGo wiki
(Difference between revisions)
Jump to: navigation, search
(Develop MeeGo Applications)
(Build an app for Qt Simulator, and run it within Qt Simulator)
Line 191: Line 191:
=== Build an app for Qt Simulator, and run it within Qt Simulator===
=== Build an app for Qt Simulator, and run it within Qt Simulator===
-
* Microsoft C++ Compiler is required to build apps for Qt Simulator. You can install Microsoft Visio C++ 2008 Express Edition to meet this requirement.
+
* '''Note: MTF apps cannot be built with simulator currently, while Qt apps can be built.'''
-
* You need to install Debugging Tools for Windows for debugging apps in simulator.
+
* Microsoft C++ Compiler is required to build apps for Qt Simulator. You can install Microsoft Visio C++ 2008 Express Edition (http://www.microsoft.com/express/Downloads/#2008-Visual-CPP) to meet this requirement. It is free.
-
* Note: MTF apps cannot be built with simulator currently, while Qt apps can be built.
+
* You need to install Debugging Tools for Windows (http://msdl.microsoft.com/download/symbols/debuggers/dbg_x86_6.11.1.404.msi)
 +
for debugging apps in simulator.
==Known issues and workarounds==
==Known issues and workarounds==
Please refer to [[SDK/Docs/1.1/Troubleshooting]].
Please refer to [[SDK/Docs/1.1/Troubleshooting]].

Revision as of 03:40, 1 February 2011


Note: MeeGo 1.2 SDK has not been released yet. This page contains instructions for downloading and installing the preview version.

This page describes how to install and configure the MeeGo 1.2 SDK on your Windows development system. For more information about MeeGo SDK for Windows, check SDK/MeeGo_SDK_for_Windows.

Contents

Prerequisites

  • Hardware: Any reasonably modern IA hardware, such as 32-bit Intel Atom or Intel Core 2 CPU.
    • The SDK version of QEMU relies on kqemu to provide CPU virtualization support, but on some machines with this support, images will still not run. This is believed to be related to certain types of CPU. Below are some details of tested hardware:
    • Known to work: Intel(R) Core(TM) 2 Quad CPU, Q8200; Intel(R) i5 and i7
    • Known not to work: Intel(R) Core(TM) 2 Duo P9400 in Thinkpad T400; Intel(R) Core(TM)2 Q9400 in HP7900 Ultra-slim
  • Software: Only Windows XP 32-bit and Windows 7 32-bit are officially supported.
    Currently the QEMU emulator only works for IA targets on 32-bit Windows. If you are using 64-bit Windows, QEMU is not available.
    For support status and issues using other host operating systems, see this page.
  • Filesystem: MeeGo SDK should be installed on a hardlink-capable filesystem such as NTFS. FAT* filesystems are not hardlink-capable and not supported.

Notes and caveats

  • QEMU runtimes and targets: The following pre-defined targets and runtimes are the only ones which have been verified on Windows:
    • Targets:
      • meego-handset-ia32-1.1.2
      • meego-netbook-ia32-1.1.2
      • meego-core-armv7l-1.1.2
    • Runtimes:
      • meego-handset-ia32-qemu-1.1.20110110.1026-runtime
      • meego-netbook-ia32-qemu-1.1.20110110.1049-runtime
    Others may be listed by MADDE, but are not guaranteed to work.
  • Uninstalling: Everything you've installed as part of the SDK, including MADDE targets and runtimes, will be removed if you run the MeeGo SDK uninstaller.
  • Commands: Terminal commands in the instructions below are prefaced with "$". Do not include $ when entering the commands in your terminal.

Download and setup the MeeGo SDK

  1. Download the MeeGo SDK installer:
  2. FileDescriptionSize
    http://download3.meego.com/MeeGoSDK/1.2/meego-1.2-sdk-offline-installer-0127.exe MeeGo SDK Windows installer ~400MB
  3. Double-click on the downloaded .exe file and follow the prompts to install the SDK.
  4. If you are using Windows XP, please download a small file vcredist_x86.exe (Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)) from http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2 and install it to your system. This is not needed for Windows 7.
  5. Launch MADDE Terminal with Start > All Programs > MeeGo SDK > MADDE Terminal.
    1. Run something like "export http_proxy=XXX" if you are in an intranet.
    2. Run "mad-admin create -f meego-handset-ia32-w32-1.1" to create target "meego-handset-ia32-w32-1.1". Some huge files will be downloaded automatically.
    3. Run "mad-admin create -e -f meego-handset-ia32-w32-qemu-1.1.20101031.2201-sda-runtime" to create a runtime "meego-handset-ia32-w32-qemu-1.1.20101031.2201-sda-runtime". Some huge files will be downloaded automatically.
      • Known issue:If there is error like "/bin/mad-admin: line 25: __ml_path__/madlib/madlib.sh:" No such file or directory.". Run the /postinstall/postinstall.sh to fix paths and try again.(see bug report http://bugs.meego.com/show_bug.cgi?id=11605)
  6. Launch Qt Creator with Start > All Programs > MeeGo SDK > QtCreator.
  7. Configure Qt Creator to support MeeGo sysroot. Inside Qt Creator, follow these steps:
    1. From the Tools menu, choose Options.
    2. Click into the Qt4 section, and make sure the Qt Versions tab is open.
    3. Click the + button, and then fill the Version name and the qmake location of the MeeGo target:
      • Version name: meego-handset
      • qmake location: <MEEGO_SDK>\MADDE\targets\<target name>\bin\qmake.exe
        Replace <MEEGO_SDK> with the directory where you installed MeeGo SDK; the default is C:\MeeGoSDK_1.1; replace <target_name> with the name of the target (for example, meego-handset-ia32-w32-1.1).
      • Once added, select the new entry and click on the Rebuild button (bottom right) to build the debugging helper for this Qt version. This enables you to use debugging from Qt Creator.

      The result should look like this:
      Meego-sdk-qt4.png

Develop MeeGo Applications

  1. Create a MeeGo touch project (for handset) or Qt Gui project (for netbook)
  2. Go to the menu: File -> New File or Project -> Qt Application Project -> Meego Touch Framework Application.
    Windows sdk 2.png

    In "Project setup" dialog, choose "meego-handset".

    Meego-sdk-project-setup.png

  3. Disable shadow build
  4. "Shadow build” should be disabled before build an app. To do that, select “Projects” button in the left side of Qt Creator, and uncheck “Shadow build” in “Build Settings”.

Run an app within the QEMU Emulator

  1. Set up emulator: Install kqemu accelerator for QEMU on 32-bit Windows system
  2. Notice: The kqemu could only be used on 32-bit Windows. 64-bit Windows could not work with kqemu. You can not use emulator on 64-bit Windows. Use real device instead.

    Download package from http://wiki.qemu.org/download/kqemu-1.4.0pre1.tar.gz

    Get the kqemu.inf and kqemu.sys files from above package

    For Windows XP system, right click the kqemu.inf file and select "install".

    For Windows 7 or Windows Vista system, edit the kqemu.inf file to do below changes, and then right click the kqemu.inf, select "install".

      [DefaultInstall.NT] --> [DefaultInstall]
      [DefaultInstall.NT.Services] --> [DefaultInstall.Services]
      [Uninstall.NT] --> [Uninstall]
      [Uninstall.NT.Services] --> [Uninstall.Services]
    

    Start the kqemu manually. Select Start > All Programs > Accessories, click right mouse button over Command Prompt, and select "Run as administrator". In Command Prompt, run the following command:

    net start kqemu
    

    You need to start kqemu again after you reboot the system.


  3. Configuration for a MeeGo Emulator device

  4. Get to the menu: Tools -> Options -> Projects -> MeeGo Device Configurations. Click "Add" button to add a runtime for emulator. Set "Device type" to "MeeGo emulator"; set "Authentication type" to "Password"; set "Username" to "root"; set "Password" to "meego".
    Meego-sdk-emulator.png

  5. Set Run Configuration
  6. Click "Projects" again on the left side. Select "Run" in the MeeGo Build/Run box at the top. Make sure that the "Device configuration" is set to "MeeGo Emulator". This will ensure that QEMU is started when you run your application. You can now launch the QEMU MeeGo emulator. Click the "Start Meego emulator" icon near the bottom left corner of Qt Creator (circled in red in the screenshot below).
    Meego-sdk-run-settings.png

    Note: You can also start the Qemu from MADDE terminal. For that you need to go to Start->Programs->MeeGoSDK->MADDE Terminal. In the terminal type:

    mad list
    

    to see the runtime and target names, and then type:

    mad remote -r <runtime> poweron
    
  7. Build, run and deploy the application
  8. After QEMU starts, click the "Run" icon to run your application. Qt Creator will package and deploy your application to QEMU and start it on the target. You can see the window of your application in QEMU.
    Qemu-handset.png


  9. Debug the application
  10. You can also debug the application by clicking the "Debug" icon. Setting breakpoints and stepping are the same as local applications.
    Qemu-handset-debug.png

More about QEMU Emulator

How to SSH into QEMU Image

Anytime MeeGo is running in QEMU, you can use SSH to connect to the image from another terminal on the host system.

  1. Launch QEMU with MeeGo image
  2. From a terminal on the host, connect to the running image
  3. $ ssh meego@127.0.0.1 -p 6666
    

Two user accounts are available in the MeeGo images:
User: meego Password: meego
User: root      Password: meego

Known issues about QEMU image and workarounds for them
  1. SSH into QEMU runtime as root user.
  2. edit /usr/sbin/meego-dm to add "sleep 5"
  3. sleep 5    # new added line
    shopt -s execfail
    
  1. SSH into QEMU runtime as root user.
  2. Invoke the following command:
  3. rm -rf /etc/ssh/*key*
    
For advanced users only: How to create QEMU images used by SDK for windows

The QEMU images for SDK on Linux could be built from the kick start file by using mic-image-creator tool (command to run the mic-image-creator could be found in each ks file). Ideally the images are host platform independent. However, due to the booting time and some other issues with kqemu, minor changes were done on the images obtained from ks file so that they could boot up successfully on Windows. Suppose you have had a raw image, say abc.raw, built from kick start file in hand, below are the changes needed:

1, mount into the image

sudo mount -o loop,offset=512 abc.raw /mnt

2, edit /mnt/usr/sbin/meego-dm to add "sleep 5" to solve bug #10412: mouse udev not ready before starting X server while running handset image on QEMU windows

sleep 5    # new added line
shopt -s execfail

3, edit /mnt/boot/extlinux/extlinux.conf to add kernel option "intel_idle.max-cstate=0" to solve bug #10149: Home screen can't show up after starting emulator from Qt Creator on Windows7 32bit

append ro root=/dev/sda1 vga=current intel_idle.max-cstate=0 quiet

4, unmount the image

sudo umount /mnt


Run an app within a real device

  1. Go to Tools -> Options -> Projects -> MeeGo Device Configurations and click "Add" button. Select "Remote Device" for "Device type", input other information and give a name for this configuration
  2. Real-device.png

  3. Open your project and in the "Projects" mode, click "Run" in the little MeeGo target window, and select the configuration you just created in "Device Configuration"
  4. Meego-sdk-run-settings-real-device.png

  5. Launch terminal inside the device, and run command "xhost +" in it.
  6. Click "Run" or "Debug" on the lower left corner of Qt Creator to run or debug your application on the configured Device.

Build an app for Qt Simulator, and run it within Qt Simulator

for debugging apps in simulator.

Known issues and workarounds

Please refer to SDK/Docs/1.1/Troubleshooting.

Personal tools