Nvidia Jetson Kernel with NFSv4 support

The Nvidia Jetson kernel currently only has NFSv3 enabled. We are using NFS for our application deployed on Jetson Xavier NXs and AGXs, but NFSv4 provides some additional features and fixes that would make deployment easier and enable some future features to be implemented. Would it be possible to enable NFSv4 support?

Hey @ts-cfield, thanks for reaching out! Can you confirm that you are currently running balenaOS 2.88.4+rev11 on Jetson Xavier NX?

Is there any reason you haven’t gone to 2.98.33 yet? Note that the latest release is based on L4T 32.7.1 and your current release is L4T 32.6.1.

I’m only asking because if we add NFSv4 support it would be in version 2.99 or newer so it would include L4T 32.7.1.

Can you confirm that you are currently running balenaOS 2.88.4+rev11 on Jetson Xavier NX?

We have two fleets: (1) Development and (2) Production. In each fleet we have a mix of Jetson Xavier NXs and Jetson AGX Xaviers and then a subsequent mix of BalenaOS v2.82.11 and v2.98.12.

We know the NFSv3 works for both versions of BalenaOS.

Is there any reason you haven’t gone to 2.98.33 yet?

There is no technical reason, only logistical. We had a significant deployment about a week ago and we did not want to make too many changes until afterwards, and did not have capacity/time to update. Since then, we have started upgrading to v2.98 for devices that currently have connectivity to BalenaCloud (some devices are not always connected).

Hi, we enabled CONFIG_NFS_V4 in linux-tegra: Enable NFSv4 config by acostach · Pull Request #354 · balena-os/balena-jetson · GitHub and it will be included with images at v2.98.45 or newer. We will let you know when they will become available in the cloud. Also, please let us know if you are using the Xavier NX SD-CARD or eMMC cloud images, so we know which one to prioritize.

@acostach Awesome! Thanks for implementing NFSv4.

Also, please let us know if you are using the Xavier NX SD-CARD or eMMC cloud images, so we know which one to prioritize.

We use both the Xavier NX SD-Card and the eMMC. Our two fleets are a combination of these, including the AGX Dev Kit. I recognize this does not help prioritize. We use the SD-CARD for development, so testing and deployment would be done there first, but our “production” systems are the AGX Dev Kit at the moment.

Is it possible to enable NFS/NFS4 for Raspberry PI4 as well? Actually, I don’t see NFS modules available in the latest release (2.98.33), and can’t start the NFS server at all. Is it possible?

This is Raspberry Pi4:

root@d1a5b1b:/lib/modules/5.10.95-v8/kernel/fs/nfs# ls -l
total 1
drwxr-xr-x 2 root root 1024 Mar  9  2018 blocklayout
root@d1a5b1b:/lib/modules/5.10.95-v8/kernel/fs/nfs# lsmod|grep nfs
nfsd                  417792  11

Here is Jetson

root@7871a2e:/lib/modules/4.9.253-l4t-r32.7/kernel/fs/nfs# ls
nfs.ko  nfsv2.ko  nfsv3.ko

@ts-cfield I’ve let the devices team know which devices are higher priority so we can allocate testing resources. We can ping you here when they are available in production.

Is it possible to enable NFS/NFS4 for Raspberry PI4 as well?

@mikhail Is RPi4 another device you will be using in production, or is this for development and testing? I’ll see about opening a PR to add this but some devices have space constraints on the rootfs so we can’t enable this feature for all devices quite yet.

Hello @klutchell,

I have used RPi4 for developing and testing the balenaHub Project balenaHub: an easier way to find and publish fleets, projects, and blocks for edge devices for the community to demonstrate what we did in the blog post. I was surprise, that NFS is not supported in RPi4 at all.

We are not using RPi4 in Production and It’s not a priority for us. Thank you for confirming.

Thanks for confirming @mikhail, I’ve logged the request and marked it as low priority for now. You can follow the issue here: Request for NFSv4 on Raspberry Pi 4 · Issue #892 · balena-os/balena-raspberrypi · GitHub

Hello Mikhail,

We have released the image v2.99.27+rev1 for the Xavier NX Devkit SD-CARD and it includes the NFS_V4 client and server support in the kernel. Can you please test your application with this release and let us know if it works for your application? Based on your confirmation we can then release the images for the Xavier NX eMMC and Xavier AGX.

Best regards,
Alexandru

@acostach Thank you for the update. I am upgrading the device now.

We have created a project balena-nfs on hub.balena.io, which I am going to use to test the feature. You can use it as well for testing: balenaHub: an easier way to find and publish fleets, projects, and blocks for edge devices

@acostach NFS version 4 was successfully tested and the Balena NFS project (balenaHub: an easier way to find and publish fleets, projects, and blocks for edge devices) was updated to use NFS version 4 by default.
Please continue with images for the Xavier NX eMMC and Xavier AGX and let us know when ready.

Thanks for testing and confirming, I will let you know here when the releases for the next two boards will be available.

1 Like

Hello again, we have now released v2.99.27+rev1 for both Jetson Xavier AGX and Xavier NX eMMC, and these include the same NFS V4 support as we added for the NX SD-CARD.

2 Likes

@acostach Awesome! We just added an AGX dev kit to the volkovlabs/balena-nfs test fleet and NFSv4 appears to work. It will take us a little bit longer to try the Xavier NX eMMC (none of that type are powered on at the moment), but I wanted to share confirmation of the AGX dev kit.

1 Like