今天花了一整天的時間來解決insight 的連接埠無法修改的問題,雖然是解決了,但是也付出了很大的代價,花了一整天時間+毀掉了以前的系統。所以來重新安裝配置arm linux交叉編譯環境。順便記下.....
1.虛擬機器安裝ubuntu9.10,這個很簡單了不需累述了,安裝前vmware會讓你選擇劃分多大的硬碟,其實這個並不會是真的立即分離出那麼大的空間出來,即使你目前只剩下5g,你也可以要求劃分30g,你指定的只是一個上限值,最好設定大一點,以免以後不夠用又重新設定。虛擬機器安裝好了第一件事自然是安裝vmware tool了,然後就是選擇好ubuntu的軟體源,中國的cn99很不錯,apt-get update更新下,便於之後裝軟體,我一般直接用的root使用者,免得麻煩,設定root密碼 sudo passwd root,之後就可以切換了。
2.ubuntu內建的gcc版本比較高,文法要求很嚴格,會對我們以後編譯安裝某些軟體很不利,要選擇4.2以下的,ok,就裝4.2吧,用ubuntu的命令安裝最安全省事,如果下載源碼編譯安裝,會累死人的
apt-get install gcc-4.2
然後修改我們預設的gcc,gcc在/usr/bin下面,它其實只是一個軟連結,刪除了,然後重新指定一下。切換到/usr/bin目錄,安裝好的gcc4.2就在這裡,建立軟連結
ln -s gcc-4.2 gcc
運行gcc -v下,是否顯示正確。呵呵,很簡單啦
3.安裝交叉編譯器,網上去下載一個好的交叉編譯工具鏈吧,我用的3.4.1,這個更簡單了,解壓之,然後將其中的arm檔案夾移動到你想放的地方,譬如/usr/local/ 下,再將其bin檔案路徑/usr/local/arm/3.4.1/bin添加進/etc/environment 下,我們就可以直接使用arm-linux-gcc了
4.安裝insight,也是今天的重點,insight是基於gdb的,所以gdb需要的環境是一定要有的,新力德安裝libx11-dev libncurses5-dev和libc6-dev這3個依賴檔案,先安裝好啊,不然等出錯了再安裝需要重新編譯,麻煩死了。insight編譯之前,要修改下源碼,就是修改預設的連接埠,否則會是1000不能改的,因為我用的是jlink,其連接埠2331是不能修改的,所以只有修改gdb的連接埠了,找到/gdb/gdbtk/libaray/targetselection.itb ,尋找1000,將其修改為2331(jlink連接埠)這裡還需要注意一點,如果你跟我一樣一定要修改insight連接埠,一定要看仔細了,這是insight第一次編譯安裝,如果你以前安裝過又刪除了,再按照我這樣修改編譯安裝 是不會有效,除非你保證卸載的非常乾淨(其實源碼make uninstall啥都沒有寫),否則,你得重新安裝系統了!配置insight:
./configure --target=arm-linux --enable-sim --prefix=/usr/local/insight
編譯時間一般都很長,然後make ; make install
最後添加其路徑到系統中去,修改/etc/environment 添加/usr/local/insight/bin. 更新下此檔案 source /etc/environment
然後就是編譯出gdbserver了,
~/gdb-6.8/gdb/gdbserver$ ./configure --target=arm-linux --host=arm-linux
~/gdb-6.8/gdb/gdbserver$ make CC=arm-linux-gcc 指定編譯器,也可以直接指定路徑
這樣在gdb-6.8/gdb/gdbserver目錄下就產生了一個gdbserver可執行檔,拷貝到目標開發板上
5.eclipse的安裝
這個是個IDE,其實我不用這個東西的,只是有點好奇,安裝來玩玩,我真正使用的是windows下面的source insight編輯,然後ubuntu編譯,用jlink+insight調試,咱不追求什麼純windows 純linux啥的,怎麼方便怎麼來
安裝java
apt-get install sun-java-jre
apt-get install sun-java-jdk
選擇預設 java:sudo update-alternatives --config java
以上雖然寫的很簡單,但是確是我長久以來花費了大量時間的血淚經驗史啊,以前為了這些簡單的東西 弄了很久很久,譬如編譯安裝gcc4.2,人都能搞瘋,依賴軟體多,編譯時間超長,又不知道可以直接安裝而不必編譯安裝,都是不動腦子 死搬硬套別人的文章造成的後果,以後凡遇事要多動動腦子,目標明確有選擇性的去做!