Search custom firmware paths first

Signed-off-by: Evan Lezar <elezar@nvidia.com>
This commit is contained in:
Evan Lezar 2023-07-07 15:26:26 +02:00
parent d3d41a3e1d
commit 81908c8cc9
2 changed files with 10 additions and 6 deletions

View File

@ -15,6 +15,7 @@
* Add option to create device nodes when creating `/dev/char` symlinks * Add option to create device nodes when creating `/dev/char` symlinks
* Create ouput folders if required when running `nvidia-ctk runtime configure` * Create ouput folders if required when running `nvidia-ctk runtime configure`
* Generate default config as post-install step. * Generate default config as post-install step.
* Added support for detecting GSP firmware at custom paths when generating CDI specifications.
* [libnvidia-container] Support OpenSSL 3 with the Encrypt/Decrypt library * [libnvidia-container] Support OpenSSL 3 with the Encrypt/Decrypt library

View File

@ -110,23 +110,26 @@ func getUTSRelease() (string, error) {
} }
func getFirmwareSearchPaths(logger logger.Interface) ([]string, error) { func getFirmwareSearchPaths(logger logger.Interface) ([]string, error) {
var firmwarePaths []string
if p := getCustomFirmwareClassPath(logger); p != "" {
logger.Debugf("using custom firmware class path: %s", p)
firmwarePaths = append(firmwarePaths, p)
}
utsRelease, err := getUTSRelease() utsRelease, err := getUTSRelease()
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to get UTS_RELEASE: %v", err) return nil, fmt.Errorf("failed to get UTS_RELEASE: %v", err)
} }
firmwarePaths := []string{ standardPaths := []string{
filepath.Join("/lib/firmware/updates/", utsRelease), filepath.Join("/lib/firmware/updates/", utsRelease),
filepath.Join("/lib/firmware/updates/"), filepath.Join("/lib/firmware/updates/"),
filepath.Join("/lib/firmware/", utsRelease), filepath.Join("/lib/firmware/", utsRelease),
filepath.Join("/lib/firmware/"), filepath.Join("/lib/firmware/"),
} }
if p := getCustomFirmwareClassPath(logger); p != "" { return append(firmwarePaths, standardPaths...), nil
logger.Debugf("using custom firmware class path: %s", p)
firmwarePaths = append(firmwarePaths, p)
}
return firmwarePaths, nil
} }
// getCustomFirmwareClassPath returns the custom firmware class path if it exists. // getCustomFirmwareClassPath returns the custom firmware class path if it exists.