I am developing a Dockerfile that makes a custom massflash archive for Jetson Orin NX. When the Dockerfile actually gets to the step of running the flash script to create the massflash package, I run into errors related to NFS. NFS Server is something I would like to avoid in creating the massflash package. Any help in fixing this is very apricated. Thank you for your time.
OK I understand that it’s required. How would I go about fixing this error then? I added the required package (nfs-kernel-server) before I decided to avoid it on the Ubuntu base image in the Dockerfile to at least get it working. Even with that I get the same error shown above.
I have not used massflash, so I know very little about that. I also don’t know what is being solved by using Docker. However, it is usually the Linux kernel which doesn’t support NFS export, or perhaps it is using a non-Linux filesystem type that doesn’t support NFS export. If NFS is only a tool for the initrd flash, and we are not talking about NFS on the running Jetson, I would tend to think that the kernel used in Docker on the host PC is what is lacking NFS abilities. Don’t know, but consider that it is likely your kernel is lacking NFS ability, and that this is a temporary requirement (I can’t say for sure, I am not familiar with massflash).
The NFS is for the initrd flash to work inside the image building process (content of Dockerfile) only. So, you’re saying that it’s possible the kernel I’m configuring in the image building process needs to have NFS capabilities, right? I just want the script below to work to generate Orin flash archive offline in the Dockerfile image building process. The purpose of using Dockerfile to make the archive instead of running the command on host Linux PC is to use a custom rootfs along with other personalized configurations.
Yes, it is possible the the kernel in the image building is what needs NFS support. Any kind of NFS operation requires (A) the kernel to support that release of NFS (e.g., ver. 3 or ver. 4), and (B) the filesystem would likely need to be a Linux filesystem (I doubt NTFS or VFAT would work). The running Jetson system itself, after flash, is not going to require NFS to boot (at least not unless you are setting it up for network boot). I just don’t know enough about massflash and Docker to give you more information, I’m just going by NFS v3 or NFS v4 requirements.
There could be other problems, but if this is an ext4 filesystem, then the filesystem itself would not be an issue. There might be missing libraries or other support required by the kernel. The kernel itself might also be missing features (restating the previous example, there is a v3 version and v4 version, and the wrong one…or none…would cause a failure).
One test is to use another computer and find out if that computer can import the NFS system. Then you’d know that the host is exporting NFS correctly. If there are features you find you need to enable, or packages to add when getting that other computer to mount the export computer’s content, consider that you’d need this on the Jetson as well. Once you know everything needed for a more standard Linux PC to import the exported NFS you could have confidence that everything remaining is from the Jetson end.
@DaveYYY@linuxdev I found out that this problem is from the Dockerfile image. This has nothing to do with massflash, kernel config, etc. I just need to configure NFS server in the Dockerfile container properly for the initrd flash script to work which is something I’m still stuck at. Assuming you are familiar with Dockerfile, this is what I need your help in to get that jetson script working when I build the Dockerfile. I tried both links provided here and it didn’t work out unfortunately. Thank you for your time.
randy@linux:~/src $ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
moby/buildkit buildx-stable-1 be698b50dea4 2 months ago 172MB
I added the line below to the Dockerfile and it still didn’t work as I’m getting the same NFS message.
RUN echo “/home/Linux_for_Tegra/rootfs *(rw,sync,no_subtree_check,no_root_squash)” > /etc/exports