After updating the JN to JP 4.4 (L4T R32-4.2) via apt I looked deeper into cudnn.csv. IMHO this file was not build properly. It was in DOS format and the entries was not ordered properly.
Another problem I encountered was the indirection to /etc/alternatives, this was even not done right for all includes and
cuDNN 8 looks different than before, it was splitted into several includes and libraries, so I couldn’t compile openCV properly stuck with cuDNN 7.6.3.
I gues the cvs file must looks like:
lib, /usr/include/aarch64-linux-gnu/cudnn_adv_infer_v8.h
sym, /usr/include/aarch64-linux-gnu/cudnn_adv_infer.h
sym, /etc/alternatives/cudnn_adv_infer_h
other than that it was written with 0xOD,0xOA not 0x0A
Here my changes:
- Install dos2unix tool with sudo apt install dos2unix
- Change directory with cd /etc/nvidia-container-runtime/host-files-for-container.d
- Convert cudnn.csv into newline format with dos2unix cudnn.csv
- Revise entries
- Open an L4T docker container to proof the changes
- Redo step 3, 4 and 5 to refine entries some are missing
NOTE: Keep in mind everythings goes through /etc/alternatives, that means
/etc/alternatives:
[sym, …] /etc/alternatives/libcudnn_adv_infer_so -> /usr/lib/aarch64-linux-gnu/libcudnn_adv_infer.so.8
/usr/lib/aarch64-linux-gnu:
[sym, …] libcudnn_adv_infer.so -> /etc/alternatives/libcudnn_adv_infer_so
[sym, …] libcudnn_adv_infer.so.8 -> libcudnn_adv_infer.so.8.0.0
[lib, …] libcudnn_adv_infer.so.8.0.0
e.g.
lib, /usr/lib/aarch64-linux-gnu/libcudnn_adv_infer.so.8.0.0
sym, /usr/lib/aarch64-linux-gnu/libcudnn_adv_infer.so.8
sym, /usr/lib/aarch64-linux-gnu/libcudnn_adv_infer.so
sym, /etc/alternatives/libcudnn_adv_infer_so
NOTE: If the sym or link entry is not right nothing happen, that means the file will not be propagated into the L4T docker container.