每特17劃

及時當勉勵 2004/06/07

OLPC Hacking Meet-up心得 — 2007-06-29

OLPC Hacking Meet-up心得

經過十天的等待,於於完成了這次「OLPC Hack Meet-Up Day」 的活動。 活動期間,感謝 jollen、jserv、PingYeh、 Andrew、…等人提供不少對活動的經驗和建議。 這段期間也感謝 BV1AL、KC、olv、 FourDollars、linanne、aguai、wesley、thinker、yungyuc、gasolin、yuren…等人的幫忙,才能順利 將活動完成。

活動開始,先是由Mat簡單介紹一下如何用 QEMU 模擬 OLPC 和測試程式。 之後則是共同開發和交流討論。 21:10-22:00 則是展示時間,首先是jserv展示了 QEMU 用於模擬系統開發的各個應用,也現場展示了他最新的成果「親手打造Tablet / WebPad」。 接著,FourDollars 也跟著和大家分享影音串流程式最新的發展,分析未來的驅勢。 並同時展示了一個他參考 pcman 的程式而改出來的影音外掛程式。 可以非常方便的點選網路廣播並收聽,並發想也能整合進 OLPC ,提高 OLPC 的娛樂性。

而在 PCMan on OLPC 這個主題上,由國內開發 LiveCD(USB) 系列的 BV1AL 將 gcinOLPC 上的成果作成 LiveCD 的映像檔,並設定好網路等相關部分。 而 PCMan X 開發團隊的字型好手 olv ,則是解決 OLPCPCMan X 中文字型顯示的問題。 在經過一段時間修改,順利將兩方的成果結合起來,如下:

雖然還是有許多小缺點,但這張快照也象徵了我們用行動來實踐我們的信念,也呼應了活動發起的訴求。

在活動期間,wesley、aguai、annelin… 也嘗試利用 QEMU 建立多個 OLPC 來模擬 mesh network 的測試環境。 而 Andrew、PingYeh、BV1AL、… 在 Tick 偶然拿到 OLPC 實機的 root console 後,也著手研究了 OLPC 的系統更新、開機流程,相信不久之後也能見到相關的經驗分享。

最後希望能持續將這些成果整理出來,以開放的方式回饋給 upstream 和社群。

Hello World for OLPC — 2007-06-21

Hello World for OLPC

許多朋友好奇前天的螢幕快照怎麼來的,其實過程並沒有想像中的那麼難。小弟就以作一個Hello World的程式作範例。

在開始之前,先假設你手邊已俱備下列幾個主要的工具:

  • QEMU i386 ( OLPC的平台是x86 )

操作步驟如下:

  1. 首先取得OLPC的映像檔:按這裡下載

  2. 啟動qemu

qemu -redir tcp:2222::22 olpc-redhat-stream-development-devel_ext3.img

其中 -redir tcp:2222::22 的意思是將 QEMU 中的 OLPC 的 :22 Port 和本機端的 :2222 Port 接在一起。

  1. 取得終端機

進入到 OLPC 視窗環境後,在 OLPC 的模擬環境按 Ctrl-Alt-3,就會進到console模式(要回到視窗模式請按 Ctrl-Alt-1 )。 接著用 root 登入(預設沒有密碼),就可以順利取得 root console。 記得順便設定一下root的密碼。

  1. 下一步?

根據官網上的說明,下一步應該就可以直接連線進去,但是實際上卻不行,為什麼呢? 因為這時候的OLPC還沒有將網路啟動,需要先設定網路才行。

  1. 設定網路

在root console下執行

ifup eth0

或是

echo ifup eth0 >> /etc/rc.local

設成下次自動啟動

  1. 確定啟動sshd
/etc/init.d/sshd start

執行到這裡,我們已經有能力可以連線到 QEMU 中的 OLPC 了。

  1. 連線到OLPC
ssh -X -o NoHostAuthenticationForLocalhost=yes -p 2222 root@localhost

其中 -X 是設定視窗轉送的參數。(可以執行 xterm 看看,所產生的視窗會將送到本機端來)。 進行到這裡,我們已經有操控整個 OLPC 系統的能力,可以像使用一般 Linux 的方式去使用。

  1. 如何作一個最簡單的 Hello World ?

目前 OLPC 並沒有內建 gcc 等開發工具。不過 uname 一下,可以發現 OLPC 的平台是 i686 。 也就是說,我們可以先在本機端開發好程式,編譯好了再上傳執行即可。

而在 OLPC 裡的視窗程式執行環境為 gtk、pygtk 。我們不妨利用現在的 pygtk 來作為試驗。 在這裡我們就直接引用 pygtk 給的官方範例

  1. 如何上傳?

最直接的方式就是透過 scp 的方式上傳。

scp -o NoHostAuthenticationForLocalhost=yes -P 2222 ./helloworld.py root@localhost:/home/olpc/hello_world.py
  1. 如何執行:

由於 OLPC 的 XWindow 是用 olpc 這個使用者的身份執行。 所以在執行前記得切換成 olpc 這個使用者

su - olpc

之後用視窗轉送的方式來執行

DISPLAY=:0.0 ./helloworld.py

就可以看到簡單的 Hello World 的畫面了

PCManX on OLPC — 2007-06-18

PCManX on OLPC

感謝 jollen 前輩的幫忙,讓我有進一步接觸 OLPC (傳說中的百元電腦)的機會。

去年年底時就聽了好幾次 OLPC 的新聞,能真的用到實品,興奮之情真是難以言喻。 期待歸期待,真實世界的 OLPC 用起來感覺倒還不是很順暢。 可能是裡頭的軟體版本還沒跟到最新版,或是還不夠成熟,沒有完全發揮硬體完全的效能的原因吧。

想要更新到最新的版本,然而手邊又沒有工具也是沒輒。幸好,拜模擬器之賜,軟體的開發不再死死侷限在硬體上。

OLPC 的組織已經有提供好相關的軟體模擬環境和開發工具,讓參與者即使沒有機器也能進行軟體測試與開發的工作。 其相關的聯結如下:

幸運的是, OLPC 的本質就是Linux系統,只有表面的介面看起來不太一樣,其他的系統設定跟程式環境都一樣。 只要拿到 OLPC 裡的super-user,理論上幾乎可以作到任何在Linux上的事。 「理論上?!」 我們總是需要作一些嘗試來堅定我們的信念。

BBS可說是咱在地特有的文化,適逢(Open-) PCMan於日前釋出2007的 最新版本 。 何不移稙一個 BBS 軟體到 OLPC 上呢? 經過幾天的嘗試,終於有了初步的成果如下: