@@ -18,12 +18,10 @@ package nvcdi
18
18
19
19
import (
20
20
"fmt"
21
- "os"
22
21
"path/filepath"
23
22
"strings"
24
23
25
24
"github.com/NVIDIA/go-nvml/pkg/nvml"
26
- "golang.org/x/sys/unix"
27
25
28
26
"github.com/NVIDIA/nvidia-container-toolkit/internal/discover"
29
27
"github.com/NVIDIA/nvidia-container-toolkit/internal/logger"
@@ -63,7 +61,7 @@ func (l *nvcdilib) newDriverVersionDiscoverer(version string) (discover.Discover
63
61
return nil , fmt .Errorf ("failed to create discoverer for IPC sockets: %v" , err )
64
62
}
65
63
66
- firmwares , err := NewDriverFirmwareDiscoverer (l .logger , l .driver .Root , version )
64
+ firmwares , err := l . newDriverFirmwareDiscoverer (l .logger , l .driver .Root , version )
67
65
if err != nil {
68
66
return nil , fmt .Errorf ("failed to create discoverer for GSP firmware: %v" , err )
69
67
}
@@ -107,67 +105,6 @@ func NewDriverLibraryDiscoverer(logger logger.Interface, driver *root.Driver, nv
107
105
return d , nil
108
106
}
109
107
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
-
171
108
// NewDriverBinariesDiscoverer creates a discoverer for GSP firmware associated with the GPU driver.
172
109
func NewDriverBinariesDiscoverer (logger logger.Interface , driverRoot string ) discover.Discover {
173
110
return discover .NewMounts (
0 commit comments