@@ -18,12 +18,10 @@ package nvcdi
1818
1919import (
2020 "fmt"
21- "os"
2221 "path/filepath"
2322 "strings"
2423
2524 "github.com/NVIDIA/go-nvml/pkg/nvml"
26- "golang.org/x/sys/unix"
2725
2826 "github.com/NVIDIA/nvidia-container-toolkit/internal/discover"
2927 "github.com/NVIDIA/nvidia-container-toolkit/internal/logger"
@@ -63,7 +61,7 @@ func (l *nvcdilib) newDriverVersionDiscoverer(version string) (discover.Discover
6361 return nil , fmt .Errorf ("failed to create discoverer for IPC sockets: %v" , err )
6462 }
6563
66- firmwares , err := NewDriverFirmwareDiscoverer (l .logger , l .driver .Root , version )
64+ firmwares , err := l . newDriverFirmwareDiscoverer (l .logger , l .driver .Root , version )
6765 if err != nil {
6866 return nil , fmt .Errorf ("failed to create discoverer for GSP firmware: %v" , err )
6967 }
@@ -107,67 +105,6 @@ func NewDriverLibraryDiscoverer(logger logger.Interface, driver *root.Driver, nv
107105 return d , nil
108106}
109107
110- func getUTSRelease () (string , error ) {
111- utsname := & unix.Utsname {}
112- if err := unix .Uname (utsname ); err != nil {
113- return "" , err
114- }
115- return unix .ByteSliceToString (utsname .Release [:]), nil
116- }
117-
118- func getFirmwareSearchPaths (logger logger.Interface ) ([]string , error ) {
119-
120- var firmwarePaths []string
121- if p := getCustomFirmwareClassPath (logger ); p != "" {
122- logger .Debugf ("using custom firmware class path: %s" , p )
123- firmwarePaths = append (firmwarePaths , p )
124- }
125-
126- utsRelease , err := getUTSRelease ()
127- if err != nil {
128- return nil , fmt .Errorf ("failed to get UTS_RELEASE: %v" , err )
129- }
130-
131- standardPaths := []string {
132- filepath .Join ("/lib/firmware/updates/" , utsRelease ),
133- "/lib/firmware/updates/" ,
134- filepath .Join ("/lib/firmware/" , utsRelease ),
135- "/lib/firmware/" ,
136- }
137-
138- return append (firmwarePaths , standardPaths ... ), nil
139- }
140-
141- // getCustomFirmwareClassPath returns the custom firmware class path if it exists.
142- func getCustomFirmwareClassPath (logger logger.Interface ) string {
143- customFirmwareClassPath , err := os .ReadFile ("/sys/module/firmware_class/parameters/path" )
144- if err != nil {
145- logger .Warningf ("failed to get custom firmware class path: %v" , err )
146- return ""
147- }
148-
149- return strings .TrimSpace (string (customFirmwareClassPath ))
150- }
151-
152- // NewDriverFirmwareDiscoverer creates a discoverer for GSP firmware associated with the specified driver version.
153- func NewDriverFirmwareDiscoverer (logger logger.Interface , driverRoot string , version string ) (discover.Discover , error ) {
154- gspFirmwareSearchPaths , err := getFirmwareSearchPaths (logger )
155- if err != nil {
156- return nil , fmt .Errorf ("failed to get firmware search paths: %v" , err )
157- }
158- gspFirmwarePaths := filepath .Join ("nvidia" , version , "gsp*.bin" )
159- return discover .NewMounts (
160- logger ,
161- lookup .NewFileLocator (
162- lookup .WithLogger (logger ),
163- lookup .WithRoot (driverRoot ),
164- lookup .WithSearchPaths (gspFirmwareSearchPaths ... ),
165- ),
166- driverRoot ,
167- []string {gspFirmwarePaths },
168- ), nil
169- }
170-
171108// NewDriverBinariesDiscoverer creates a discoverer for GSP firmware associated with the GPU driver.
172109func NewDriverBinariesDiscoverer (logger logger.Interface , driverRoot string ) discover.Discover {
173110 return discover .NewMounts (
0 commit comments