在Qt框架下配置MeeGo SDK的Xephyr運(yùn)行環(huán)境
這是一個(gè)翻譯自MeeGo網(wǎng)站的一個(gè)文章,也是對(duì)《MeeGo移動(dòng)應(yīng)用程序開(kāi)發(fā)入門(mén)》的一個(gè)補(bǔ)充,詳細(xì)介紹了如何使用Xephyr搭建MeeGo SDK的開(kāi)發(fā)環(huán)境。
配置MeeGo SDK的Xephyr運(yùn)行環(huán)境
查驗(yàn)主機(jī)是否包含Intel圖形芯片組
- $ lspci | grep VGA
預(yù)期輸出:
- 00:02.0 VGA compatible controller: ”’Intel Corporation”’ …
(你的系統(tǒng)最好含Intel圖形芯片組).
下載你目標(biāo)平臺(tái)對(duì)應(yīng)的MeeGo SDK
解壓下載的映像文件到工作目錄
- $ tar xvjf
安裝meego-sdk-chroot腳本
“meego-sdk-chroot”腳本負(fù)責(zé)設(shè)置chroot環(huán)境的掛載點(diǎn),并正確地啟動(dòng)chroot. 該腳本在退出時(shí)會(huì)卸載在啟動(dòng)時(shí)掛載的所有內(nèi)容并清除啟動(dòng)時(shí)加載的所有進(jìn)程. 如下命令可以下載此腳本:
- $ wget http://download3.meego.com/meego-sdk-chroot
為meego-sdk-chroot腳本增加可執(zhí)行權(quán)限:
- $ chmod +x ./meego-sdk-chroot
配置主機(jī)上的X允許Xephyr可以訪問(wèn)其顯示區(qū)(allow Xephyr to access the display)
- $ xhost +SI:localuser:
允許用戶”bob”訪問(wèn)X顯示區(qū)的例子:
- $ xhost +SI:localuser:bob
(如果你的主機(jī)重啟了,那么在運(yùn)行Xephyr或Qt Creator前,需要再一次運(yùn)行xhost命令)
掛載并切換根目錄(chroot)到MeeGo映像
建立一個(gè)目錄用于掛載MeeGo映像:
- $ mkdir
將Meego映像掛載到新建的目錄上:
- $ sudo mount -o loop,offset=512
切換系統(tǒng)的終端根目錄(chroot)到MeeGo系統(tǒng)的根目錄上:
- $ sudo ./meego-sdk-chroot
例子:
- $ sudo mkdir /opt/meego-handset
- $ sudo mount -o loop,offset=512 ./meego-handset-ia32-1.0.80.9.20100706.1-sdk-pre0721.raw /opt/meego-handset
- $ sudo ./meego-sdk-chroot /opt/meego-handset
在執(zhí)行meego-sdk-chroot后,你看到的終端輸出會(huì)是如下的一些內(nèi)容:
- mount –bind /proc /home/ell/meego-sdk-0524/proc
- mount –bind /sys /home/ell/meego-sdk-0524/sys
- mount –bind /dev /home/ell/meego-sdk-0524/dev
- mount –bind /dev/pts /home/ell/meego-sdk-0524/dev/pts
- mount –bind /tmp /home/ell/meego-sdk-0524/tmp
- mount –bind /var/lib/dbus /home/ell/meego-sdk-0524/var/lib/dbus
- mount –bind /var/run/dbus /home/ell/meego-sdk-0524/var/run/dbus
- cp /etc/resolv.conf /home/ell/meego-sdk-0524/etc/resolv.conf
- root@meego-handset-sdk:/#
此時(shí)你已進(jìn)入”MeeGo 終端”. 它仿如運(yùn)行在真正的MeeGo操作系統(tǒng)里,路徑,程序,庫(kù),環(huán)境這些都和你在MeeGo上網(wǎng)本或手機(jī)中看到的一模一樣.
提示: ”meego-sdk-chroot”會(huì)用到”chroot”命令.請(qǐng)確保你的PATH路徑中包含了”chroot”命令:
- $ alias chroot=’/usr/sbin/chroot’
#p#
在Xephyr環(huán)境中啟動(dòng)MeeGo UI
設(shè)置DISPLAY環(huán)境變量
因?yàn)閄ephyr是在chroot終端中運(yùn)行的,因此無(wú)法獲得主機(jī)DISPLAY環(huán)境變量的值. 在MeeGo chroot終端中運(yùn)行’’startmeego”腳本前,使用以下命令設(shè)置DISPLAY的值.
- # export DISPLAY=:0
啟動(dòng) Xephyr
從MeeGo chroot終端命令下執(zhí)行:
- # startmeego &
這會(huì)啟動(dòng)Xephyr服務(wù)器并且調(diào)用其它腳本啟動(dòng)MeeGo UI.
MeeGo UI
MeeGo UI
退出模擬器/li>你可以通過(guò)直接關(guān)閉Xephyr窗口(點(diǎn)擊左上角的X按鈕)停止Xephyr服務(wù).并在MeeGo Chroot終端中輸入exit退出MeeGo:
- # exit
這將關(guān)閉在chroot中啟動(dòng)的所有進(jìn)程,并且卸載因chroot環(huán)境中需要而掛載的目錄. 此時(shí)輸出應(yīng)該是如下這個(gè)樣子的:
- umount /home/ell/meego-sdk-0524/proc
- umount /home/ell/meego-sdk-0524/sys
- umount /home/ell/meego-sdk-0524/dev/pts
- umount /home/ell/meego-sdk-0524/dev
- umount /home/ell/meego-sdk-0524/tmp
- umount /home/ell/meego-sdk-0524/var/lib/dbus
- umount /home/ell/meego-sdk-0524/var/run/dbus
調(diào)試
如果在運(yùn)行Xephyr時(shí)遇到問(wèn)題, 可以運(yùn)行調(diào)試腳本查看運(yùn)行過(guò)程中的詳細(xì)信息:
- startmeego-debug
它會(huì)在命令行終端打印出來(lái),在工作不正常時(shí)可以從中得到一些線索.
應(yīng)用程序開(kāi)發(fā)
你可以在MeeGo chroot環(huán)境中編譯和運(yùn)行MeeGo應(yīng)用程序。默認(rèn)情況下,應(yīng)用程序會(huì)顯示在新開(kāi)的一個(gè)窗口中。為了能使你的應(yīng)用能顯示在Xephyr的MeeGo界面中,請(qǐng)?jiān)贛eeGo chroot終端環(huán)境中以如下命令啟動(dòng)你的應(yīng)用程序:
- # DISPLAY=:2
安裝其它軟件
你可以在MeeGo chroo環(huán)境里安裝更多其它軟件. 在MeeGo chroot終端中執(zhí)行:
- # zypper install
你也可以使用以下命令更新整個(gè)MeeGo系統(tǒng):
- # zypper dist-upgrade
已知問(wèn)題
依賴于DBus的一些面板顯示(比如電池,網(wǎng)絡(luò))不能正確的報(bào)告設(shè)備信息.
原文標(biāo)題:MeeGo SDK with Xephyr
原文地址:http://wiki.meego.com/MeeGo_SDK_with_Xephyr
【編輯推薦】