实现第一个arm-linux交叉编译

#本人初学linux与使用开发板,所使用的是 arm tiny6410 开发板。

#以下所属个人实际操作的来,若有不妥或是不对之处,请多多指出不足之处。

#首先要明确:实现arm-linux交叉编译就得需要平台,配置平台,才能完成最终的交叉编译。

#首先要连接好arm与linux ,没有连接好怎么可以称得上交叉编译呢!?

        一.这里我们先将宿主计算机打开两个终端,一个用来编译宿主计算机linux-C语言程序,一个用来挂载编译后的二进制文件,实现交叉编译。

        二.配置开发板与宿主计算机平台,保证开发板与宿主计算机可以通信。

        三.在宿主计算机进行编译文件,开发板挂载可执行二进制文件,进行测试。

———————————————————————————————————————————————————————————————————————

实现arm-宿主计算机连接

       安装  minicom  实现开发板连接

             sudo apt-get install minicom

      设置  minicom   配置

             sudo minicom -s

                    按A设置端口  如果是USB0 则 设置为  ttyUSB0;

                            这里有人可能会问怎么知道端口号是多少。  可以利用命令   ls /dev/   若是存在 USB0 则可以看到 ttyUBS0

                    按F 将 Yes 设置为 No

                    接下来退出 等待一下按下回车键就可以看到连接到开发板上啦~

———————————————————————————————————————————————————————————————————————

配置ip地址,arm与宿主计算机要处于同个网段才可以进行通信

       配置宿主计算机ip方式有两种,一种是短暂的,一种是永久的。

               短暂的配置方式:

                       利用ifconfig eth0 ip地址(192.168.*.**)  这里补充下同一网段指的是 *  一致,例如我的ip设置  开发板:192.168.3.100   宿主计算机:192.168.3.101

               永久的配置方式:

                       修改宿主计算机和开发板的静态ip

      注意:切记若与同伴一起玩的话,不要有ip相同造成冲突,不然后面会出错的哦!~

                设置完我们可以利用命令  ping +ip地址  测试是否成功啦~

———————————————————————————————————————————————————————————————————————

在宿主计算机安装NFS,配置NFS,建立服务器文件夹

      切换到 root 权限,以免下面麻烦的命令都要添加一个sudo。(不过小编建议,前期乱搞root没什么问题,但是后期还是不要用root权限好点,不然弄错了,有可能会很纠结)

      在这里说下:一般的用户是  $ 后面加命令  root权限是  # 后面加命令

       # apt-get install nfs-kernel-server

               这里有些人可能会问:为啥其他人安装NFS还有一个命令  # apt-get install nfs-common 

               我的回答是:我先装nfs-kernel-server 再安装 nfs-common 时好像是不用安装的。所以我认为前者包括后者!

       # vim /etc/exports

               在最后面添加/home/xxx  192.168.*.*(rw,no_root_squash,sync)

                        上述的xxx为自己所建的目录,当然可以改为  /home/xxx/xxx  啦!

                        rw 为读写权限

                        sync 资料同步写入内存和磁盘

                        no_root_squash:nfs客户端共享目录使用者的权限

      # /etc/init.d/nfs-kernel-server restart

                重新加载exports设置,开启NFS服务。(注:每一次进行交叉编译时都要启动)

      # showmount -e

                显示出设置的服务器共享的文件夹

      # mkdir /home/xxx

                建立文件夹

      # chmod 777 /home/xxx

               修改权限(共享的嘛!不开放点怎么一起用呢!)

                       (注:因为这里使用root权限建立的,所以后面若用一般用户在xxx中建立文件,似乎会有点问题哦!)

———————————————————————————————————————————————————————————————————————

测试NFS服务器文件夹

     # touch /home/xxx/c.c

               在宿主计算机建立一个c.c文件

切换到开发板终端

     # mount -t nfs -o nolock 192.168.3.101:/home/xxx   /mnt

               此时我们可以察看下开发板终端里的/mnt里是不是有 c.c文件,有的话就成功啦!(当然是没有报错的情况下!

挂载后,记得移除挂载

    # umount /mnt

               记得不要在 /mnt 下使用此命令  因为会失效的!所以可以切换的根目录  cd ~  再执行

——————————————————————————————————————————————————————————————————————

最后我们来实现一下编译吧!

     首先我们要将arm-linux交叉编译的压缩包解压。

             #tar -zxvf (压缩包名字) -C /

      配置 PATH 环境变量

             暂时性设置  # export PATH=解压缩目录一直到 /bin:$PATH   例如:export PATH=/opt/FriendslyARM/toolschain/4.5.1/bin:$PATH

             永久性设置  # vim /etc/profile   在最后面加上  export PATH= “ 解压缩目录一直到 /bin:$PATH  ”

      接下来我们就可以利用前面的c.c文件啦!在里面编译c语言

      # arm-linux-gcc c.c -o out

                 此时若在宿主计算机上执行就会提示二进制不可执行之类的(毕竟是ARM执行的而不是宿主主机执行的,不然也不会叫 交叉编译啦~)

切换到开发板终端

     挂载目录 # mount -t nfs -o nolock 192.168.3.101:/home/xxx /mnt

     挂载成功我们就可以去执行那个c.c生成的out执行文件啦!

     最后记得移除挂载!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值