树莓派论坛

 找回密码
 立即注册

[系统与软件] 树莓派交叉编译环境和虚拟机nfs服务搭建

树老大 发表于 2013-5-22 19:32:18 | 显示全部楼层 |阅读模式
搭建树莓派交叉编译环境
一、   安装arm-linux-gcc 变译工具
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文件
在最后加上:
               
  1. export PATH=$PATH:/usr/local/arm/3.4.1/bin
  2. <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/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是安装在虚拟机里面的,所以要先把网络的模式改为桥接模式,
9ea6edb94da24c4a97ecc&690.png
然后编缉ubuntu的有线连接。点击右上角的网络连接的图标,Wire connection 修改IPv4Setting 如下:
44444.png

然后用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
转自: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
为什么用友善之臂的编译工具呢??编出来是硬件浮点的?我记得树莓派的交叉工具有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之类的程序
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版 | Archiver | 树莓派论坛 ( 粤ICP备15075382号-1 )