开启Digilent提供的Linux内核的NFS支持

  ZEDBoard上出厂的SD卡中自带了一个较完整的linux系统,虽然是精简版,但是对于开发来说已经足够了,在嵌入式linux开发中,挂载NFS协助调试非常常见,但是Digilent给出的内核中并没有开启NFS的支持,具体可以通过/proc/filesystems中有没有nfs相关的内容,执行cat /proc/filesystems | grep nfs,没有找到nfs相关的内容证明内核没有开启对nfs的支持,接下来我们就需要手动配置一下内核,开启nfs支持:(内核源码可以在书的光盘中找到,也可以从github上克隆下来:https://github.com/Digilent/linux-3.3-digilent.git)

$ make ARCH=arm digilent_zed_defconfig



$ make ARCH=arm menuconfig

进入File systems  --->Network File Systems  --->可以看到默认并没有开启nfs的支持,现在我们开启nfs,相关的选项如下:
注意这里我们是要把nfs驱动编译在内核中,所以选择built-in,然后保存配置,不过现在还不能开始编译,如果现在编译根本通不过去,具体原因可能是因为保存的配置又多了额外的很多东西,所以我们只能去找根目录下的.config文件,找到nfs对应的那几行,这里主要是:
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V2=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
# CONFIG_NFS_V4 is not set
# CONFIG_NFS_SWAP is not set
CONFIG_ROOT_NFS=y
# CONFIG_NFSD is not set
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
# CONFIG_SUNRPC_DEBUG is not set
# CONFIG_CEPH_FS is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
将上面的内替换到arch/arm/configs/digilent_zed_defconfig中,不过这里先要删除掉
# CONFIG_NETWORK_FILESYSTEMS is not set这一行,并在该位置加上上面的配置内容,这样才能保证内核能够顺利编译通过
接下来执行:

$ make ARCH=arm digilent_zed_defconfig

$ make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi-

编译通过之后,内核即arch/arm/boot目录下的zImage,使用新内核启动以后,执行cat /proc/filesystems | grep nfs,可以找到nfs的设备,说明开启了nfs的支持,挂载指令:

# mount -t nfs SERVERIP:SERVER_PATH LOCAL_PATH -o proto=tcp -o nolock

对于pc机上开启nfs服务,请参考这篇帖子:【参赛手记】NFS挂载加速程序开发,请注意,这里pc机是nfs服务的提供者,zedboard上的nfs是客户端,所以是把pc机上的目录挂载到zedboard上的linux文件系统中的目录,
其中:SERVERIP是电脑的ip,SERVER_PATH是电脑nfs的提供的挂载路径,LOCAL_PATH是zedboard上的linux文件系统中的路径
举个例子来说,比如电脑的ip是192.168.1.100 提供的挂载路径是/rootfs,我们需要把电脑上的路径挂载到板子上的/mnt目录下,(请确保两者能够ping通)那么可以在usb转串口的终端中输入:

# mount -t nfs 192.168.1.100:/rootfs /mnt -o proto=tcp -o nolock

解挂载的时候输入

# umount /mnt

即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值