在Qt框架下配置MeeGo SDK Xephyr運行環境
MeeGo是諾基亞和英特爾宣布推出一個免費手機操作系統,中文昵稱米狗,該操作系統可在智能手機、筆記本電腦和電視等多種電子設備上運行,并有助于這些設備實現無縫集成。這種基于Linux的平臺被稱為MeeGo,融合了諾基亞的Maemo和英特爾的Moblin平臺。
配置MeeGo SDK的Xephyr運行環境
查驗主機是否包含Intel圖形芯片組
lspci | grep VGA 預期輸出:
00:02.0 VGA compatible controller: ”’Intel Corporation”’ … (你的系統***含Intel圖形芯片組).
下載你目標平臺對應的MeeGo SDK
解壓下載的映像文件到工作目錄
tar xvjf 安裝meego-sdk-chroot腳本
“meego-sdk-chroot”腳本負責設置chroot環境的掛載點,并正確地啟動chroot. 該腳本在退出時會卸載在啟動時掛載的所有內容并清除啟動時加載的所有進程. 如下命令可以下載此腳本:
wget http://download3.meego.com/meego-sdk-chroot
為meego-sdk-chroot腳本增加可執行權限:
chmod +x ./meego-sdk-chroot
配置主機上的X允許Xephyr可以訪問其顯示區(allow Xephyr to access the display)
xhost +SI:localuser: 允許用戶”bob”訪問X顯示區的例子:
- xhost +SI:localuser:bob
(如果你的主機重啟了,那么在運行Xephyr或Qt Creator前,需要再一次運行xhost命令)
掛載并切換根目錄(chroot)到MeeGo映像
建立一個目錄用于掛載MeeGo映像:
- mkdir
將Meego映像掛載到新建的目錄上:
- sudo mount -o loop,offset=512
切換系統的終端根目錄(chroot)到MeeGo系統的根目錄上:
- 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
在執行meego-sdk-chroot后,你看到的終端輸出會是如下的一些內容:
- 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:/#
此時你已進入”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
啟動 Xephyr
從MeeGo chroot終端命令下執行:
- # startmeego &
這會啟動Xephyr服務器并且調用其它腳本啟動MeeGo UI.
退出模擬器/li>你可以通過直接關閉Xephyr窗口(點擊左上角的X按鈕)停止Xephyr服務.并在MeeGo Chroot終端中輸入exit退出MeeGo:
- # exit
這將關閉在chroot中啟動的所有進程,并且卸載因chroot環境中需要而掛載的目錄. 此時輸出應該是如下這個樣子的:
- 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
調試
如果在運行Xephyr時遇到問題, 可以運行調試腳本查看運行過程中的詳細信息:
- startmeego-debug
它會在命令行終端打印出來,在工作不正常時可以從中得到一些線索.
應用程序開發
你可以在MeeGo chroot環境中編譯和運行MeeGo應用程序。默認情況下,應用程序會顯示在新開的一個窗口中。為了能使你的應用能顯示在Xephyr的MeeGo界面中,請在MeeGo chroot終端環境中以如下命令啟動你的應用程序:
- # DISPLAY=:2
安裝其它軟件
你可以在MeeGo chroo環境里安裝更多其它軟件. 在MeeGo chroot終端中執行:
- # zypper install
你也可以使用以下命令更新整個MeeGo系統:
- # zypper dist-upgrade
小結:在Qt框架下配置MeeGo SDK Xephyr運行環境內容介紹完了,不足的是它依賴于DBus的一些面板顯示(比如電池,網絡)不能正確的報告設備信息.***希望能對你有所幫助。