The MeeGo SDK with Xephyr provides a development environment on Linux workstations for Netbook and Handheld applications.
$ 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:
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. The meego-sdk-chroot script sets up a MeeGo chroot environment and drops you into a shell inside it
$ sudo ./meego-sdk-chroot <image destination directory>
$ sudo mkdir /opt/handset-image $ sudo mount -o loop,offset=512 ./meego-handset-ia32-22.214.171.124.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-netbook-sdk:/#
Note: the meego-sdk-chroot script uses the chroot command. Be sure it is in your path or create an alias:
$ alias chroot='/usr/sbin/chroot'
It's possible to install software from the standard locations (at least it is in netbook images) into the chroot.
Enter the chroot, then run:
zypper install <package>
It should also be possible to upgrade the whole MeeGo image using:
Xephyr does not see DISPLAY env variable from host system since it is running as chroot. As chroot, set DISPLAY variable before running "startmeego" that calls Xephyr.
From inside the chroot, as root do:
This starts the Xephyr server then runs a script to boot the MeeGo desktop into it.
Note: Currently, the simulator runs only on host systems with an Intel integrated graphics controller. It does not run with ATI or NVIDIA graphics controllers.
If you want to run applications from the chroot and have them display in the Simulator window, you can do:
(replacing glxgears with the command you want to run).
If you are having issues with the Simulator, use the debug script to see what's happening:
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:
To stop the Simulator, just exit the chroot shell with:
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