MeeGo技术:在Linux上使用MeeGo SDK
时间:2010-10-14 来源:landuochong
Contents :
1 介绍
2 系统要求
3 安装MeeGo chroot环境
4 安装meego-sdk-chroot脚本
5 为模拟器配置host
6 进入 MeeGo chroot 环境
6.1 安装其他软件
7 运行模拟器
7.1 在模拟器里Debugging
7.2 模拟器里的 Netbook UX 界面
8 停止模拟器
1 介绍:
MeeGo SDK由以下部分构成:
1.一个MeeGo chroot环境,这包含了一个基于Xephyr ( http://www.freedesktop.org/wiki/Software/Xephyr ) 的MeeGo应用程序模拟器(仅支持Linux),一些在Xephyr里启动/停止MeeGo桌面的脚本,以及可以远程配置和部署MeeGo设备的Qt Creator。
2.一个启动MeeGo chroot环境,并运行模拟器和Qt Creator的 meego-sdk-chroot 脚本。
要安装MeeGo SDK,最简单的方法是下载这些组件的打包版本。这将在下一节讨论。
2 系统要求:
要在Xephyr里运行MeeGo模拟器,你需要一个比较新的Linux发行版(例如Fedora 11,Ubuntu 9.10)以及Intel的硬件环境。硬件环境有以下要求:
*CPU: 32bit Intel(r) Atom(tm) or Intel(r) Core(tm) 2 CPU (support for SSSE3)
*注意: MeeGo模拟器无法在不支持SSSE3的CPU上运行。
*一块兼容的Intel显卡。GMA-500,Nvidia,以及ATI的芯片组都无法提供支持
(译注:这是MeeGo模拟器的要求,不是SDK的要求。我可以在AMD处理器和NV显卡的机器上,运行 MeeGo SDK ,并正常编译/调试程序。)
3 安装MeeGo chroot环境
MeeGo chroot压缩包是一个大文件(接近800M)。它不仅包括了MeeGo自身的所有库文件,也包括一些其他有用的东西(Xephyr, scripts, Qt Creator)。
下载MeeGo chroot压缩包文件:
wget http://download3.meego.com/meego-sdk-0524.tar.bz2
解压MeeGo chroot压缩包文件:
tar jxvf meego-sdk-0524.tar.bz2
//另一个方案是自己创建一个MeeGo chroot,参见 Building a MeeGo chroot on Linux 。
4 安装meego-sdk-chroot脚本
安装meego-sdk-chroot脚本
meego-sdk-chroot 脚本会设置chroot环境的挂载点,然后用恰当的方式启动root环境;在离开chroot环境时,它也会尝试正确地卸载整个环境,并清除在chroot环境中启动的进程。
下载:
wget http://sdk.download.location/meego-sdk-chroot
给脚本可执行权限:
chmod +x meego-sdk-chroot
移动到 /usr/bin :
mv meego-sdk-chroot /usr/bin
为模拟器配置host
下一步,是配置host的X环境,让模拟器(在chroot环境下运行)可以正确地显示在普通用户的屏幕上:
xhost +local:
(在这里我运行xhost +local:不成功,我用xhost +SI:localuser:root
xhost +SI:localuser:你的用户名。OK)
(每次重启后,在运行模拟器和Qt Creator之前你都需要执行这一步)
5进入 MeeGo chroot 环境
meego-sdk-chroot 脚本将设置一个MeeGo chroot环境,并给你一个该环境下的shell:
sudo meego-sdk-chroot ~/meego-sdk-0524
(用你的chroot目录代替上面的’ ~/meego-sdk-0524 )
注意,这个脚本使用了chroot命令。有些时候,root用户无法在PATH环境变量里定位这个命令(在Fedora里,chroot命令在 /usr/sbin 路径下)。你可以在 meego-sdk-chroot 脚本的顶部添加一行alias,以解决这个问题:
alias chroot=’/usr/sbin/chroot’
脚本运行后,会输出下面这样的内容:
mount –bind /proc /home/ell/meego-sdk-0524/procmount –bind /sys /home/ell/meego-sdk-0524/sysmount –bind /dev /home/ell/meego-sdk-0524/devmount –bind /dev/pts /home/ell/meego-sdk-0524/dev/ptsmount –bind /tmp /home/ell/meego-sdk-0524/tmpmount –bind /var/lib/dbus /home/ell/meego-sdk-0524/var/lib/dbusmount –bind /var/run/dbus /home/ell/meego-sdk-0524/var/run/dbuscp /etc/resolv.conf /home/ell/meego-sdk-0524/etc/resolv.confroot@meego-netbook-sdk:/#
安装其他软件
你可以在chroot环境下正常安装软件(和最新的netbook镜像一样)。
进入chroot环境 ,然后执行:
zypper install <package>
下面这个命令可以将整个MeeGo镜像更新到最新版本:
zypper dist-upgrade
——————————————————————————–
Setting host display before running Simulator
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.
export DISPLAY=:0——————————————————————————–
6 运行模拟器
在chroot环境下,以root的身份执行:
startmeego &
这将启动Xephyr服务器,并运行一个脚本。这个脚本在Xephyr里启动一个MeeGo桌面。
如果你想在chroot环境里启动一个程序,并显示在模拟器窗口里,你可以:
DISPLAY=:2 glxgears
(用你想启动的程序名代替glxgears)
在模拟器里Debugging
如果你的模拟器出现了问题,可以使用debug脚本,看看具体发生了些什么:
startmeego-debug
这个脚本会在控制台输出一些信息,这些信息应该能给你问题的线索。
模拟器里的 Netbook UX 界面
它看起来像这样:(缺图)
已发现的问题:
*.一些依赖DBus的工具条组件(比如电池,网络)无法报告设备的工作状态。
6 停止模拟器
要停止模拟器,只需要离开chroot shell:
exit
这会停止模拟器启动的所有进程,并卸载chroot环境使用的路径。这会输出下面这样的信息:
exitumount /home/ell/meego-sdk-0524/procumount /home/ell/meego-sdk-0524/sysumount /home/ell/meego-sdk-0524/dev/ptsumount /home/ell/meego-sdk-0524/devumount /home/ell/meego-sdk-0524/tmpumount /home/ell/meego-sdk-0524/var/lib/dbusumount /home/ell/meego-sdk-0524/var/run/dbus