本來一直在學習u-boot,感覺它足夠強大和靈活,而且網上有很多資料,但我還只是掌握了皮毛,還不能夠隨意的應用。
公司裡的板子主要是使用Redboot和Vxworks boot,本來是有些頭痛的,因為這兩個boot在網上的資料不多,而且公司的Flash還是SPI接口的,第一次接觸,最基本的燒錄方法都還沒搞定,不過過程還是比想象的順利,最後編譯成功,主要是同事的一路指導,還有就是網上已經有了現成配置好的redboot。
下面是我實際操作中的步驟:
1、下載redboot-ap61.tar.gz,這個壓縮包裡不僅有源代碼,還有MIPS的交叉編譯器。
linux/redboot-ap61.tar.gz">http://dl.meraki.net/linux/redboot-ap61.tar.gz
2、在Ubuntu 8.04裡面編譯的時候老是提示有下面的錯誤:
tail: cannot open `+2` for reading
一開始不得其解,只好轉到redhat下編譯,竟然可以通過,很郁悶,不過偶然在網上找到了解決辦法:
在命令行設置:
export _POSIX2_VERSION=199209
就可以順利通過,原因好像是因為一些命令的版本不同導致。
後來又提示沒有TCL,所以,臨時又安裝了一下TCL
sudo apt-get install tcl
需要提醒的是一定要設定生成bin文件的目錄,否則它會默認放置到/tftpboot,而根本又沒有這個目錄,所以會報錯退出,我是寫了一個簡單的腳本,用來每次編譯:
#!/bin/sh
make clean
make AP_TYPE=ap51 TFTPPATH=/home/myhome/redboot-ap61/install FLASH_MB=2 DRAM_MB=8
ENET_PHY=icplus ap51
3、但是,編譯好的文件,燒錄進Flash後,無法正常啟動。
碰巧在網上竟然找到了和我這個板子完全對應的、配置好的redboot
http://rapidshare.com/files/112845340/redboot_cobra.tar.bz2.html
這個壓縮包裡沒有交叉編譯器,所以要用上面的那個編譯器,設定一下路徑:
export PATH=$HOME/redhatboot-ap61/gnutool/bin:$PATH
還是使用上面的那個編譯腳本,順利在Ubuntu裡通過。
4、燒錄進Flash,順利啟動