# NVIDIA CDI Hook The CLI `nvidia-cdi-hook` provides container device runtime hook capabilities when called by a container runtime, as specific in a [Container Device Interface](https://tags.cncf.io/container-device-interface/blob/main/SPEC.md) file. ## Generating a CDI The CDI itself is created for an NVIDIA-capable device using the [`nvidia-ctk cdi generate`](../nvidia-ctk/) command. When `nvidia-ctk cdi generate` is run, the CDI specification is generated as a yaml file. The CDI specification provides instructions for a container runtime to set up devices, files and other resources for the container prior to starting it. Those instructions may include executing command-line tools to prepare the filesystem. The execution of such command-line tools is called a hook. `nvidia-cdi-hook` is the CLI tool that is expected to be called by the container runtime, when specified by the CDI file. See the [`nvidia-ctk` documentation](../nvidia-ctk/README.md) for more information on generating a CDI file. ## Functionality The `nvidia-cdi-hook` CLI provides the following functionality: * `chmod` - Change the permissions of a file or directory inside the directory path to be mounted into a container. * `create-symlinks` - Create symlinks inside the directory path to be mounted into a container. * `update-ldcache` - Update the dynamic linker cache inside the directory path to be mounted into a container.