每特17劃

及時當勉勵 2004/06/07

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 的畫面了