方法一:U盘
U盘从虚拟机拷贝文件后,插入开发板,会自动挂载到/mnt/usb目录下。可通过cp命令复制所要文件到开发板相应目录中即可。
方法二:使用NFS这种方式,PC虚拟机Ubuntu是作为服务端,开发板作为客户端,也就是说,开发板上使用mount命令来挂载服务器(也就是PC虚拟机Ubuntu)上的某个文件夹,从而实现文件互传。
前提:PC机与开发板间的网络正常,即相互可以ping通。
如果只有单向可以ping通(比如windows可以ping通开发板,而开发板ping不通windows),可能是windows防火墙拦截,关闭windows防火墙即可。
开发板IP修改方法:
[root@iTOP-iMX6UL]:/# vi etc/eth0-setting
IP=192.168.0.230
Mask=255.255.255.0
Gateway=192.168.0.1
DNS=192.168.0.1
MAC=08:90:90:90:90:90
运行命令使修改后的IP地址生效
[root@iTOP-iMX6UL]:/# /etc/init.d/ifconfig-eth0 restart
1)在PC虚拟机Ubuntu上安装NFS服务
root@ubuntu:~# apt-get install nfs-kernel-server
2)修改配置文件
root@ubuntu:~# vi /etc/exports
在文件中添加类似以下的内容,下面的例子里允许开发板通过 NFS 访问 Ubuntu的/home/nfs 目录:
/home/nfs/ *(rw,sync,no_root_squash)
3)重启NFS服务
root@ubuntu:~# /etc/init.d/nfs-kernel-server restart
查看NFS服务是否启动
root@ubuntu:~# netstat -a | grep nfs
如果能搜索到nfs,则表示服务已启动。
4)在开发板上挂载Ubuntu的NFS服务(//如果不成功,就把 vers=2 改为 vers=3 或 vers=4 )
[root@iTOP-iMX6UL]:/# mount -t nfs -o nolock,vers=2 192.168.0.116:/home/nfs /mnt
如果一切正常,便可以在 Ubuntu 上把文件放到/home/nfs目录中,在开发板上可以从/mnt 目录中访问该文件。(其中192.168.0.116为虚拟机IP)
另外,如果需要卸除目前挂在Linux目录中的文件系统,则可以使用umount命令。
[root@iTOP-iMX6UL]:/# umount /mnt
开发板中实现NFS的自动挂载
修改开发板的/etc/fstab文件来实现自动挂载文件系统
在其后添加如下一行:
192.168.168.109:/rootfs /nfsroot nfs default 0 0
注:
192.168.168.109:/rootfs 是我的Linux下的主机的ip的根目录下的rootfs文件,我们的目的是将/rootfs这个文件挂载到开发板上。因此,我们要想每次都能保证挂载成功,需要将Linux下的主机的ip设为固定ip。
/nfsroot是我们开发板的文件,这个用专业术语叫做挂载点,这样我们在开发板就可以通过/nfsroot这个目录就可以修改或查看Linux的主机的/rootfs目录,同理,Linux的主机也可以修改或查看开发板的/nfsroot目录,两者所保存的内容是一样的且同步。
nfs是指定挂载的文件系统的类型
default是指定文件系统的参数,这个我们一般默认选择default即可,具体介绍可以参考《鸟哥的Linux私房菜 基础学习篇》中的第八章第4节,里面关于这些讲得很透彻。
0 表示能否被dump备份指令作用
0表示是否以fsck检验扇区
修改完/etc/fstab这个文件之后,退出保存即可。
方法三:通过串口传输
开发板端使用”rx 文件名“命令后,然后使用Xmodem,选择要发送的文件 。
方法四:TFTP传输
[root@iTOP-iMX6UL]:/mnt/nfs# tftp -g -r watchdog2 192.168.1.60
参数说明:
-l 是local的缩写,后跟存在于Client的源文件名,或下载Client后 重命名的文件名。
-r 是remote的缩写,后跟Server即PC机tftp服务器根目录中的源文 件名,或上传Server后重命名后的文件名。
-g 是get的缩写,下载文件时用,
-p 是put的缩写,上传文件时用,
tftp 默认占用的是69端口。
1)从Server下载文件到Client时,使用下面的命令:
#tftp –g –l 目标文件名 –r 源文件名 服务器地址
如命令
#tftp –g –l B.txt –r A.txt 192.168.1.2
的作用是从server中的tftp根目录下,下载文件A.txt到Client并更名为B.txt;若不更名,B.txt就改为A.txt.
2)从Clinet上传文件到Server时,使用下面的命令:
#tftp –p –r 目标文件名 -l 源文件名 服务器地址
如命令
#tftp –p –r D.txt –l C.txt 192.168.1.2
的作用是从Client上传文件C.txt到Server的tftp根目标下,并更名为D.txt;若不更名,D.txt就改为C.txt.
这个命令一般是用于下载或上传后进行更改文件名,如若不更改文件名,可使用以下简单命令不更名下载或上传.
3)不更名下载命令:
#tftp –g –l/-r 源文件名 服务器地址 //(此时参数-l与-r等效,使用时只使用其中一个);
如tftp –g –l A.txt 192.168.1.2或 tftp –g –r A.txt 192.168.1.2
作用相同,都表示Client从Server下载文件A.txt,且不更名。
4)不更名上传命令:
#tftp –p –l/-r 源文件名 服务器地址 //(此时参数-l与-r等效,使用时只使用其中一个);
如tftp –p –l B.txt 192.168.1.2或 tftp -p –r B.txt 192.168.1.2
作用相同,都表示从Client上传文件B.txt到Server,且不更名。