咱们的目标是要做到在宿主机编译,在目标板运行~~~~
思路:
1要进行交叉编译,首先要然宿主机与目标板ping成功(即地址在同一个网段上,IP地址的前三位是一样的,例如宿主 机为192.168.3.111,目标板为192.168.3.112)
ifconfig(可查出宿主机与目标把的地址)
假如宿主机为192.168.2.111 目标板为192.168.3.112(则不在同一个网段上)
在目标板的终端修改其网段
ifconfig eth0 192.168.2.112
注意修改完成后,在宿主机ping 目标板的地址,如果有东西不断的跳出来就算ping成功,在目标板也要ping宿主机的地址哦(有的时候网线没插好,所以最好两个都进行ping)!!!!!
2.安装NFS,建立服务器共享文件
3.在目标板终端挂载宿主机
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
目标板终端,使用minicom打开:
sudo apt-get install minicom安装minicom
sudo minicom -s设置minicom
修改serial port setup 按A将/dev/tty8 改为/dev/ttyUSB0 ;将按F将yes 改为NO
修改完后退出即可,此终端即为目标板的终端
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------安装NFS
#apt-get install nfs-common
#apt-get install nfs-kernel-server
1.配置NFS
步骤:(修改配置文件-------开启NFS-----显示共享目录------创建服务文件目录,更改权限)
在linux工作服务器端配置
1).修改配置文件
#vim /etc/exports(#说明是要用root用户,或者加sudo,,不要并不是把#打上去。建议用root用户,不然下面的大部分步骤都要用加上sudo太麻烦)
添加
/home/xxx/nfs 192.168.*.*(rw,no_root_squash,sync) (不要在前面加#!!!)
内容说明:
/home/xxx/nfs :分享目录,xxx请用户自行填写(可自行修改,但下面创建目录时要一致)
*:网段内的所有值
rw:读写权限
sync:资料同步写入内存和硬盘
no_root_squash:nfs客户端共享目录使用者的权限
2).开启NFS服务(每次进行交叉编译都要使用这两条命令)
# /etc/init.d/portmap restart
# /etc/init.d/nfs-kernel-server restart
3).显示共享出的目录(此步骤可省略)
#showmount -e
4).创建服务文件目录,更改权限(第二次起可不用再创建服务文件目录)
#mkdir /home/xxx/nfs
#chmod 777 /home/xxx/nfs
2.使用NFS
2.1:在开发板上挂载NFS服务目录
1.)在宿主机(即你的电脑),把交叉编译后的程序置于共享目录:
#cd /home/xxx/nfs
2.)在目标板中,挂载宿主机的nfs共享目录:(注意是在目标板挂载宿主机哦!!!!)
#mount -t nfs -o nolock 192.168.3.x:/home/xxx/nfs /mnt
3).查看是否共享成功
#cd /home/xxx/nfs
#touch asdf
#ls /mnt
如果在/mnt的目录下可以看到asdf这个文件夹,恭喜你成功了
3).使用NFS运行程序
#cd /mnt
4.)取消挂载(在目标板终端进行)
#cd ~
#umount /mnt
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
交叉编译小小的执行文件
1.安装编译器
我用的目标板是arm tiny6410 用arm-linux-gcc进行编译
将arm-linux-gcc的解压包解压到 / (要解压到根目录下哦)
#tar -zvxf (文件压缩包,自己打)-C /
2.进行编译(在宿主机终端进行操作)
#cd /home/xxx/nfs
更改PATH环境变量(注意只有更改了PATH的值才能够进行编译哦,这步别忘了哟,很重要滴)
export PATH=/opt/FrierndlyARM/toolschain/4.5.1/bin:$PATH
自己用vi编译一个hello world的.c文件,假如取名为haha.c
#arm-linux-gcc haha.c -o haha
3.执行文件(注意是在目标板上执行的哟)
#cd /mnt
#./haha
成功则输出haha的文件内容
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
该片文章关于安装NFS的那部分是参考网上大神的文章加上自己的注释写出的。
各位大神,小编lucky_leaf是一个linux初学者,如果发现有什么错误的地方,请在评论指出,指导指导我这个晚辈。
这是lucky_leaf的第一篇博客,希望对大家有所帮助