android通过nfs挂载linux共享的文件

最近一直在调wifi驱动,编写linux下的wifi代码,所以android的应用层和wpa_supplicant的通信一直没时间看,先留着。
公司使用的ubuntu版本为12.04,所以以次版本讲下如何在开发板下挂载linux主机通过nfs共享的文档,利于调试驱动
(1)linux主机需要的配置
配置nfs服务器

sudo apt-get install nfs-kernel-server
sudo apt-get install portmap

成功后配置环境

vi /etc/exports

输入share_file *(rw,sync,no_root_squash)
share_file为你要共享的文件夹,请自行设置
在我的虚拟机下需配置网卡的选项,如下图;
android通过nfs挂载linux共享的文件_第1张图片
vmnet0选择桥接到pc的物理网卡上,不要桥接到wlan0上,在进入linux下设置静态ip:
android通过nfs挂载linux共享的文件_第2张图片
地址自行设置,需在同以局域网内,即address前3个地址需相同

(2)window端的设置
android通过nfs挂载linux共享的文件_第3张图片
win端设置和linux大同小异,如图所示
现在可以相互ping下看是否可以ping通,如没成功则关闭linux/win的防火墙,需在板子的网口和PC插上的情况下。

ufw disable 

(3)android板的设置
开shell情况下输入ifconfig eth0 xxx.xxx.xxx.xxx
需设置成同一局域网内
ping下三者是否互通
我的android平台集成busybox,且mountnfs需busybox支持,不然会出现错误,输入

mount -o nolock -t nfs 10.3.178.110:/home/jerry/drivers /mnt

ip地址后为你共享的目录,错误如下

mount: Invalid argument

mount前面加入busybox则无此错误,出现其他错误

failed: I/O error

看打印出来信息

[  325.717668@0] type=1400 audit(1420070728.230:9): avc: denied { net_raw } for pid=4824 comm="kworker/0:3" capability=13 scontext=u:r:kernel:s0 tcontext=u:r:kernel:s0 tclass=capability permissive=0

permissive为0,推测事selinux的问题,使用getenforce查看为Enforcing,利用setenforce 0命令改为permissive在重新mount成功
android通过nfs挂载linux共享的文件_第4张图片

如有本人未遇到问题可一起探讨!利用nfs可以很轻松调试驱动,目前本人遇到调试wifi时,wifi连接上ip会与rj45的网口冲突导致nfs挂载失败,
提示

nfs: server xxxx not responding, still trying

最后卡死在此处?在网口和wlan都开启情况下ping命令优先选择了wlan端口,而非网口?这是内核处理网络的方式还是IC厂商设置需重代码中了解,有熟悉网络方面可以不令赐教下。
so enjoy it!!!

你可能感兴趣的:(linux)