實驗二:搭建樹莓派交叉編譯環境
一、 安裝arm-linux-gcc 變譯工具
在友善之臂的網上http://arm9download.cncncn.com/mini2440/linux/
arm-linux-gcc-4.4.3-20100728.tar.gz下載arm-linux-gcc4.4.3,並解壓到/usr/local/arm。接着按一下步驟進行:
A. 修改環境變量,把編譯器的路徑加入到PATH。
在/etc/profile 文件的最後加上 export PATH=$PATH:/usr/local
/arm/4.4.3/bin
修改/etc/bash.bashrc文件
在最後加上:
export PATH=$PATH:/usr/local/arm/3.4.1/bin
export PATH
使更新其作用:
# source /etc/bash.bashrc
# source
/etc/bash.bashrc
B. 使新的環境變量生效
在終端中輸入 source /etc/profile
C. 查看編譯器的版本信息
在終端中輸入 arm-linux-gcc -v , 如果出現版本信息,說明安裝成功。
D. 編寫hello.c程序,用 arm-linux-gcc –o hello hello.c 來編譯。用file命令查看hello文件的屬性,可以看到hello是arm所能接受的可執行文件。
二、 配置nfs服務器
1. 在pc上安裝nfs服務器
終端中輸入 sudo apt-get install nfs-kernel-server .
2. 配置pc上的ubuntu
由於我的ubuntu是安裝在虛擬機裏面的,所以要先把網絡的模式改爲橋接模式,
然後編緝ubuntu的有線連接。點擊右上角的網絡連接的圖標,Wire connection 修改IPv4Setting 如下:
然後用ifconfig命令查看eth0的ip地址。在我的pc上,這個地址是169.254.8.175。
接下來配置/etc/exports 文件,在文件末尾加上
/armfs 169.254.8.*(rw,sync,no_root_squash)
l /armfs 爲服務器端共享目錄
l *爲允許nfs服務器共享目錄的ip範圍,這裏表示限制ip地址和主機同一個網段。
l sync表示同步寫入存儲器
l no_root_squash表示客戶機享有主機的root權限
修改了文件後,還需要在/目錄下創建armfs文件夾,把權限改爲777。
sudo chmod 777 /armfs
然後重啓nfs服務使上面的配置生效。
3. 配置樹莓派的ip
把樹莓派和主機用網線連接。如果上面對ip地址作了限制的,在這裏需要通過 sudo ifconfig eth0 169.254.8.100 來設置樹莓派的ip地址。設置好後讓樹莓派和主機之間互ping一下,如果都能ping通,說明前面的設置應該正確。
4. 把共享文件掛載到樹莓派上
在樹莓派的終端中輸入 mount –t nfs –o nolock 169.254.8.175:
/armfs /mnt, 把pc上的/armfs 掛載到/mnt上。如果沒有出錯就表示成功了。
三、 編寫測試程序
1. 把前面編譯好的hello可執行文件放到/armfs中,在樹莓派中輸入./hello
2. 編寫浮點測試程序float_test.c,測試浮點數的加減乘除。
#include void main() { float i = 3.14159; float j = 1.23451; float add, sub, mul, dif; add= i + j ; sub = i - j ; mul = i * j ; dif = i / j ; printf("i+j= %f\n", add); printf("i-j= %f\n", sub); printf("i*j= %f\n", mul); printf("i/j= %f\n", dif); } |
用 arm-linux-gcc –o float_test float_test.c 來編譯,編譯後的float_test放到/armfs中去,在樹莓派的/mnt目錄下,執行./float_test