您的位置:首页 > 运维架构 > Linux

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

2016-12-05 16:53 736 查看
最近一直在调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为你要共享的文件夹,请自行设置

在我的虚拟机下需配置网卡的选项,如下图;



vmnet0选择桥接到pc的物理网卡上,不要桥接到wlan0上,在进入linux下设置静态ip:



地址自行设置,需在同以局域网内,即address前3个地址需相同

(2)window端的设置



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成功



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

提示

nfs: server xxxx not responding, still trying


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

so enjoy it!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: