- OLPC2 □ 文/Mat
拜 QEMU 優良的模擬器技術之賜,即使我們沒有 OLPC 的實機, 依然可以透過模擬軟體的方式來試用和開發。 在進一步嘗試之前,我們先來認識一下 OLPC 的軟硬體規格如下:
拜 QEMU 優良的模擬器技術之賜,即使我們沒有 OLPC 的實機, 依然可以透過模擬軟體的方式來試用和開發。 在進一步嘗試之前,我們先來認識一下 OLPC 的軟硬體規格如下:
OLPC的外觀元件為:
硬體規格:
中央處理器
AMD Geode GX2-500,耗電1瓦,時脈366MHz。
記憶體
DDR266(133MHz) 128MB。
儲存媒體
無硬碟,只有內建512MB SLC NAND快閃記憶體,以及高速快閃記憶體控制器 。
螢幕
7.5吋 雙模式 1200 x 900 LCD液晶螢幕
單色模式:高解析度,反射式顯示模式
彩色模式:標準解析度、quincunx-sampled(五角取樣),穿透式顯示
特製『DCON』晶片,可以使螢幕上的資料繼續顯示但暫停CPU運作。
Wireless
Marvell Libertas 88W8388+88W8015, 802.11b/g compatible
擴充埠
USB 2.0 x3
網路埠
Marvell 88W8388 802.11b/g WiFi,雙可調式天線。
音效
Analog Devices AD1888 AC'97 codec、內建麥克風,還有一個Analog Devices SSM2211音效放大晶片。
鍵盤
70鍵的特製鍵盤,內建游標控制鍵。1.2mm鍵距、封閉薄膜式鍵盤。
滑鼠
螢幕內建觸控板,電容/壓感雙模式,可手寫輸入。
電力
內建可5 cell充電電池及人力發電機,2針式 DC輸入變壓器10 - 25 V/-23 - -10 V,最大電流500mA
指示燈
AC Power、電池、無線網路,蓋子打開或關閉都可以看到。
軟體規格:
作業系統
Fedora Linux特製版,但可選擇不包含此選項出貨。
使用者介面
Sugar OS,『為了孩子們重新設計的』
啟動管理程式
Linux BIOS,1MB SPI 介面 flash ROM。
OLPC 和 PC 系統很類似,也是 x86 平台,加上使用的 Fedora Linux 系統, 除了桌面視窗外觀看起來比較不一樣之外,其他方面跟泛 Linux 系統幾乎都一模一樣的。 筆者在這裡就以移稙 PCMan 到 OLPC 的例子,作一個簡單的測試開發流程介紹。
在開始之前,先假設你手邊已俱備下列幾個主要的工具:
QEMU i386 ( OLPC的平台是x86 )
GTK Libraries
ZIP, BZIP2 tools
操作步驟如下:
基本的設定
1. 首先要取得OLPC的映像檔
在這個網址下有放置開發中的各個版本的映像檔。 每個build的穩定度不一,為了穩定起見,這次先選擇 LATEST-STABLE-BUILD 的版本來測試。
下載完後,請解壓縮
bzip2 -d olpc-redhat-stream-development-devel_ext3.img.bz2
p.s. 目前筆者測試的版本為 406
2. 啟動qemu
qemu -redir tcp:2222::22 olpc-redhat-stream-development-devel_ext3.img
其中 "-redir tcp:2222::22"的意思是將 QEMU中的OLPC的:22 Port和本機端的:2222 Port接在一起。
3. 取得終端機和 root
進入到 OLPC 視窗環境後,在 OLPC 的模擬環境按 “Ctrl-Alt-3”, 就會進到 console 模式(要回到視窗模式請按 “Ctrl-Alt-1” )。 接著用 root 登入(預設沒有密碼),就可以順利取得 root console。 記得順便設定一下 root 的密碼。
4. 下一步?
根據官網上的說明,下一步應該就可以直接連線進去, 但是實際上卻不行,為什麼呢? 因為這時候的 OLPC 還沒有將網路啟動,需要先設定網路才行。
5. 設定網路
在 root console下執行
ifup eth0
或再加上執行
echo ifup eth0 >> /etc/rc.local
設成開機會自動啟動
6. 啟動sshd
請執行下列指令:
/etc/init.d/sshd start
執行到這裡,我們已經有能力可以連線到 QEMU 中的 OLPC 了。
7. 連線到OLPC
ssh -o NoHostAuthenticationForLocalhost=yes -p 2222 root@localhost
進行到這裡,我們已經有操控整個OLPC系統的能力,可以像使用一般Linux的方式去使用。 如果希望能有視窗轉送的機制(將原先顯示在 OLPC 裡的視窗程式,轉送到本機端的 X Window 來顯示)的話, 請執行
ssh -X -o NoHostAuthenticationForLocalhost=yes -p 2222 root@localhost
其中 "-X" 是設定視窗轉送的參數。這時候可以執行xterm看看,所產生的視窗將會從原本的 OLPC 改送到本機端來。
製作 PCMan 執行檔
目前 OLPC 並沒有內建 gcc 等開發工具。不過在 OLPC 查一下系統資訊(執行 uname -a) ,可以發現 OLPC 的平台是 i686 。 也就是說,我們可以先在本機端開發好程式,編譯好執行檔再上傳執行即可。 唯一要小心處理的就是執行環境的函式庫相依性。我們得確保執行檔在執行的時候,需要的函式庫 OLPC 都有提供, 才能保證正確執行。
PCMan 主要需要的函式庫是 GTK,還有一些像是 fontconfig, xft, 等相依性在 OLPC 上剛好都有提供。 加上 PCMan 都是遵循主流的標準來架構,因為相依性上遇到的問題較少。
1. 首先得先取得 PCMan 的原始碼
並解壓縮到某暫存目錄。
tar -zxvf pcmanx-gtk2-0.3.5.tar.gz
2. 製作執行檔
進到主程式的目錄後執行
./configure --prefix=/tmp/usr/ && make && make install
其中 “--prefix=/tmp/usr/” 這個選項的用意是將 PCMan 的執行檔安裝到 /tmp/usr/ 下的各個子目錄, 而不是預設的 /usr/ 下的子目錄。
3. 製作壓縮檔
檢查一下 /tmp/usr/ 下各個地方,應該會有 /tmp/usr/bin/pcmanx, /tmp/usr/lib/libpcmanx_core.so,…等檔案。 然後執行下列指令將目錄作成壓縮檔
zip -r pcmanx.zip /tmp/usr/
到這裡,我們就得到一個簡單的 PCMan 程式的包裝。
在 OLPC 上執行 PCMan
1. 如何上傳?
最直接的方式就是透過scp的方式上傳。
scp -o NoHostAuthenticationForLocalhost=yes -P 2222 ./pcmanx.zip root@localhost:/home/olpc/pcmanx.zip
2. 將程式安裝到 OLPC 裡
unzip -d / /home/olpc/pcmanx.zip
執行後,將會把 PCMan 的相關檔案,裝到 OLPC 下的 /usr 程式目錄。
3. 如何執行
由於 OLPC 的 XWindow 是用 olpc 這個使用者的身份執行。所以在執行前記得切換成 olpc 這個使用者
su - olpc
之後用視窗轉送的方式來執行
DISPLAY=:0.0 pcmanx
就可以看到 PCMan 的畫面了
參考內容:
shrink this item