在Linux上使用MeeGo SDK進行Meego開發(fā)
本文和大家重點學習一下如何在Linux上使用MeeGo SDK進行Meego開發(fā),Meego開發(fā)中MeeGo SDK由兩部分構(gòu)成,至于是哪兩部分請看下文詳細介紹。
在Linux上使用MeeGo SDK進行Meego開發(fā)
1介紹:
MeeGoSDK由以下部分構(gòu)成:
1.一個MeeGochroot環(huán)境,這包含了一個基于Xephyr(http://www.freedesktop.org/wiki/Software/Xephyr)的MeeGo應用程序模擬器(僅支持Linux),一些在Xephyr里啟動/停止MeeGo桌面的腳本,以及可以遠程配置和部署MeeGo設(shè)備的QtCreator。
2.一個啟動MeeGochroot環(huán)境,并運行模擬器和QtCreator的meego-sdk-chroot腳本。
要安裝MeeGoSDK,最簡單的方法是下載這些組件的打包版本。這將在下一節(jié)討論。
2Meego開發(fā)系統(tǒng)要求:
要在Xephyr里運行MeeGo模擬器,你需要一個比較新的Linux發(fā)行版(例如Fedora11,Ubuntu9.10)以及Intel的硬件環(huán)境。硬件環(huán)境有以下要求:
*CPU:32bitIntel(r)Atom(tm)orIntel(r)Core(tm)2CPU(supportforSSSE3)
*注意:MeeGo模擬器無法在不支持SSSE3的CPU上運行。
*一塊兼容的Intel顯卡。GMA-500,Nvidia,以及ATI的芯片組都無法提供支持
(譯注:這是MeeGo模擬器的要求,不是SDK的要求。我可以在AMD處理器和NV顯卡的機器上,運行MeeGoSDK,并正常編譯/調(diào)試程序。)
3安裝MeeGochroot環(huán)境
MeeGochroot壓縮包是一個大文件(接近800M)。它不僅包括了MeeGo自身的所有庫文件,也包括一些其他有用的東西(Xephyr,scripts,QtCreator)。
下載MeeGochroot壓縮包文件:wgethttp://download3.meego.com/meego-sdk-0524.tar.bz2
解壓MeeGochroot壓縮包文件:tarjxvfmeego-sdk-0524.tar.bz2
//另一個方案是自己創(chuàng)建一個MeeGochroot,參見BuildingaMeeGochrootonLinux。
4安裝meego-sdk-chroot腳本
meego-sdk-chroot腳本會設(shè)置chroot環(huán)境的掛載點,然后用恰當?shù)姆绞絾觬oot環(huán)境;Meego開發(fā)在離開chroot環(huán)境時,它也會嘗試正確地卸載整個環(huán)境,并清除在chroot環(huán)境中啟動的進程。
下載:
wgethttp://sdk.download.location/meego-sdk-chroot
給腳本可執(zhí)行權(quán)限:
chmod+xmeego-sdk-chroot
移動到/usr/bin:
mvmeego-sdk-chroot/usr/bin
為模擬器配置host
下一步,是配置host的X環(huán)境,讓模擬器(在chroot環(huán)境下運行)可以正確地顯示在普通用戶的屏幕上:
xhost+local:(在這里我運行xhost+local:不成功,我用xhost+SI:localuser:root
xhost+SI:localuser:你的用戶名。OK)
(每次重啟后,在運行模擬器和QtCreator之前你都需要執(zhí)行這一步)
5Meego開發(fā)進入MeeGochroot環(huán)境
meego-sdk-chroot腳本將設(shè)置一個MeeGochroot環(huán)境,并給你一個該環(huán)境下的shell:
sudomeego-sdk-chroot~/meego-sdk-0524
(用你的chroot目錄代替上面的'~/meego-sdk-0524)
注意,這個腳本使用了chroot命令。有些時候,root用戶無法在PATH環(huán)境變量里定位這個命令(在Fedora里,chroot命令在/usr/sbin路徑下)。你可以在meego-sdk-chroot腳本的頂部添加一行alias,以解決這個問題:
aliaschroot='/usr/sbin/chroot'
腳本運行后,會輸出下面這樣的內(nèi)容:
- 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環(huán)境下正常安裝軟件(和***的netbook鏡像一樣)。
進入chroot環(huán)境,然后執(zhí)行:zypperinstall<package>
下面這個命令可以將整個MeeGo鏡像更新到***版本:
- zypperdist-upgrade
- --------------------------------------------------------------------------------
- SettinghostdisplaybeforerunningSimulator
- XephyrdoesnotseeDISPLAYenvvariablefromhostsystemsinceitisrunningaschroot.Aschroot,setDISPLAYvariablebeforerunning"startmeego"thatcallsXephyr.
- exportDISPLAY=:0--------------------------------------------------------------------------------
6運行模擬器
在chroot環(huán)境下,以root的身份執(zhí)行:startmeego&
這將啟動Xephyr服務器,并運行一個腳本。這個腳本在Xephyr里啟動一個MeeGo桌面。
如果你想在chroot環(huán)境里啟動一個程序,并顯示在模擬器窗口里,你可以:
DISPLAY=:2glxgears(用你想啟動的程序名代替glxgears)
在模擬器里Debugging
如果你的模擬器出現(xiàn)了問題,可以使用debug腳本,看看具體發(fā)生了些什么:startmeego-debug
這個腳本會在控制臺輸出一些信息,這些信息應該能給你問題的線索。
模擬器里的NetbookUX界面
它看起來像這樣:(缺圖)
已發(fā)現(xiàn)的問題:*.一些依賴DBus的工具條組件(比如電池,網(wǎng)絡(luò))無法報告設(shè)備的工作狀態(tài)。
7停止模擬器
要停止模擬器,只需要離開chrootshell:exit
這會停止模擬器啟動的所有進程,并卸載chroot環(huán)境使用的路徑。這會輸出下面這樣的信息:
- 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