在Qt框架下配置MeeGo SDK的Xephyr运行环境
创始人
2024-07-16 02:50:34
0

这是一个翻译自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等应用详解

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...