Hello World for OLPC
許多朋友好奇前天的螢幕快照怎麼來的,其實過程並沒有想像中的那麼難。小弟就以作一個Hello World的程式作範例。
在開始之前,先假設你手邊已俱備下列幾個主要的工具:
- QEMU i386 ( OLPC的平台是x86 )
操作步驟如下:
-
首先取得OLPC的映像檔:按這裡下載
-
啟動qemu
qemu -redir tcp:2222::22 olpc-redhat-stream-development-devel_ext3.img
其中 -redir tcp:2222::22
的意思是將 QEMU 中的 OLPC 的 :22
Port 和本機端的 :2222
Port 接在一起。
- 取得終端機
進入到 OLPC 視窗環境後,在 OLPC 的模擬環境按 Ctrl-Alt-3
,就會進到console模式(要回到視窗模式請按 Ctrl-Alt-1
)。
接著用 root
登入(預設沒有密碼),就可以順利取得 root console。
記得順便設定一下root的密碼。
- 下一步?
根據官網上的說明,下一步應該就可以直接連線進去,但是實際上卻不行,為什麼呢? 因為這時候的OLPC還沒有將網路啟動,需要先設定網路才行。
- 設定網路
在root console下執行
ifup eth0
或是
echo ifup eth0 >> /etc/rc.local
設成下次自動啟動
- 確定啟動sshd
/etc/init.d/sshd start
執行到這裡,我們已經有能力可以連線到 QEMU 中的 OLPC 了。
- 連線到OLPC
ssh -X -o NoHostAuthenticationForLocalhost=yes -p 2222 root@localhost
其中 -X
是設定視窗轉送的參數。(可以執行 xterm 看看,所產生的視窗會將送到本機端來)。
進行到這裡,我們已經有操控整個 OLPC 系統的能力,可以像使用一般 Linux 的方式去使用。
- 如何作一個最簡單的 Hello World ?
目前 OLPC 並沒有內建 gcc 等開發工具。不過 uname
一下,可以發現 OLPC 的平台是 i686 。
也就是說,我們可以先在本機端開發好程式,編譯好了再上傳執行即可。
而在 OLPC 裡的視窗程式執行環境為 gtk、pygtk 。我們不妨利用現在的 pygtk 來作為試驗。 在這裡我們就直接引用 pygtk 給的官方範例。
- 如何上傳?
最直接的方式就是透過 scp
的方式上傳。
scp -o NoHostAuthenticationForLocalhost=yes -P 2222 ./helloworld.py root@localhost:/home/olpc/hello_world.py
- 如何執行:
由於 OLPC 的 XWindow 是用 olpc
這個使用者的身份執行。
所以在執行前記得切換成 olpc
這個使用者
su - olpc
之後用視窗轉送的方式來執行
DISPLAY=:0.0 ./helloworld.py
就可以看到簡單的 Hello World 的畫面了