嵌入式开发板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