2007/09/28

Hildon for MID/ubuntu




這幾天在看 MID 的東西,相信有興趣的人找一找就會有不少相關的文章,我原本想照著 Hildon 教學做,後來不怎麼順,甘脆就把系統從 ubuntu 7.04 升級成 7.10, 做法很簡單:

  • 假設你的系統是 ubuntu
  • 修改 /etc/apt/sources.list, 將 feisty 改成 gutsy,底下是我在用的內容,僅供參考:
    deb http://debian.linux.org.tw/ubuntu/ gutsy main universe multiverse restricted
    deb-src http://debian.linux.org.tw/ubuntu/ gutsy restricted main multiverse universe

    deb http://debian.linux.org.tw/ubuntu/ gutsy-updates main restricted
    deb-src http://debian.linux.org.tw/ubuntu/ gutsy-updates main restricted

    deb http://debian.linux.org.tw/ubuntu/ gutsy-security main restricted
    deb-src http://debian.linux.org.tw/ubuntu/ gutsy-security restricted main multiverse universe #Added by software-properties
    deb http://debian.linux.org.tw/ubuntu/ gutsy-security universe
    deb http://debian.linux.org.tw/ubuntu/ gutsy-security multiverse

    確保檔案裡至少有那份教學文件裡的 deb http://archive.ubuntu.com/ubuntu/ gutsy main restricted universe
  • 以 root 或 sudo 執行 apt-get update; apt-get dist-upgrade
    這一步要做很久很久,尤其你的網路若不夠快的話
  • 安裝 ubuntu-mobile, xserver-xephyr
  • 以 root 或 sudo 執行 printf '#!/bin/sh\nexit 101' > /usr/sbin/policy-rc.d ; chmod 755 /usr/sbin/policy-rc.d
  • 切換使用者成 ume 或以 ume 登入 sudo adduser ume
  • 接下來要兩個視窗,一個執行 X(就是你的工作帳號即可), 一個以 ume 的身份執行 hildon,先說說前者:
    Xephyr :1 -host-cursor -screen 800x480x16 -dpi 96 -ac

  • 開另一視窗執行 su - ume
  • 以該身份建立一個檔 start-hildon 並執行它,如此一來會看到前一視窗開啟的 X 出現 Hildon 畫面, 可以 chmod +x start-hildon:

    #!/bin/bash

    PREFIX=/usr
    THEME=${PREFIX}/share/themes/plankton

    export DISPLAY=:1

    export GTK2_RC_FILES=${THEME}/gtk-2.0/gtkrc:${THEME}/gtk-2.0/gtkrc.maemo_af_desktop
    export LANG=en_GB.UTF-8
    export LC_ALL=en_GB.UTF-8
    export LANGUAGE=en_GB.UTF-8

    exec /usr/lib/libgconf2-4/gconfd-2 &

    exec ${PREFIX}/bin/matchbox-window-manager -display ${DISPLAY} \
    -theme ${THEME}/matchbox/theme.xml \
    -use_titlebar yes \
    -use_desktop_mode plain \
    -use_lowlight no \
    -use_cursor yes \
    -use_super_modal yes &

    exec ${PREFIX}/lib/sapwood/sapwood-server &

    exec ${PREFIX}/bin/hildon-desktop
  • 5 意見:

    rex 提到...

    您好!試了您的方法後,一切都正常,但到了"Xephyr :1 -host-cursor -screen 800x480x16 -dpi 96 -ac"這一步,就顯示"Xephyr cannot open host display. Is DISPLAY set?",顯然是VGA card方面的問題,想請教您還有需要注意的項目嗎?謝謝

    菠蘿麵包 提到...

    這要在你的 host 開個 terminal 下命令: xhost + 讓外面(就是 :1)能夠把它的 X 視窗(X-client)顯示到你的 host 上(X-server)。

    Rex 提到...

    不好意思,我還算是個linux新手,可以再解釋的詳細一點嗎?謝謝

    菠蘿麵包 提到...

    說詳細的話,就有違背給釣竿不如給魚的宗旨,因為那得給你一支釣竿的說。

    這個網址你可以參考一下,當然你一定要抗議的,那麼再參考一下這個文件吧。如果你要說給釣竿真的好累啊,那麼,好吧,魚在這兒。什麼?你還是看不懂?

    真的要我打字的話,真的願意看我簡單的說明的話,那就說一下吧:

    一、X window 是 client/server 架構,真正顯示視窗的地方是 X-server, 而應用程式所在的地方是 x-client

    二、上面的說法,可以讓你從學校顯示一個應用程式的視窗到你家的電腦。普通情況下你不會這樣做,通常的情況下是同一台電腦,所以你會搞不懂,不過你還是得看懂第一點才行。

    三、x-server 要設定是否接受 x-client 丟來的顯示視窗要求,不然的話不就你的桌面有可能顯示一堆不知道是誰的程式?此時,可以透過 xhost 來指定要允許誰可以丟程式視窗過來。而設定 DISPLAY 環境變數,則是要告訴應用程式要把視窗丟到哪個 x-server 去。

    四、我是比較懶的,就用 xhost + 來讓所有 x-client 都可以丟過來。

    五、一般因為 x-server 與 x-client 是同一台,此時的 DISPLAY 值應該簡單設成 :0.0 即可,例如 export DISPLAY=:0.0

    六、第五點不適用在其他非顯示在自己電腦的情況,有時連要顯示在自己電腦的情況也會例外,但是再講就是釣竿了。

    七、那個 Xephyr :1 就是指定 DISPLAY=:1 的意思。

    以上看得懂的話當然沒話說,看不懂的話,說真的我也懶得打了啦。

    Rex 提到...

    感謝您啦~~您給的釣竿跟魚我都會去試~~只是有時卡在一個問題,就有一點走不出來的感覺~~我會努力的!!真的非常感謝您的指導!