Files
linux-nv-oot/drivers/misc/nvsciipc
Joshua Cha d22a9b34c6 misc: nvsciipc: fix auth token validation API
In NvSciIpcEndpointValidateAuthTokenLinuxCurrent(),
It returns incorrect VUID due to partial string match in corner case.
If string length of device node name is different from the size return of
snprintf(), it skips comparing strings.
Enable debug cmd to test NvSciIpcEndpointValidateAuthTokenLinuxCurrent() and
NvSciIpcEndpointMapVuid() since they're kernel APIs.

remove one time update limit of SET DB cmd.

Added missing updates in nvidia-oot.

Bug 3928121

Change-Id: I13cc1927e817a124722156cffa0b391c95c7d28e
Signed-off-by: Joshua Cha <joshuac@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2850945
Reviewed-by: Simon Je <sje@nvidia.com>
Reviewed-by: Kurt Yi <kyi@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-03-06 10:53:39 -08:00
..
2022-11-30 00:00:04 -08:00

Build NvSciIpc KMD for DRIVE x86
================================

1) install kernel header package
sudo apt-get install linux-headers-`uname -r`

check version of desktop using "uname -r" command.
kernel version must be 5.4.0+.

2) link common header files (NVIDIA internal dev only)
export NVSCIIPC_INCLUDE=${PWD}/../../../include
ln -s ${NVSCIIPC_INCLUDE}/linux ./
ln -s ${NVSCIIPC_INCLUDE}/uapi ./

3) build
make -C /lib/modules/`uname -r`/build M=${PWD} CONFIG_TEGRA_OOT_MODULE=m modules

4) install NvSciIpc KMD
sudo make -C /lib/modules/`uname -r`/build M=${PWD} CONFIG_TEGRA_OOT_MODULE=m modules_install
sudo depmod -a

nvsciipc.ko will be installed in /lib/modules/`uname -r`/extra/nvsciipc.ko

[NOTE] If kernel module installation is failed by missing signing key, follow steps below

** create x509.genkey
echo -e "[ req ] \n\
default_bits = 4096 \n\
distinguished_name = req_distinguished_name \n\
prompt = no \n\
x509_extensions = myexts \n\
\n\
[ req_distinguished_name ] \n\
CN = Modules \n\
\n\
[ myexts ] \n\
basicConstraints=critical,CA:FALSE \n\
keyUsage=digitalSignature \n\
subjectKeyIdentifier=hash \n\
authorityKeyIdentifier=keyid" > x509.genkey

** generate signing key
openssl req -new -nodes -utf8 -sha512 -days 36500 -batch -x509 -config x509.genkey -outform DER -out signing_key.x509 -keyout signing_key.pem

** move signing key to kernel module folder of desktop
sudo mv signing_key.* /lib/modules/`uname -r`/build/certs/

5) clean
make -C /lib/modules/`uname -r`/build M=${PWD} CONFIG_TEGRA_OOT_MODULE=m clean

6) load NvSciIpc KMD
You can load NvSciIpc KMD during desktop boot.
sudo vi /etc/modules-load.d/modules.conf
add "nvsciipc" to this file

For manual loading KMD, do "sudo insmod nvsciipc.ko"