Xavier pcie

In the guide of the NVIDIA JETSON AGX XAVIER PCIE ENDPOINT SOFTWARE FOR L4T. I have some problems.

In this step:ln -s functions/pci_epf_nv_test/func1 controllers/141a0000.pcie_ep/
It tells me an error as follows:

how can I to solve this problem?

And I have try to build /sys/kernel/config/pci_ep/controllers/141a0000.pcie_ep,I can’t do this because I don’t have permission.

what can i do to have /sys/kernel/config/pci_ep/controllers/141a0000.pcie_ep?

I suspect the given command has to be run from a particular location. I don’t know about the original reason for wanting to do this, but some explanation may help.

The content of “/sys” is not that of a real file. Everything there actually exists in RAM, and not on the hard drive. These are reflections of code (mostly drivers) running in the kernel being programmed to look like a file. Anything you can read from or write to is the result of kernel code to handle that case. You cannot create directories and files within this, that would be the responsibility of the kernel.

The symbolic link (from “ln -s”) links some “real” content to some “new” name. If you are logged in as root (sudo in this case), then you can:

cd /sys/kernel/config/pci_ep
ls functions
ls functions/pci_epf_nv_test

On this last “ls”, do you see any content? If so, then it is because you are using a kernel and configuration which makes this available. If not, then perhaps the instructions were for a different kernel, or perhaps a driver just isn’t loaded which produces that. If you continue on with ls you can ls that entire path which is part of the “ln -s” command. I don’t know what that is because it is a screenshot, and not copy/paste text. I don’t know what the screenshot cut off.

The last part of that command is to actually create a “fake” name which you can view the original by. However, you can’t create that name in “/sys” because this is what the kernel does, not end users. The last path of “ln -s” would need to name some location on the hard drive, not something in “/sys”.

Much more context is needed to know what was supposed to occur. Part of that is to know which release this was intended for, and another part is to know what release you are using. If the instructions are related to a particular piece of hardware, then we’d need to know that drivers are loaded for that hardware.

The documents I use for the describes the software in L4T Release 32.1. In real,I use the version of L4T source in Release 32.4.3

It’s duplicate thread