Contents :
1 介紹
2 系統(tǒng)要求
3 安裝MeeGo chroot環(huán)境
4 安裝meego-sdk-chroot腳本
5 為模擬器配置host
6 進(jìn)入 MeeGo chroot 環(huán)境
6.1 安裝其他軟件
7 運(yùn)行模擬器
7.1 在模擬器里Debugging
7.2 模擬器里的 Netbook UX 界面
8 停止模擬器
1 介紹:
MeeGo SDK由以下部分構(gòu)成:
1.一個(gè)MeeGo chroot環(huán)境,這包含了一個(gè)基于Xephyr ( http://www.freedesktop.org/wiki/Software/Xephyr ) 的MeeGo應(yīng)用程序模擬器(僅支持Linux),一些在Xephyr里啟動(dòng)/停止MeeGo桌面的腳本,以及可以遠(yuǎn)程配置和部署MeeGo設(shè)備的Qt Creator。
2.一個(gè)啟動(dòng)MeeGo chroot環(huán)境,并運(yùn)行模擬器和Qt Creator的 meego-sdk-chroot 腳本。
要安裝MeeGo SDK,最簡(jiǎn)單的方法是下載這些組件的打包版本。這將在下一節(jié)討論。
2 系統(tǒng)要求:
要在Xephyr里運(yùn)行MeeGo模擬器,你需要一個(gè)比較新的Linux發(fā)行版(例如Fedora 11,Ubuntu 9.10)以及Intel的硬件環(huán)境。硬件環(huán)境有以下要求:
*CPU: 32bit Intel(r) Atom(tm) or Intel(r) Core(tm) 2 CPU (support for SSSE3)
*注意: MeeGo模擬器無法在不支持SSSE3的CPU上運(yùn)行。
*一塊兼容的Intel顯卡。GMA-500,Nvidia,以及ATI的芯片組都無法提供支持
(譯注:這是MeeGo模擬器的要求,不是SDK的要求。我可以在AMD處理器和NV顯卡的機(jī)器上,運(yùn)行 MeeGo SDK ,并正常編譯/調(diào)試程序。)
3 安裝MeeGo chroot環(huán)境
MeeGo chroot壓縮包是一個(gè)大文件(接近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
//另一個(gè)方案是自己創(chuàng)建一個(gè)MeeGo chroot,參見 Building a MeeGo chroot on Linux 。
?
4 安裝meego-sdk-chroot腳本
安裝meego-sdk-chroot腳本
meego-sdk-chroot 腳本會(huì)設(shè)置chroot環(huán)境的掛載點(diǎn),然后用恰當(dāng)?shù)姆绞絾?dòng)root環(huán)境;在離開chroot環(huán)境時(shí),它也會(huì)嘗試正確地卸載整個(gè)環(huán)境,并清除在chroot環(huán)境中啟動(dòng)的進(jìn)程。
下載:
wget? http://sdk.download.location/meego-sdk-chroot
給腳本可執(zhí)行權(quán)限:
chmod +x meego-sdk-chroot
移動(dòng)到 /usr/bin :
mv meego-sdk-chroot /usr/bin
為模擬器配置host
下一步,是配置host的X環(huán)境,讓模擬器(在chroot環(huán)境下運(yùn)行)可以正確地顯示在普通用戶的屏幕上:
xhost +local:
(在這里我運(yùn)行xhost +local:不成功,我用xhost +SI:localuser:root
xhost +SI:localuser:你的用戶名。OK)
(每次重啟后,在運(yùn)行模擬器和Qt Creator之前你都需要執(zhí)行這一步)
5進(jìn)入 MeeGo chroot 環(huán)境
meego-sdk-chroot 腳本將設(shè)置一個(gè)MeeGo chroot環(huán)境,并給你一個(gè)該環(huán)境下的shell:
sudo meego-sdk-chroot ~/meego-sdk-0524
(用你的chroot目錄代替上面的' ~/meego-sdk-0524 )
注意,這個(gè)腳本使用了chroot命令。有些時(shí)候,root用戶無法在PATH環(huán)境變量里定位這個(gè)命令(在Fedora里,chroot命令在 /usr/sbin 路徑下)。你可以在 meego-sdk-chroot 腳本的頂部添加一行alias,以解決這個(gè)問題:
alias chroot='/usr/sbin/chroot'
腳本運(yùn)行后,會(huì)輸出下面這樣的內(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鏡像一樣)。
進(jìn)入chroot環(huán)境 ,然后執(zhí)行:
zypper install
下面這個(gè)命令可以將整個(gè)MeeGo鏡像更新到最新版本:
zypper dist-upgrad
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 運(yùn)行模擬器
在chroot環(huán)境下,以root的身份執(zhí)行:
startmeego &
這將啟動(dòng)Xephyr服務(wù)器,并運(yùn)行一個(gè)腳本。這個(gè)腳本在Xephyr里啟動(dòng)一個(gè)MeeGo桌面。
如果你想在chroot環(huán)境里啟動(dòng)一個(gè)程序,并顯示在模擬器窗口里,你可以:
DISPLAY=:2 glxgears
(用你想啟動(dòng)的程序名代替glxgears)
在模擬器里Debugging
如果你的模擬器出現(xiàn)了問題,可以使用debug腳本,看看具體發(fā)生了些什么:
startmeego-debug
這個(gè)腳本會(huì)在控制臺(tái)輸出一些信息,這些信息應(yīng)該能給你問題的線索。
模擬器里的 Netbook UX 界面
它看起來像這樣:(缺圖)
已發(fā)現(xiàn)的問題:
*.一些依賴DBus的工具條組件(比如電池,網(wǎng)絡(luò))無法報(bào)告設(shè)備的工作狀態(tài)。
6 停止模擬器
要停止模擬器,只需要離開chroot shell:
exit
這會(huì)停止模擬器啟動(dòng)的所有進(jìn)程,并卸載chroot環(huán)境使用的路徑。這會(huì)輸出下面這樣的信息:
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
?
評(píng)論
查看更多