嵌入式开发板nfs挂载

板子要开始调试了,第一个头大的问题就是调试过程中更新的文件怎么更新到板子上,以前用sd卡拷贝来来回回太浪费时间了,adb也需要接线各种连接操作。

现在板子有wifi可用,是时候把nfs共享搭起来了。

公司的编译服务器已经配好了一个nfs的共享目录/home/pub,地址是192.168.11.111

现在需要把板子连接到同一个网络内,把这个网络上的目录挂载到板子上的某个目录就好了

第一步查看板子是否支持nfs文件系统用 cat /proc/filesystem 

如果有nodev nfs说明支持nfs文件系统

root@TinaLinux:/# cat /proc/filesystems 
nodev   sysfs
nodev   rootfs
nodev   ramfs
nodev   bdev
nodev   proc
nodev   cpuset
nodev   cgroup
nodev   cgroup2
nodev   tmpfs
nodev   devtmpfs
nodev   configfs
nodev   debugfs
nodev   sockfs
nodev   pipefs
nodev   rpc_pipefs
nodev   devpts
        ext3
        ext2
        ext4
        vfat

很遗憾我这个板子没有nfs文件系统的支持,应该是在内核编译的时候没有打开nfs配置,

于是先把内核配置好nfs再编译烧录

make menuconfig arch=arm

找到并进入File systems选项 

往下翻到NetWork File Systems 并进入

 然后把NFS client support的都选上,因为我们的板子是要作为客户端连接到nfs服务器的。

Save保存退出重新编译打包烧录。

再去板子上看下这次已经有nfs了

root@TinaLinux:/# cat /proc/filesystems 
nodev   sysfs
nodev   rootfs
nodev   ramfs
nodev   bdev
nodev   proc
nodev   cpuset
nodev   cgroup
nodev   cgroup2
nodev   tmpfs
nodev   devtmpfs
nodev   configfs
nodev   debugfs
nodev   sockfs
nodev   pipefs
nodev   rpc_pipefs
nodev   devpts
        ext3
        ext2
        ext4
        vfat
nodev   nfs
nodev   nfs4

现在要把板子连接到公司的网络上,让板子和服务器在同一个局域网内

root@TinaLinux:/# wifi_connect_ap_test  AirFly airflymaster
==================================
[   29.767497] [STA] !!!xradio_vif_setup: id=0, type=2, p2p=0
[   29.969455] random: wpa_supplicant: uninitialized urandom read (4096 bytes read, 101 bits of entropy available)
[   29.982768] random: wpa_supplicant: uninitialized urandom read (4096 bytes read, 101 bits of entropy available)
[   29.996495] random: wpa_supplicant: uninitialized urandom read (4096 bytes read, 101 bits of entropy available)
Connecting to the network......
[   31.700627] wlan0: authenticate with 28:6c:07:41:ec:31 (try 1)
[   31.789632] wlan0: authenticated
[   31.793629] wlan0: associate with 28:6c:07:41:ec:31 (try 1)
[   31.832925] wlan0: RX AssocResp from 28:6c:07:41:ec:31 (capab=0xc11 status=0 aid=7)
[   31.841446] wlan0: associated
[   31.847854] [AP_WRN] [STA] ASSOC HTCAP 11N 58
[   31.918279] [TXRX_WRN] [RX] IF=0, No key found.
[   32.017679] [TXRX_WRN] [RX] IF=0, No key found.
[   32.172652] random: wpa_supplicant: uninitialized urandom read (4096 bytes read, 114 bits of entropy available)
[   32.186420] [TXRX_WRN] drop=1440, fctl=0x00d0.
Connected to the AP
Getting ip address......
Wifi connect ap : Success!
==================================

接下来就是把网络上的文件夹挂载到板子上,

第一次尝试直接用 mount -t nfs 192.168.11.111:/home/pub /root/pub 命令失败了

一直阻塞最后失败。

网上搜索了一下

https://www.cnblogs.com/chenchenluo/p/3573911.html这里面说要带参数

-o nolock,rsize=1024,wsize=1024

加上之后果然挂载上了,再用mount命令看下挂载结果

mount -t nfs -o nolock,rsize=1024,wsize=1024 192.168.11.111:/home/pub /root/pub
root@TinaLinux:/# mount
/dev/root on / type ext4 (rw,relatime,data=ordered)
devtmpfs on /dev type devtmpfs (rw,relatime,size=309460k,nr_inodes=54378,mode=755)
/proc on /proc type proc (rw,relatime)
tmpfs on /tmp type tmpfs (rw,relatime)
sys on /sys type sysfs (rw,relatime)
/dev/by-name/rootfs_data on /etc type ext4 (rw,relatime,block_validity,delalloc,barrier,user_xattr)
devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620)
/dev/mmcblk0p1 on /mnt/UDISK type ext4 (rw,relatime,data=ordered)
/dev/mmcblk0p1 on /mnt/SDCARD type ext4 (rw,relatime,data=ordered)
192.168.11.111:/home/pub on /root/pub type nfs (rw,relatime,vers=3,rsize=1024,wsize=1024,namlen=255,hard,nolock,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.11.111,mountvers=3,mountproto=tcp,local_lock=all,addr=192.168.11.111)

现在就可以往服务器上的/home/pub里面放东西,然后通过串口或者adb在板子上的/root/pub目录就能获取到更新的东西了。

 2019-04-27

15:45:21

原文地址:https://www.cnblogs.com/tid-think/p/10778976.html