| Line 53: | Line 53: | ||
mount --bind /var/run/dbus /home/ell/meego-sdk-0524/var/run/dbus | mount --bind /var/run/dbus /home/ell/meego-sdk-0524/var/run/dbus | ||
cp /etc/resolv.conf /home/ell/meego-sdk-0524/etc/resolv.conf | cp /etc/resolv.conf /home/ell/meego-sdk-0524/etc/resolv.conf | ||
| - | root@meego- | + | root@meego-handset-sdk:/# |
</pre> | </pre> | ||
| + | |||
| + | This is now a ''MeeGo chroot terminal''. It behaves just like a terminal running in the MeeGo OS: paths, programs, libraries, and environment are all the same as those on a MeeGo OS netbook or handset. | ||
Note: ''meego-sdk-chroot'' uses the ''chroot'' command. Be sure it is in your path or create an alias: | Note: ''meego-sdk-chroot'' uses the ''chroot'' command. Be sure it is in your path or create an alias: | ||
$ alias chroot='/usr/sbin/chroot' | $ alias chroot='/usr/sbin/chroot' | ||
</ol> | </ol> | ||
| - | |||
| - | + | == Start the MeeGo UI in Xephyr == | |
| + | <ol> | ||
| + | <li>Set the DISPLAY environment variable</li> | ||
| + | Xephyr does not see $DISPLAY env variable from host system since Xephyr is running in the MeeGo chroot terminal. From the MeeGo chroot terminal, set the DISPLAY variable before running "startmeego" that calls Xephyr. | ||
| - | + | # export DISPLAY=:0 | |
| - | + | <li>Launch Xephyr</li> | |
| - | + | From inside the MeeGo chroot terminal: | |
| - | + | # startmeego & | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | Xephyr | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | From inside the chroot | + | |
| - | + | ||
| - | startmeego & | + | |
This starts the Xephyr server then runs a script to boot the MeeGo desktop into it. | This starts the Xephyr server then runs a script to boot the MeeGo desktop into it. | ||
| - | + | <li>Start your application in MeeGo UI</li> | |
| - | + | Your MeeGo application can be built and run from the MeeGo chroot terminal. By default, your application UI will display in a new window on your desktop. To configure your application to show up inside the MeeGo UI in Xephyr, start your application as follows in the MeeGo chroot terminal: | |
| - | + | # DISPLAY=:2 <your application> | |
| - | + | ||
| - | DISPLAY=:2 | + | |
| - | + | ||
| - | + | ||
=== Debugging the Simulator === | === Debugging the Simulator === | ||
| Line 111: | Line 96: | ||
<td>[[File:qemu-netbook.jpg|thumb|MeeGo Netbook UI in QEMU]]</td> | <td>[[File:qemu-netbook.jpg|thumb|MeeGo Netbook UI in QEMU]]</td> | ||
</tr></table> | </tr></table> | ||
| + | |||
| + | |||
| + | === Installing other software === | ||
| + | You can install additional software into the MeeGo chroot environment. From the MeeGo chroot terminal: | ||
| + | |||
| + | # zypper install <package> | ||
| + | |||
| + | You can also upgrade the whole MeeGo image using: | ||
| + | |||
| + | # zypper dist-upgrade | ||
| + | |||
Known issues: | Known issues: | ||
The MeeGo SDK with Xephyr provides a development environment on Linux workstations for Netbook and Handheld applications.
Contents |
$ lspci | grep VGA
Desired output: 00:02.0 VGA compatible controller: Intel Corporation ...
If your system does not have Intel graphics, see the other SDK options.
The meego-sdk-chroot script sets up mountpoints for the chroot environment, then starts the chroot proper; it also attempts to unmount everything when it exits and clear up any processes started in the chroot. Get it with:
$ wget http://download3.meego.com/meego-sdk-chroot
Make the chroot script executable:
$ chmod +x ./meego-sdk-chroot
$ xhost +SI:localuser:<user name>
Example for user named "bob":
$ xhost +SI:localuser:bob
(You need to do this once before running Xephyr or Qt Creator after each reboot)
Create a directory for the MeeGo image contents:
$ mkdir <image destination directory>
Mount the image into the directory:
$ sudo mount -o loop,offset=512 <image file> <image destination directory>
Change the root of the terminal to the MeeGo OS root:
$ sudo ./meego-sdk-chroot <image destination directory>
Example:
$ sudo mkdir /opt/meego-handset $ sudo mount -o loop,offset=512 ./meego-handset-ia32-1.0.80.9.20100706.1-sdk-pre0721.raw /opt/meego-handset $ sudo ./meego-sdk-chroot /opt/meego-handset
The output from running meego-sdk-chroot should look like this:
mount --bind /proc /home/ell/meego-sdk-0524/proc mount --bind /sys /home/ell/meego-sdk-0524/sys mount --bind /dev /home/ell/meego-sdk-0524/dev mount --bind /dev/pts /home/ell/meego-sdk-0524/dev/pts mount --bind /tmp /home/ell/meego-sdk-0524/tmp mount --bind /var/lib/dbus /home/ell/meego-sdk-0524/var/lib/dbus mount --bind /var/run/dbus /home/ell/meego-sdk-0524/var/run/dbus cp /etc/resolv.conf /home/ell/meego-sdk-0524/etc/resolv.conf root@meego-handset-sdk:/#
This is now a MeeGo chroot terminal. It behaves just like a terminal running in the MeeGo OS: paths, programs, libraries, and environment are all the same as those on a MeeGo OS netbook or handset.
Note: meego-sdk-chroot uses the chroot command. Be sure it is in your path or create an alias:
$ alias chroot='/usr/sbin/chroot'
Xephyr does not see $DISPLAY env variable from host system since Xephyr is running in the MeeGo chroot terminal. From the MeeGo chroot terminal, set the DISPLAY variable before running "startmeego" that calls Xephyr.
# export DISPLAY=:0
From inside the MeeGo chroot terminal:
# startmeego &
This starts the Xephyr server then runs a script to boot the MeeGo desktop into it.
Your MeeGo application can be built and run from the MeeGo chroot terminal. By default, your application UI will display in a new window on your desktop. To configure your application to show up inside the MeeGo UI in Xephyr, start your application as follows in the MeeGo chroot terminal:
# DISPLAY=:2 <your application>
If you are having issues with the Simulator, use the debug script to see what's happening:
startmeego-debug
This shows the console output from the script, which may give you some clues if it's not working correctly.
Here's what it looks like:
You can install additional software into the MeeGo chroot environment. From the MeeGo chroot terminal:
# zypper install <package>
You can also upgrade the whole MeeGo image using:
# zypper dist-upgrade
Known issues:
To stop the Simulator, just exit the chroot shell with:
exit
This closes down any processes started inside the Simulator and unmounts directories used by the chroot environment. The output should look something like this:
exit umount /home/ell/meego-sdk-0524/proc umount /home/ell/meego-sdk-0524/sys umount /home/ell/meego-sdk-0524/dev/pts umount /home/ell/meego-sdk-0524/dev umount /home/ell/meego-sdk-0524/tmp umount /home/ell/meego-sdk-0524/var/lib/dbus umount /home/ell/meego-sdk-0524/var/run/dbus