2010年1月27日 星期三

Jserv's CURT v1 ARM 精簡作業系統

以下是我設定作業環境來編繹CURT v1的心得 (rework 2011-04-14)


 A.編繹程式

1. 下載工具
 a. 原 Toolchain for CURT v1


 b. gcc 4.4.1 for  by cyt93cs 



2. 安裝工具 (from sourceryg)
$ md5sum sourceryg++-4.4-93-arm-none-linux-gnueabi.bin
e9b81d6288c29f992f4af3d7c1cbddda sourceryg++-4.4-93-arm-none-linux-gnueabi.bin
$ ./sourceryg++-4.4-93-arm-none-linux-gnueabi.bin
The installer has detected that your system uses the dash shell
as /bin/sh. This shell is not supported by the installer.

You can work around this problem by changing /bin/sh to be a
symbolic link to a supported shell such as bash.

For example, on Ubuntu systems, execute this shell command:
% sudo dpkg-reconfigure -plow dash

Install as /bin/sh? No

3. 接著回到X-window 啟動Sourcery整合作業環境
輸入從codesourcery所申請的試用 license

B. 環境設定

1. 重設一下shell 的執行環境
sudo dpkg-reconfigure -plow dash

2. 安裝qemu-arm-static, qemu-kvm-extras
使用ubuntu 內建的 Synaptic 安裝檔案管理員來進行安裝

 
3. 設定toolchain 所在位置
PATH="/opt/CodeSourcery/sourcery_G++/bin:${PATH}"
export PATH
可由此下載原始碼 (http://blog.linux.org.tw/~jserv/archives/002082.html)
感謝 Jserv 的資訊 http://code.google.com/p/curt-v1-rework/ 主要進一些修改several patches were landed.

C. 編繹 CURT v1
1. 解壓縮程式碼 curt-src-v1.tar.bz2

2. 修正程式碼 device/serial.c第39行 有toolchain 相容問題如下:
if (!xxx && 0x00000040)
correct it to
if ((!xxx) && 0x00000040)

3.編繹
$ cd CuRT_v1/app/shell
$ make
~/CuRT_v1/app/shell$ ./prepare-flash
16384+0 records in
16384+0 records out
16777216 bytes (17 MB) copied, 0.0454887 s, 369 MB/s
16+1 records in
16+1 records out
16980 bytes (17 kB) copied, 4.0371e-05 s, 421 MB/s

D. 執行

~/CuRT_v1/app/shell$ ./run-on-connex
 
 
 
備註:記得要在X-Window 下開啟終端機,才能正確執行qemu-system-arm.

 
參考資料

http://sites.google.com/site/embedded2009/introduction-to-curt-v1
http://blog.linux.org.tw/~jserv/archives/002082.html
http://code.google.com/p/curt-v1-rework/

更新2011-09-18:
 - 其他同好網友文章:CuRT porting到x86成功

更新2012-04-01 相關文章連結
 - http://ccckmit.wikidot.com/os:curtos

1 則留言:

jserv 提到...

FYI.
http://code.google.com/p/curt-v1-rework/

several patches were landed.