1、IP地址设置
设置主机、虚拟机以及开发板静态IP(不能使用自动获取IP),确保3个静态IP地址处于同一网段(192.168.1.*),如:
主机:192.168.1.10 默认网关:192.168.1.1 首选DNS:202.96.128.86
虚拟机:192.168.1.100
开发板:192.168.1.207
2、虚拟机连接方式设置
在虚拟机VMware里面:选择 edit(编辑) -> Vitual Network Editor(虚拟网络编辑器) ,选中VMnet0,在下面的VMnet Information中,点Bridge to(桥接到):选择自己的有线网卡(有线网卡可通过以太网属性查看,非无线网卡),然后选择虚拟机VMware右下角的网络设配器,进入虚拟机设置,选择连接方式:Custom VMnet0(Bridged),完成保存。
3、开发板网络设置
开发板上的网络设置问题,开发板IP设置为如上192.168.1.207,其余的在不联网的情况没有影响。如果你是用uboot的话,除了开发板的IP设置,服务器也要设置为要直连对象的IP。也就是说,如果是虚拟机与开发板直连的话,那uboot的serverip要设置为虚拟机的IP,即192.168.1.108,若是开发板与主机相连的话,则serverip要设置为主机的ip,即192.168.1.10。
4、关掉各系统的防火墙。
主机Ping通虚拟机
开发板Ping通虚拟机
一般在Linux主机上arm-linux-gcc编译程序,然后将该生成的可执行文件发送给ARM开发板,ARM开发板再运行该文件。
(主机Linux系统)--->(ARM开发板Linux系统) 传送文件的过程可以采用NFS,FTP等多种方法
采用NFS实现远程挂载,ARM开发板可以直接运行主机上的程序,而不需要下载到开发板上,也是用的最多的方法
1,ARM开发板上电,启动Linux
2,查看开发板Linux内核是否支持NFS
执行 cat /proc/filesystem
若有一行为 nodev nfs,则开发板Linux内核支持NFS,反之需要配置内核
同样方法查看Linux主机内核是否支持NFS
3,配置主机共享目录
执行 gedit /etc/exports更改主机NFS配置
在最后一行添加 /nfs_root *(rw,sync,no_root_squash)表示将主机 /nfs_root设置为共享目录,所有Linux系统都可以挂载该目录
若添加 /nfs_root 192.168.1.100(rw,sync,no_root_squash)表示只有IP为192.168.1.100的Linux系统能挂载该目录
4,主机启动NFS服务
或者 sudo service nfs-kernel-server restart
5,ARM开发板挂载主机共享目录
开发板上执行 mount 192.168.1.139:/nfs_root /mnt
mount -o nolock -t nfs192.168.1.139:/nfs_root /mnt
其中,192.168.1.139是主机IP,/nfs_root是主机共享目录,/mnt表示将该共享目录挂载到ARM开发板/mnt目录下
6,若未报错,则挂载成功
开发板上执行 ls /mnt
可以看到ARM开发板/mnt下的内容与主机/nfs_root下内容一致
7,若报错
rpcbind: server localhost not responding, timed out
RPC: failed to contact local rpcbind server (errno 5).
rpcbind: server localhost not responding, timed out
RPC: failed to contact local rpcbind server (errno 5).
lockd_up: makesock failed, error=-5
rpcbind: server localhost not responding, timed out
RPC: failed to contact local rpcbind server (errno 5).可能是主机防火墙或者文件锁的原因。
开发板上执行 mount -o nolock -t nfs192.168.1.139:/nfs_root /mnt
重新挂载,成功。
8,若仍未成功,可根据报错信息查看http://wenku.baidu.com/link?url=Ze35J5DwpLbZZKU59t4xDiHKrY4TRLLzsOrYp3jTJN1u3mXv10i99JP7FRVPSrECnLQiuQ2lFBRgB7Bo_2ld4vnhoohgrrqvTtDd-R0XOO7
NFS mount failed, reason given by server: Permission denied
1. 查看系统有没有nfs功能
cat /proc/filesystes
2. ntsysv 命令选中nfs
service nfs restart,看能否啟动,如不能正常,可以查看相应的出错信息
tali /var/log/messages
3. 配置/etc/exports
eg: /home/mis *(rw)
此文件是配置相关的文件和一些权限,上面的设置表示,所有的用户对/home/mis都有读写的权限
# /etc/exports: the access control list for filesystems which may be exported
2 # to NFS clients. See exports(5).
3 #
4 # Example for NFSv2 and NFSv3:
5 # /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
6 #
7 # Example for NFSv4:
8 # /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
9 # /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
10 #
11
12
13 /home/ls/nfs *(rw,sync,no_root_squash)
14 /mnt *(rw,sync,no_root_squash)
15 /opt *(rw,sync,no_root_squash)
此文件是配置相关的文件和一些权限,上面的设置表示,所有的用户对/home/mis都有读写的权限
17 /home/slq/nfs *(rw,sync,no_root_squash)
18 /slq/nfs *(rw,sync,no_root_squash)
4. 执行sudo exportfs -a 表示将所有的更新.
5. sudo service nfs restart
这两条命令注意root权限
6. 执行mount命令
eg: mount 10.0.1.153:/home/mis /mnt/mis
mount -t nfs -o nolock 192.168.0.233:/home/ls/nfs /mnt/ls
mount -t nfs -o nolock 192.168.0.233:/home/slq/nfs /mnt/slq
mount -t nfs -o nolock 192.168.0.233:/slq/nfs /mnt/slq