About me

我的相片
I'm a web and software developer from Kaohsiung, Taiwan.
I design and implement user interfaces, also contribute to open source projects.
http://penkia.net/portfolio

2010年2月20日 星期六

Notes on Chromium OS for ARM

各位新年快樂! ULLab 的團隊成員除了在年假中加緊趕工, 為 xPUD 新版本加入平板模式 (tablet mode) 的支援外, 也「嘴巴說不要、身體卻很誠實」地接了一些 Chrome OS 的客製化案子.



如同之前提到的, 第一版的 Chrome OS 建置方式著實有點虛弱, 無法滿足不同平台或是未來實做各項功能的需求, 因此我們可以發現 Google 動作很快的提出了一些改進, 改用了一套新的 build system, 主要有兩個特點:
  • 採用 Gentoo Linux 的 portage 作為套件管理/編譯系統
  • 目前只支援 64 位元的平台
我們比較關注的 ebuild 目前都放在 ~/trunk/src/third_party/chromiumos-overlay/chromeos-base/ 底下, 若是熟悉 Gentoo 的話照著文件也可以輕易上手.

寫給自己的一些骯髒溫馨小提示:
  • 為了略過一些套件或修正編譯問題, 改完 ebuild 以後要重新產生 Manifest, 如 ebuild ~/trunk/src/third_party/chromiumos-overlay/chromeos-base/chromeos-chrome-bin/chromeos-chrome-bin-0.0.1-r1.ebuild manifest
  • 若有自己重打包原始碼放在 /var/lib/portage/distfiles/, 要重算 du -b, rmd160 -x, sha1sumsha256sum. (太髒了不推薦 XD)
另外有別於一般的 chromium 瀏覽器, 我們需要的是 "chromeos" 版的 (這樣才有左上角的 Panel), 在取得原始碼後:
  • .gclient 中加入:
    { "name"        : "cros_deps",
    "url" : "http://src.chromium.org/svn/trunk/cros_deps",
    } ,
  • 設定 GYP_DEFINES=chromeos=1
  • 執行 gclient sync --deps="unix,chromeos"
其他的部份可參考文件 Building Chromium for ARMBuild instructions for Linux.

2010年2月3日 星期三

Daily Bookmarks 02/03/2010

淚推李宗盛新作「給自己的歌」

http://blog.roodo.com/honeypie/archives/11599691.html

Facebook 的 PHP 加速計畫

http://blog.gslin.org/archives/2010/02/03/2211/

Rails3 架構與進展 Part.1

http://blog.xdite.net/?p=1497

Great products are triumphs of taste

http://37signals.com/svn/posts/2129-great-products-are-triumphs-of-taste

iPad: forget the old people — it's a chick magnet

http://ultimibarbarorum.com/2010/01/29/ipad-actually-its-a-chick-magnet/

Interface magazine takes a look at 37signals' "paradoxical" approach
to business

http://37signals.com/svn/posts/2125-interface-magazine-takes-a-look-at-37signals-paradoxical-approach-to-business

Entrepreneurial Success Not Correlated to University Prestige

http://www.lonegunman.co.uk/2009/12/21/entrepreneurial-success-not-correlated-to-university-prestige/

Why testers?

http://www.joelonsoftware.com/items/2010/01/26.html

A little less conversation

http://www.joelonsoftware.com/items/2010/01/22.html

Rocket Surgery Made Easy

http://www.joelonsoftware.com/items/2010/01/25.html

Change The World!

http://blog.vgod.tw/2010/01/25/change-the-world/

git archive 與 log 小技巧

http://people.debian.org.tw/~chihchun/2010/02/01/git-archive-and-log/

[Licensing a game] 買遊戲#1 從5萬美金開始做夢

http://www.gameimp.com/archives/2010/01/25/1585/

iPad,數位閱讀「失落的一角」

http://www.readgoing.com/?p=509

iPad與電子書,還不明朗的未來世界

http://www.readgoing.com/?p=492

Keep Your Mouth Shut

http://forecasterror.blogspot.com/2010/01/keep-your-mouth-shut.html

The Heavyweight Fight is On

http://forecasterror.blogspot.com/2010/01/heavyweight-fight-is-on.html

Ya or Nay on Bernanke's Next Term?

http://forecasterror.blogspot.com/2010/01/ya-or-nay-on-bernankes-next-term.html

微软雅黑的设计

http://vic.sina.com.cn/news/27/2009/0820/4684.html

THOUGHTS ON IPAD

http://jiwostudio.com/archives/1942

2010年2月1日 星期一

xPUD 火力展示:全世界最小的 Chromium OS


下載: minimized-chromiumos.iso (58MB)

xPUD 專案的特色一向是強調活動規劃式 (activity-based) 的介面、對既有程式與網頁的整合、以及降低網頁開發者撰寫客製化介面的門檻。很高興 Google 的 Chrome OS 專案與 xPUD 團隊對於未來的作業系統分享著一些共通的觀點,儘管我們說著不同的故事,但有著相似的看法。

在測試過 Chromium OS 及其編譯系統後,我們發現這是一個絕佳的機會,可以藉此展示 xPUD 的彈性與縮小體積的能力。因此我們很高興的釋出此一實驗性質的版本:Minimized Chromium OS。相較於一般動輒 2G~4G 的映像檔,xPUD 的編譯系統 mkxpud 成功地將整個系統體積縮小為不到 60MB。

注意:這個版本並不適用於一般使用者的日常使用,更多資訊請參考以下關於技術細節的段落。

安裝方式


就像每一個 xPUD 檔案一樣,這個 ISO 本身是 LiveCD 也是可開機的混合式映像檔 (hybrid iso image)。因此製作可開機隨身碟的方式非常簡單,直接使用 dd 指令即可:
# dd bs=4096 if=minimized-chromiumos.iso of=/dev/sdX

主要功能

  • 縮小的系統:基本系統 (32MB);瀏覽器 (18MB);輸入法 (8MB)
  • 跳過開機畫面與登入選單
  • Chromium OS 瀏覽器與外掛 (不包含 DeviceKit 所以電量顯示沒有作用)
  • 中文字型與常見輸入法

技術細節


其實根據官方的文件顯示,第一階段的 Chromium OS 實作真的沒有什麼特別,說穿了不過就是個 Ubuntu 系統加上瀏覽器,以及用 Clutter 寫成的視窗管理程式。

開機流程當中,以樹狀圖來看就是
slim
|-- Xorg
`-- ck-launch-session
`-- chromeos-wm -+-chromeos-chrome
/sbin/chromeos-startup 這隻程式叫出開機畫面,透過 SLiM 進行登入管理,在使用者登入後,執行 /etc/X11/chromeos-xsession 開啟視窗管理程式 /usr/bin/chromeos-wm,並透過無限迴圈的 /usr/bin/chromeos-chrome-loop 確保瀏覽器不會被關掉。

這是一個在接案子的過程中產生的有趣實驗,我們的用意是以此來探討 Chromium OS 的客製化與開機流程,也歡迎有興趣加入參與 xPUD 開發的人敬請指教。 :-)