2008/11/25

Neo FreeRunner 新手手冊 (2) 登入 FreeRunner 終端機及安裝/更新套件


Neng-Yu Tu (Tony Tu)

FreeRunner 基本上有兩種終端機 (Terminal) 模式, 分別是 u-boot 時的 UART 終端機模式以及開機完成後, 可以透過 FreeRunner 預設的 SSH server 連進 FreeRunner. 基本上直接用 Linux (或是 vmware 上的 Linux) 的系統做這些連線比較簡單, 只要直接連上就可以直接從 /dev/ttyACM0 或是 ifconfig 看到 USB0. Windows 則需要裝另外的 RNDIS gadget 驅動程式 .inf 檔案. 接下來會針對這幾種方式說明.

Neo 還有一個 debug board (上面還有一顆蠻神奇的 FTDI 晶片), 可以透過主板上的 debug port (UART/JTAG) 對 Neo 做低階除錯動作. 在此先略過.

[U-Boot 終端機]

U-Boot 的終端機是典型的 UART terminal, NOR flash 跟 NAND flash 裡面的 u-boot 預設的輸出導向都是 USB tty. U-boot 終端機可以用來做一些低階的 register 開關或設定動作. 或是像是重設開機環境變數之類. 相關的資料可以從:

http://wiki.openmoko.org/wiki/U-boot 找到. 以 NOR u-boot 來說, 開機時按下 Aux 鍵, 再按下開機鈕, 畫面會停在 u-boot 上. 此時連接 FreeRunner 及手機上的 USB 接頭, 應該可以在 /dev 下看到 ttyACM0.

然後可以挑一個習慣的 COM port 公用程式, 像是 minicom 或是圖形的 cutecom. 或是個人常用的 neocon/cu . neocon 可以從http://svn.openmoko.org/developers/werner/neocon/ 找到.

連接參數為 115200, N, 8, 1, no hardware flow control

[用 SSH 連到 Neo]

FreeRunner 預設的 image 都有 SSH server/client (dropbear), 可以透過 SSH 進到 FreeRunner , 同時可以用 SCP 做一些檔案傳輸的工作. FreeRunner USB 埠預設的

IP address 是 192.168.0.202, netmask 是 255.255.255.0 這些設定都可以在FreeRunner /etc/network/interfaces 下修改.

所以當開機完成後, 連接電腦及 FreeRunner, 然後用 root 帳號登入 192.168.0.202 (使用 sudo or login as root), 密碼是空白:

root@ubuntu:~# ifconfig usb0 192.168.0.200 netmask 255.255.255.0
root@ubuntu:~# ssh root@192.168.0.202
root@192.168.0.202's password:
root@om-gta02:~#

然後接下來你就可以下一般的 linux command 及使用 script 了.

[安裝及更新套件]

Openmoko 使用源自 ipkg 的 opkg 套件管理系統, 改名的原因有很多, 但是重點是: 基本架構 opkg 跟 ipkg 是很類似的. 如果使用過 yum 或是 apt-get, opkg 的用法也是差不多的. 所以安裝套件有 3 種方式, 一種是將套件檔 xxx.ipk 或 xxx.opk 從網路上下載, 然後手動進終端機畫面後安裝. 第 2 種, 是利用 Neo 本身的 USB/Wi-Fi/Bluetooth 網路功能, 連線後透過終端機進行套件的安裝工作. 或是第 3 種, 網路連線後, 透過 2008.x 上面的 Installer 來進行安裝.

由於 Openmoko 本身非常具有 "community development" 的特性 ;) 所以套件的相關位址和狀態一直在變化. 最早隨 FreeRunner 出貨的 200804 GTK (有時也被稱為 2007.x 版) 版本, 是無法直接用 opkg update 或是 opkg upgrade 到最新的 Om2008. 9 or later . 建議直接參考其他資料先進行 FreeRunner 更新 image 的動作. 同時 2008.x 也有 release/un-stable/testing 的幾個不同的 tracking. 不同 Tracking 的差別會稍後說明.

FreeRunner 相關的 opkg feed 設定, 可以在 etc/opkg/ 的 .conf 檔案中找到. opkg 套件管理程式主要的 maintainer 是 tick.

* 手動安裝
Step 1: 搜尋一下哪裡有提供 neo package 的位址, 或可以從 http://t0ny.net/openmoko/opkg/samples/ 下載 orrery_2.0_arm_2008.8.ipk 然後繼續下面的步驟.

Step 2: 透過下面的命令連線:
root@tony-ubuntu:~# ifconfig usb0 192.168.0.200 netmask 255.255.255.0
root@tony-ubuntu:~# ssh root@192.168.0.202
root@192.168.0.202's password:
root@om-gta02:~# scp root@192.168.0.200:~/Desktop/opk/orrery_2.0_arm_2008.8.
ipk root@192.168.0.202:~
WARNING: Ignoring unknown argument '-x'
WARNING: Ignoring unknown argument '-oClearAllForwardings yes'
WARNING: Ignoring unknown argument '-n'
root@192.168.0.200's password:
root@om-gta02:~# ls

Step 3: 直接利用 opkg install orrery_2.0_arm_2008.8.ipk 安裝套件. 有時套件系統會因為某一些系統行為停掉, 此時你必須使用killall packagekitd 來停掉 opkg 服務再重新進行安裝程序.

* 透過網路安裝
透過網路連線需要幾個額外的步驟, 建立 USB/wi-fi/Bluetooth 網路連線及設定 Neo 的 DNS 設定. 設定完後, 就可以直接透過 opkg install 安裝.

root@om-gta02:~#opkg install packagename.opk

* 透過 UI 上的 Installer 安裝
必須先建立網路連線, 才能透過 Installer 安裝相關的 package. 你必須先到 2008.x 的主畫面中, 選擇 Settings, 然後啟動 wi-fi 並輸入 WPA 密碼. 螢幕小鍵盤的使用方式很 tricky, 你必須在鍵盤右側的黑框上, 上下移動選擇數字或其他特殊符號. 由於 2008.x 的 wi-fi 設定程式有些 bug, 建議參考其他方式確認網路連線後, 再透過 Installer 安裝.

[移除 package]
移除 package 可以使用 opkg remove package_name , 相關的命令可以用 opkg --help 找到

沒有留言:

 
Creative Commons License
著作 係採用創用 CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款授權.