树老大 发表于 2013-5-22 19:32:18

树莓派交叉编译环境和虚拟机nfs服务搭建

搭建树莓派交叉编译环境一、 安装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
<wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> export PATH使更新其作用:
# source /etc/bash.bashrc# source /etc/bash.bashrc
B.   使新的环境变量生效在终端中输入 source /etc/profileC.   查看编译器的版本信息在终端中输入 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地址和主机同一个网段。lsync表示同步写入存储器lno_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中,在树莓派中输入./hello2.   编写浮点测试程序float_test.c,测试浮点数的加减乘除。
#includevoid 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转自:http://blog.sina.com.cn/s/blog_9ea6edb90101c8xe.html

whtc123 发表于 2013-5-23 10:53:51

为什么用友善之臂的编译工具呢??编出来是硬件浮点的?我记得树莓派的交叉工具有pc上的版本。

zhouxuan0941 发表于 2013-6-20 11:01:05

whtc123 发表于 2013-5-23 10:53 static/image/common/back.gif
为什么用友善之臂的编译工具呢??编出来是硬件浮点的?我记得树莓派的交叉工具有pc上的版本。

官网上有很多资源,比较流行的是gcc-4.7-linaro-rpi-gnueabihf,支持浮点运算,和qt5.1.1兼容性很好

zhouxuan0941 发表于 2013-6-20 11:05:08

友善之臂的4.4.3貌似是给2440用的, ARMv4,2.6.30内核,不支持硬浮点,用它只能给树莓派编译hello world之类的程序
页: [1]
查看完整版本: 树莓派交叉编译环境和虚拟机nfs服务搭建