(→How to create QEMU images used by SDK for windows) |
(→For advanced users only: How to create QEMU images used by SDK for windows) |
||
| (31 intermediate revisions not shown) | |||
| Line 5: | Line 5: | ||
[[Category:windows]] | [[Category:windows]] | ||
| - | This page describes how to install and configure the MeeGo 1.1 SDK on your Windows development system. | + | This page describes how to install and configure the MeeGo 1.1 SDK on your Windows development system. For more information about MeeGo SDK for Windows, check [[SDK/MeeGo_SDK_for_Windows]]. |
== Prerequisites == | == Prerequisites == | ||
| Line 11: | Line 11: | ||
* '''Hardware:''' Any reasonably modern IA hardware, such as 32-bit Intel Atom or Intel Core 2 CPU. | * '''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: | ** 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 | + | *:* Known to work: Intel Core 2 Quad CPU, Q8200; Intel i5 and i7 |
| - | *:* Known not to work: Intel | + | *:* Known not to work: Intel Core 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. | * '''Software:''' Only Windows XP 32-bit and Windows 7 32-bit are officially supported. | ||
| - | *: Currently the QEMU emulator | + | *: Currently, the QEMU emulator works only 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 [ | + | *: For support status and issues, using other host operating systems, see [[SDK/Docs/1.1/MeeGo_1.1_SDK_Host_OS_Support|the support page]]. |
| - | * '''Filesystem:''' MeeGo SDK should be installed on a hardlink-capable filesystem such as NTFS. FAT* filesystems are not hardlink-capable and not supported. | + | * '''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 === | === Notes and caveats === | ||
| Line 22: | Line 22: | ||
* '''QEMU runtimes and targets''': The following pre-defined targets and runtimes are the only ones which have been verified on Windows: | * '''QEMU runtimes and targets''': The following pre-defined targets and runtimes are the only ones which have been verified on Windows: | ||
** Targets: | ** Targets: | ||
| - | *** meego-handset-ia32 | + | *** meego-handset-ia32-1.1.2 |
| - | *** meego-netbook-ia32 | + | *** meego-netbook-ia32-1.1.2 |
| - | *** meego-core-armv7l-1.1 | + | *** meego-core-armv7l-1.1.2 |
** Runtimes: | ** Runtimes: | ||
| - | *** meego-handset-ia32 | + | *** meego-handset-ia32-qemu-1.1.20110110.1026-runtime |
| - | *** meego-netbook-ia32 | + | *** meego-netbook-ia32-qemu-1.1.20110110.1049-runtime |
*: '''Others may be listed by MADDE, but are not guaranteed to work.''' | *: '''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. | + | * '''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. | * '''Commands:''' Terminal commands in the instructions below are prefaced with "$". Do not include $ when entering the commands in your terminal. | ||
| Line 37: | Line 37: | ||
<li>Download the MeeGo SDK installer:</li> | <li>Download the MeeGo SDK installer:</li> | ||
<table border='1' cellpadding='3px' style="padding: 0em"> | <table border='1' cellpadding='3px' style="padding: 0em"> | ||
| - | <tr><th>File</th><th>Description</th><th>Size | + | <tr><th>File</th><th>Description</th><th>Size</th></tr> |
| - | <tr><td>http://download3.meego.com/MeeGoSDK/1. | + | <tr><td>http://download3.meego.com/MeeGoSDK/1.1.2/meego-1.1-sdk-update-installer.exe</td> |
| - | + | <td>MeeGo SDK Windows installer</td> | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | <td>MeeGo SDK Windows | + | |
<td>54MB</td> | <td>54MB</td> | ||
| - | + | </tr> | |
| - | + | ||
</table> | </table> | ||
<li>Double-click on the downloaded <code>.exe</code> file and follow the prompts to install the SDK.</li> | <li>Double-click on the downloaded <code>.exe</code> file and follow the prompts to install the SDK.</li> | ||
| Line 56: | Line 50: | ||
<li> 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.</li> | <li> 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.</li> | ||
<li> 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.</li> | <li> 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.</li> | ||
| + | <ul> | ||
| + | <li><b>Known issue: </b>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)</li> | ||
| + | </ul> | ||
</ol> | </ol> | ||
<li>Launch Qt Creator with ''Start > All Programs > MeeGo SDK > QtCreator''.</li> | <li>Launch Qt Creator with ''Start > All Programs > MeeGo SDK > QtCreator''.</li> | ||
| Line 88: | Line 85: | ||
<li> '''Set up emulator: Install kqemu accelerator for QEMU on 32-bit Windows system'''</li> | <li> '''Set up emulator: Install kqemu accelerator for QEMU on 32-bit Windows system'''</li> | ||
| - | 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. | + | 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 a real device instead. |
Download package from http://wiki.qemu.org/download/kqemu-1.4.0pre1.tar.gz | Download package from http://wiki.qemu.org/download/kqemu-1.4.0pre1.tar.gz | ||
| Line 116: | Line 113: | ||
<li> '''Set Run Configuration''' </li> | <li> '''Set Run Configuration''' </li> | ||
| - | 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 | + | 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 make sure 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).<br> |
[[File:Meego-sdk-run-settings.png|800px]] | [[File:Meego-sdk-run-settings.png|800px]] | ||
| + | |||
| + | 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 | ||
<li> '''Build, run and deploy the application'''</li> | <li> '''Build, run and deploy the application'''</li> | ||
| Line 132: | Line 134: | ||
=== Configure Qt Creator to work with real devices === | === Configure Qt Creator to work with real devices === | ||
<ol> | <ol> | ||
| - | <li> Go to Tools -> Options -> Projects -> MeeGo Device Configurations and click "Add" button. Select "Remote Device" for "Device type", input other information and | + | <li> Go to Tools -> Options -> Projects -> MeeGo Device Configurations and click "Add" button. Select "Remote Device" for "Device type", input other information and enter a name for this configuration.</li> |
[[File:Real-device.png|800px]] | [[File:Real-device.png|800px]] | ||
| - | <li> 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"</li> | + | <li> 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".</li> |
[[File:Meego-sdk-run-settings-real-device.png|800px]] | [[File:Meego-sdk-run-settings-real-device.png|800px]] | ||
<li> Launch terminal inside the device, and run command "xhost +" in it. </li> | <li> Launch terminal inside the device, and run command "xhost +" in it. </li> | ||
| Line 150: | Line 152: | ||
User: root Password: meego<br> | User: root Password: meego<br> | ||
| - | == | + | == Known issues about QEMU image and workarounds for them== |
| - | + | *[http://bugs.meego.com/show_bug.cgi?id=10412 Bug #10412: mouse udev not ready before starting X server while running handset image on QEMU windows] | |
| + | <ol> | ||
| + | <li>SSH into QEMU runtime as root user.</li> | ||
| + | <li>edit /usr/sbin/meego-dm to add "sleep 5" </li> | ||
| + | sleep 5 # new added line | ||
| + | shopt -s execfail | ||
| + | </ol> | ||
| + | *[http://bugs.meego.com/show_bug.cgi?id=9737 Bug #9737: Fail to run application in Qemu] | ||
| + | <ol> | ||
| + | <li> SSH into QEMU runtime as root user.</li> | ||
| + | <li> Invoke the following command:</li> | ||
| + | rm -rf /etc/ssh/*key* | ||
| + | </ol> | ||
| - | 1, mount into the image | + | ==Other known issues and workarounds== |
| + | |||
| + | Please refer to [[SDK/Docs/1.1/Troubleshooting]]. | ||
| + | |||
| + | == 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 [http://meego.gitorious.org/meego-os-base/image-configurations/trees/MeeGo1.1/SDK 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 | sudo mount -o loop,offset=512 abc.raw /mnt | ||
| - | 2 | + | 2. edit /mnt/usr/sbin/meego-dm to add "sleep 5" to solve [http://bugs.meego.com/show_bug.cgi?id=10412 bug #10412: mouse udev not ready before starting X server while running handset image on QEMU windows] |
sleep 5 # new added line | sleep 5 # new added line | ||
shopt -s execfail | shopt -s execfail | ||
| - | 3 | + | 3. edit /mnt/boot/extlinux/extlinux.conf to add kernel option "intel_idle.max-cstate=0" to solve [http://bugs.meego.com/show_bug.cgi?id=10149 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 | append ro root=/dev/sda1 vga=current intel_idle.max-cstate=0 quiet | ||
| - | 4 | + | 4. unmount the image |
sudo umount /mnt | sudo umount /mnt | ||
| - | |||
| - | |||
This page describes how to install and configure the MeeGo 1.1 SDK on your Windows development system. For more information about MeeGo SDK for Windows, check SDK/MeeGo_SDK_for_Windows.
Contents |
| File | Description | Size |
|---|---|---|
| http://download3.meego.com/MeeGoSDK/1.1.2/meego-1.1-sdk-update-installer.exe | MeeGo SDK Windows installer | 54MB |
.exe file and follow the prompts to install the SDK.C:\MeeGoSDK_1.1; replace <target_name> with the name of the target (for example, meego-handset-ia32-w32-1.1).Go to the menu: File -> New File or Project -> Qt Application Project -> Meego Touch Framework Application.
In "Project setup" dialog, choose "meego-handset".
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 a 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.
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".
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 make sure 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).
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
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.
You can also debug the application by clicking the "Debug" icon. Setting breakpoints and stepping are the same as local applications.
Anytime MeeGo is running in QEMU, you can use SSH to connect to the image from another terminal on the host system.
$ 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
sleep 5 # new added line shopt -s execfail
rm -rf /etc/ssh/*key*
Please refer to SDK/Docs/1.1/Troubleshooting.
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