社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
最近一直在调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!!!
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!