2008年11月7日 星期五

Trace code tool

以前在Trace OpenSouce code時,常直接用文字編輯器,感覺很不方便,還要自己找檔案。最近發現一套很好用trace code的工具[GNU Global],它能很神奇的將程式碼變成網頁,而且產生方式超簡單的。

產生網頁的方法:

1. 進入原始碼的目錄下

$ cd ~/speech

2. 執行htags

$ htags -g -F
-g 先執行 gtags
-F 代表要將網頁切成多個Frame

3. 原始碼目錄下就會產生一個叫HTML的目錄

就可以直接用Browser開啟index.html,如下圖所示。



接下來看code就很快了....

2008年8月27日 星期三

Qemu for ARM System emulator

[Qemu]是個相當不錯的模擬器,它不只可以模擬x86,還可模擬arm。最近找了很多相關的資料,發現目前已經有很多人寫了不錯的教學,而且qemu支援的arm平台[ARM System emulator]也相當多。但重點是qemu並非所有arm的平台都支援,所以或許可以找找patch或自己試著修改看看,才能符合自己的平台。

[OPENCSL]這個網站相當不錯,初學者可以很快做出一個"ARM Integrator"(ARMB26EJ-S的架構)的模擬器。另外是OpenMoko[Neo1973],目前已有修改過後的qemu,跑出來就跟真的環境一樣。然後[Linux on Palm 5]也有修改後的模擬器,都可以實際跑起來。

有興趣的朋友,可以玩玩看,我覺得還滿有趣的。

2008年2月22日 星期五

OSDC.TW 2008

一年一度的OSDC.TW又要來了。

去年OSDC.TW 2007我有去參加,覺得主辦人[hcchien]相當用心,而且可以看到很多很厲害的OpenSource高手的"真面目",而且可以見識到現在很多新技術和想法,個人覺得OSDC.TW真的是不錯的Conference...

今年的[議程],也很令人期待,想報名的人請到[報名],要快哦!!不然很快就滿了><"

Reference: [OSDC.TW]

2008年2月20日 星期三

空閒時間看Linux kernel原始碼

看Linux kernel的原始碼是一種很有趣的事情,可以看到很多用C寫奇怪的作法,真很有趣,如jserv所提到的[C 語言的 trigraph/digraph]一文。

只是因為只有空閒時間才能看,所以都只能看片段,沒辦法一層一層的往下找"真相",只有大約知道API怎麼CALL、用什麼樣的結構和演算法等等。

不過令人驚訝的是Linux kernel有超完整的架構,讓我這個初學者超佩服的,這時才知道自己的渺小。

未來,我會找時間來整理一些自己看kernel的想法...

2007年11月27日 星期二

Poring Linux Kernel 2.6 for DIMMPC 520i (Part 1)

最近終於找到時間來Porting板子囉!!

測試完IDE介面,發現可以接硬碟和光碟機...


於是很有趣的將之前收到的ubuntu 7.10放進去跑跑看,結果:

天啊,有畫面也可以跑耶!!但...

kernel還是跑不起來,也只好乖乖porting了...><"

2007年11月18日 星期日

小筆電裝Ubuntu 7.10

今天終於跟裝了兩年多的gentoo說byebye了,
一直都想要換,畢竟我的小筆電速度不夠快,
總不能每裝一套package就一直compiler...吧!!

也剛好昨天回家,
收到數天前到[ShipIt]所申請的光碟片,
超cool的,還有貼紙...

安裝上真的比gentoo方便太多,
在加上用[lazybuntu]來安裝想要的軟體,真的不到一小時就全部裝完囉...

2007年11月14日 星期三

Easy to build toolchain, cross-ng

因DIMM-PC只有32 MByte Flash Disk,
所以用glibc會太大,
因此改用jserv前輩所建議crosstool next generation[cross-ng],
這個crosstool可以編glibc和uclibc,
且介面跟編kernel很類似喔!!
真的方便超多的...^^

1. install

$ wget -c http://ymorin.is-a-geek.org/download/crosstool-ng/
crosstool-ng-0.3.2.tar.bz2
$ tar -jxvf crosstool-ng-0.3.2.tar.bz2
$ cd crosstool-ng-0.3.2
$ ./configure --prefix=/opt/cross-ng
$ make
# make install

2. using cross-ng

$ export PATH="${PATH}:/opt/cross-ng/bin"
$ mkdir toolchain-dev && cd ./toolchain-dev
$ ct-ng menuconfig

需要提供uclibc的設定檔路徑

$ ct-ng build
...
[INFO ] ===============================
[INFO ] Installing C library headers
[INFO ] Installing C library headers: done in 27.63s
[INFO ] ===============================
[INFO ] Core C compiler, pass 2
[INFO ] =============================
[INFO ] Installing static core C compiler
[INFO ] Installing static core C compiler: done in 316.46s
[INFO ] Core C compiler, pass 2: done in 316.50s
[INFO ] ===============================
[INFO ] Installing C library
[INFO ] Installing C library: done in 124.55s
[INFO ] ===============================
[INFO ] Installing final compiler
[INFO ] Installing final compiler: done in 737.85s
[INFO ] ===============================
[INFO ] Installing cross-gdb
[INFO ] Installing cross-gdb: done in 316.19s
[INFO ] ===============================
[INFO ] Installing gdbserver
[INFO ] Installing gdbserver: done in 11.50s
[INFO ] Build completed at 20071114.012858
[INFO ] (elapsed: 28:28.51)

成功囉!!
toolchain的路徑在$HOME/i386-DIMMPC-linux-uclibc