Fedora20-32bit cross-compiling arm-linux-gcc4.3.2
目录
0 前言
1 安装arm-linux-gcc-4.3.2
2 配置 nfs 服务器
0 前言
之前在 fedora 64bit 上建立交叉编译,但由于4.4.3版本需要另装用于gdb-server调试的gdb工具,而且折腾了很久,多个gdb版本都报错。还是乖乖用32bit的系统。
友善之臂提供的arm-linux-gcc4.4.2已经集成了 gdb,不用重新安装gdb
1 安装arm-linux-gcc-4.3.2
1.1 将 arm-linux-gcc-4.3.2.tgz 放到 home/hy/ARM 目录下
1.2 解压文件,注意 -C 为大写,改变解压目录的意思,C后面有一个空格,再加上一个根目录符号 /
[hy@localhost ARM]$ tar xvzf arm-linux-gcc-4.3.2.tgz -C /
1.3 添加系统环境变量,因为要修改 /etc下的文件,所以需要root
[hy@localhost ARM]$ su Password: [root@localhost ARM]# vi /etc/profile
在profile的最后一行添加路径,保存退出 :
##hy add 3.22 export PATH=$PATH:/usr/local/arm/4.3.2/bin #
1.4使文件立即生效,不须重启fedora:
[root@localhost ARM]# source /etc/profile
注:在切换回普通用户时,如:hy 用户时,可能需要重新使文件生效 source /etc/profile。
1.5检查版本,如下说明安装成功
[root@localhost ARM]# arm-linux-gcc -v Using built-in specs. Target: arm-none-linux-gnueabi Configured with: /scratch/julian/lite-respin/linux/src/gcc-4.3/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --enable-shared --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery G++ Lite 2008q3-72' --with-bugurl=https://support.codesourcery.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/libc --with-gmp=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-mpfr=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --disable-libgomp --enable-poison-system-directories --with-build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/bin Thread model: posix gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)
检查arm-linux-gdb -v
[root@localhost ARM]# arm-linux-gdb -v GNU gdb (Sourcery G++ Lite 2008q3-72) 6.8.50.20080821-cvs Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "--host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi". For bug reporting instructions, please see: <https://support.codesourcery.com/GNUToolchain/>. [root@localhost ARM]#
1.6 编译hello程序,如下,编译通过,如果是64位系统Fedora,这里还会报错。
[hy@localhost pjhello]$ arm-linux-gcc -o hello hello.c [hy@localhost pjhello]$ ls hello hello.c
2 配置 nfs 服务器
虚拟机共享文件给目标机,设置Vmware setting->Network-> Bridged
主机和目标机的IP设置在同一网段。
2.1 建立共享文件夹并设置权限
[hy@localhost ~]$ mkdir /home/hy/nfsshare [hy@localhost ~]$ chmod 777 -R nfsshare/
2.2 添加共享
[root@localhost hy]# vim /etc/exports
/home/hy/nfsshare *(sync,rw,no_root_squash)
查看共享的文件夹
[root@localhost hy]# showmount -e Export list for localhost.localdomain: /home/hy/nfsshare *
出现共享的文件列表时,说明主机的 nfs 配置正确。如果报错,请检查 nfs 状态和防火墙。
检查nfs的状态
[hy@localhost ~]$ systemctl status nfs.service
开启nfs服务
[root@localhost hy]# service nfs start Redirecting to /bin/systemctl start nfs.service
停止,开始防火墙
[root@localhost init.d]# systemctl stop firewalld.service [root@localhost init.d]# systemctl start firewalld.service
禁用防火墙,
[root@localhost init.d]# systemctl disable firewalld.service
2.3 目标机挂载共享文件夹
目标机挂载命令如下,注意IP为主机的IP地址,且在同一网段:
[root@FriendlyARM /]# mount -t nfs -o nolock 192.168.1.8:/home/hy/nfsshare/ /mnt mount: RPC: Unable to receive; errno = No route to host
挂载时报错错,这时应检查主机的防火墙和 nfs 的状态。
挂载成功后,在目标机的 /mnt/目录下,就可看到共享的文件
参考
http://www.linuxidc.com/Linux/2011-02/32733.htm
~~~~~~~~~~~~~~~~ 博文多为个人学习中的笔记,不保证完全正确;
参考摘录了诸多书籍,文档,仅用于学习交流
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~