Linux 下的 MeeGo SDK 有两个选择:
一是 MeeGo qemu 虚拟环境,这允许你在一个虚拟机里启动 MeeGo 系统并显示 UI 。
另一个则是基于 Xephyr () 的 MeeGo chroot (change-root) 环境,该环境还包括一个启动 MeeGo 桌面的脚本,以及可以远程配置 MeeGo 设备的 Qt Creator 。
准备工作
主机环境我还是用的gentoo,因为我已经习惯用gentoo了,现在的惯性思维是building the fucking source codes.
Linux localhost 2.6.35-gentoo-r4 #1 SMP Sat Aug 28 19:51:20 CST 2010 i686 Intel(R) Pentium(R) Dual CPU T2310 @ 1.46GHz GenuineIntel GNU/Linux
除此以外:
qemu 环境需要你的系统支持虚拟化技术(VT),以进行图形加速。请查看这个页面,以确认你的处理器支持虚拟化技术。
Xephyr 环境需要英特尔的显示芯片。
配置MeeGo SDK的Xephyr运行环境
查验主机是否包含Intel图形芯片组
$ lspci | grep VGA
预期输出: 00:02.0 VGA compatible controller: Intel Corporation ...
如果你的系统不含Intel图形芯片组, 请参考 MeeGo可用的SDK开发选项.
按照Getting Started 文中的描述下载你目标平台对应的MeeGo SDK.
解压下载的映像文件到工作目录
$ tar xvjf meego-handset-sdk-20101012-1.1.80.20101024.1603-sda.raw.tar.bz2
安装meego-sdk-chroot脚本
meego-sdk-chroot脚本负责设置chroot环境的挂载点,并正确地启动chroot. 该脚本在退出时会卸载在启动时挂载的所有内容并清除启动时加载的所有进程. 如下命令可以下载此脚本:
$ wget
为meego-sdk-chroot脚本增加可执行权限:
$ chmod +x ./meego-sdk-chroot
配置主机上的X允许Xephyr可以访问其显示区(allow Xephyr to access the display)
$ xhost +SI:localuser:root
(如果你的主机重启了,那么在运行Xephyr或Qt Creator前,需要再一次运行xhost命令)
挂载并切换根目录(chroot)到MeeGo映像
建立一个目录用于挂载MeeGo映像:
$ mkdir /mnt/meego
将Meego映像挂载到新建的目录上:
$ mount -o loop,offset=512 meego-handset-sdk-20101012-1.1.80.20101024.1603-sda.raw /mnt/meego
切换系统的终端根目录(chroot)到MeeGo系统的根目录上:
$ ./meego-sdk-chroot /mnt/meego
在执行meego-sdk-chroot后,你看到的终端输出会是如下的一些内容:
mount --bind /proc /mnt/meego/proc
mount --bind /sys /mnt/meego/sys
mount --bind /dev /mnt/meego/dev
mount --bind /dev/pts /mnt/meego/dev/pts
mount --bind /tmp /mnt/meego/tmp
mount --bind /var/lib/dbus /mnt/meego/var/lib/dbus
mount --bind /var/run/dbus /mnt/meego/var/run/dbus
cp /etc/resolv.conf /mnt/meego/etc/resolv.conf
root@meego-handset-sdk:/#
此时你已进入MeeGo 终端. 它仿如运行在真正的MeeGo操作系统里,路径,程序,库,环境这些都和你在MeeGo上网本或手机中看到的一模一样.
提示: meego-sdk-chroot会用到chroot命令.请确保你的PATH路径中包含了chroot命令:
$ alias chroot='/usr/sbin/chroot'
在Xephyr环境中启动MeeGo UI
设置DISPLAY环境变量
因为Xephyr是在chroot终端中运行的,因此无法获得主机DISPLAY环境变量的值. 在MeeGo chroot终端中运行startmeego脚本前,使用以下命令设置DISPLAY的值.
# export DISPLAY=:0
安装startmeego脚本
# zypper install meego-simulator-launcher-handset
安装Xephyr
# zypper install xorg-x11-server-Xephyr
(这一步是比较要命的,起先我也不知道,按照meego官方的wiki一步步来做,结果startmeego死活没有起来,startmeego-debug后,发现是Xephyr命令没有找到,于是,是不是在出这个镜像的时候少安装这个东东了,好吧,zypper安装一下,zypper我还不会用,先看看选项再说,貌似和apt-get 或者yum差不多的东西,有个search选项 zypper search Xephyr后发现上面这个,安装后,再启动,ok了,呵呵)
启动 Xephyr
从MeeGo chroot终端命令下执行:
# startmeego &
这会启动Xephyr服务器并且调用其它脚本启动MeeGo UI.
退出模拟器 你可以通过直接关闭Xephyr窗口(点击左上角的X按钮)停止Xephyr服务.并在MeeGo Chroot终端中输入exit退出MeeGo: # exit 这将关闭在chroot中启动的所有进程,并且卸载因chroot环境中需要而挂载的目录. 此时输出应该是如下这个样子的:
umount /mnt/meego/proc
umount /mnt/meego/sys
umount /mnt/meego/dev/pts
umount /mnt/meego/dev
umount /mnt/meego/tmp
umount /mnt/meego/var/lib/dbus
umount /mnt/meego/var/run/dbus
调试
如果在运行Xephyr时遇到问题, 可以运行调试脚本查看运行过程中的详细信息:
startmeego-debug
它会在命令行终端打印出来,在工作不正常时可以从中得到一些线索.
应用程序开发
你可以在MeeGo chroot环境中编译和运行MeeGo应用程序。默认情况下,应用程序会显示在新开的一个窗口中。为了能使你的应用能显示在Xephyr的MeeGo界面中,请在MeeGo chroot终端环境中以如下命令启动你的应用程序。:
# DISPLAY=:2
安装其它软件
你可以在MeeGo chroo环境里安装更多其它软件. 在MeeGo chroot终端中执行:
你也可以使用以下命令更新整个MeeGo系统:
# zypper dist-upgrade
这篇文章99%都是转载meego wiki的,只有那个在那个安装xorg-x11-server-Xephyr的地方是自己摸索出来的,呵呵
阅读(1383) | 评论(1) | 转发(0) |