在Qt框架下配置MeeGo SDK的Xephyr运行环境

移动开发
本文为翻译自MeeGo网站的一个文章,将详细介绍了如何使用Xephyr搭建MeeGo SDK的开发环境。

这是一个翻译自MeeGo网站的一个文章,也是对《MeeGo移动应用程序开发入门》的一个补充,详细介绍了如何使用Xephyr搭建MeeGo SDK的开发环境。

配置MeeGo SDK的Xephyr运行环境

查验主机是否包含Intel图形芯片组

  1. $ lspci | grep VGA  

预期输出:

  1. 00:02.0 VGA compatible controller: ”’Intel Corporation”’ …  

(你的系统最好含Intel图形芯片组).

下载你目标平台对应的MeeGo SDK

解压下载的映像文件到工作目录

  1. $ tar xvjf  

安装meego-sdk-chroot脚本

“meego-sdk-chroot”脚本负责设置chroot环境的挂载点,并正确地启动chroot. 该脚本在退出时会卸载在启动时挂载的所有内容并清除启动时加载的所有进程. 如下命令可以下载此脚本:

  1. $ wget http://download3.meego.com/meego-sdk-chroot  
  2.  

为meego-sdk-chroot脚本增加可执行权限:

  1. $ chmod +x ./meego-sdk-chroot  
  2.  

配置主机上的X允许Xephyr可以访问其显示区(allow Xephyr to access the display)

  1. $ xhost +SI:localuser:  

允许用户”bob”访问X显示区的例子:

  1. $ xhost +SI:localuser:bob  
  2.  

(如果你的主机重启了,那么在运行Xephyr或Qt Creator前,需要再一次运行xhost命令)

挂载并切换根目录(chroot)到MeeGo映像

建立一个目录用于挂载MeeGo映像:

  1. $ mkdir   
  2.  

将Meego映像挂载到新建的目录上:

  1. $ sudo mount -o loop,offset=512 
  2.  

切换系统的终端根目录(chroot)到MeeGo系统的根目录上:

  1. $ sudo ./meego-sdk-chroot  
  2.  

例子:

  1. $ sudo mkdir /opt/meego-handset  
  2. $ sudo mount -o loop,offset=512 ./meego-handset-ia32-1.0.80.9.20100706.1-sdk-pre0721.raw /opt/meego-handset  
  3. $ sudo ./meego-sdk-chroot /opt/meego-handset  
  4.  

在执行meego-sdk-chroot后,你看到的终端输出会是如下的一些内容:

  1. mount –bind /proc /home/ell/meego-sdk-0524/proc  
  2. mount –bind /sys /home/ell/meego-sdk-0524/sys  
  3. mount –bind /dev /home/ell/meego-sdk-0524/dev  
  4. mount –bind /dev/pts /home/ell/meego-sdk-0524/dev/pts  
  5. mount –bind /tmp /home/ell/meego-sdk-0524/tmp  
  6. mount –bind /var/lib/dbus /home/ell/meego-sdk-0524/var/lib/dbus  
  7. mount –bind /var/run/dbus /home/ell/meego-sdk-0524/var/run/dbus  
  8. cp /etc/resolv.conf /home/ell/meego-sdk-0524/etc/resolv.conf  
  9. root@meego-handset-sdk:/#  
  10.  

此时你已进入”MeeGo 终端”. 它仿如运行在真正的MeeGo操作系统里,路径,程序,库,环境这些都和你在MeeGo上网本或手机中看到的一模一样.

提示: ”meego-sdk-chroot”会用到”chroot”命令.请确保你的PATH路径中包含了”chroot”命令:

  1. $ alias chroot=’/usr/sbin/chroot’  

#p#

在Xephyr环境中启动MeeGo UI

设置DISPLAY环境变量

因为Xephyr是在chroot终端中运行的,因此无法获得主机DISPLAY环境变量的值. 在MeeGo chroot终端中运行’’startmeego”脚本前,使用以下命令设置DISPLAY的值.

  1. # export DISPLAY=:0  
  2.  

启动 Xephyr

从MeeGo chroot终端命令下执行:

  1. # startmeego &  
  2.  

这会启动Xephyr服务器并且调用其它脚本启动MeeGo UI.

MeeGo UI
MeeGo UI

MeeGo UI
MeeGo UI

MeeGo UI

退出模拟器/li>你可以通过直接关闭Xephyr窗口(点击左上角的X按钮)停止Xephyr服务.并在MeeGo Chroot终端中输入exit退出MeeGo:

  1. # exit  
  2.  

这将关闭在chroot中启动的所有进程,并且卸载因chroot环境中需要而挂载的目录. 此时输出应该是如下这个样子的:

  1. umount /home/ell/meego-sdk-0524/proc  
  2. umount /home/ell/meego-sdk-0524/sys  
  3. umount /home/ell/meego-sdk-0524/dev/pts  
  4. umount /home/ell/meego-sdk-0524/dev  
  5. umount /home/ell/meego-sdk-0524/tmp  
  6. umount /home/ell/meego-sdk-0524/var/lib/dbus  
  7. umount /home/ell/meego-sdk-0524/var/run/dbus  
  8.  

调试

如果在运行Xephyr时遇到问题, 可以运行调试脚本查看运行过程中的详细信息:

  1. startmeego-debug  
  2.  

它会在命令行终端打印出来,在工作不正常时可以从中得到一些线索.

应用程序开发

你可以在MeeGo chroot环境中编译和运行MeeGo应用程序。默认情况下,应用程序会显示在新开的一个窗口中。为了能使你的应用能显示在Xephyr的MeeGo界面中,请在MeeGo chroot终端环境中以如下命令启动你的应用程序:

  1. DISPLAY=:2  
  2.  

安装其它软件

你可以在MeeGo chroo环境里安装更多其它软件. 在MeeGo chroot终端中执行:

  1. # zypper install  
  2.  

你也可以使用以下命令更新整个MeeGo系统:

  1. # zypper dist-upgrade  
  2.  

已知问题

依赖于DBus的一些面板显示(比如电池,网络)不能正确的报告设备信息.

原文标题:MeeGo SDK with Xephyr

原文地址:http://wiki.meego.com/MeeGo_SDK_with_Xephyr

【编辑推荐】

  1. MeeGo移动应用程序开发入门
  2. 诺基亚发布开发框架Qt4.7 推出快速UI工具
  3. 在QT SDK下构建MeeGo Touch开发环境
  4. 详解MeeGo Touch服务框架
  5. Meego开发中安装Dropbox等应用详解
责任编辑:佚名 来源: cuteqt
相关推荐

2011-06-16 16:41:20

Qt MeeGo SDK

2010-09-15 09:00:21

MeeGo TouchQT SDKMeeGo

2010-11-18 14:47:49

2010-11-17 09:29:31

linux Fedora 13Ubuntu 10.0

2011-07-01 10:52:59

EnyowebOS 3.0 S

2010-07-02 12:58:39

Meego开发

2011-07-01 11:02:30

EnyowebOShello world

2010-06-21 17:08:10

Java框架ScalaSpring

2009-06-19 16:05:39

时间类型Struts

2021-10-14 09:53:38

鸿蒙HarmonyOS应用

2022-11-11 10:56:37

2010-10-22 10:02:14

诺基亚Qt开发者

2011-06-16 17:19:33

Qt Meego

2010-01-27 14:00:50

CC++运行环境

2011-07-04 14:11:43

QT 桌面 Embedded

2010-08-30 13:46:09

MeeGoMeeGo Touch

2009-07-03 18:07:31

Servlet的运行环

2009-06-01 10:47:32

jboss seam例jboss seam开jboss seam

2010-09-17 14:27:18

NetBeansAndroid

2011-04-25 15:14:38

LinuxQtOpenCV
点赞
收藏

51CTO技术栈公众号