@@ -30,6 +30,19 @@ def _process_kmod_ignore(self, module: str) -> None:
3030 self [key ].remove (module )
3131
3232
33+ def _process_kernel_modules_multi (self , module : str ) -> None :
34+ """
35+ Adds the passed kernel module to self['kernel_modules']
36+ Checks if the module is ignored
37+ """
38+ if module in self ['kmod_ignore' ]:
39+ self .logger .warning ("Not adding ignored kernel module to kernel_modules: %s" % module )
40+ return
41+
42+ self .logger .debug ("Adding kernel module to kernel_modules: %s" , module )
43+ self ['kernel_modules' ].append (module )
44+
45+
3346def _process_kmod_init_multi (self , module : str ) -> None :
3447 """
3548 Adds init modules to self['kernel_modules'].
@@ -113,7 +126,7 @@ def process_kmod(self, module: str):
113126
114127 if firmware := modinfo .get ('firmware' ):
115128 if self .config_dict .get ('kmod_pull_firmware' ):
116- self .logger .info ("Adding firmware to dependencies: %s" % firmware )
129+ self .logger .info ("[%s] Adding firmware to dependencies: %s" % ( module , firmware ) )
117130 for file in firmware :
118131 try :
119132 self .config_dict ['dependencies' ] = Path ('/lib/firmware/' ) / file
@@ -149,7 +162,7 @@ def get_lspci_modules(self) -> list[str]:
149162 except RuntimeError as e :
150163 raise DependencyResolutionError ("Failed to get list of kernel modules" ) from e
151164
152- raw_modules = set ()
165+ modules = set ()
153166 # Iterate over all output lines
154167 for line in cmd .stdout .decode ('utf-8' ).split ('\n ' ):
155168 # If the line contains the string 'Kernel modules:' or 'Kernel driver in use:', it contains the name of a kernel module
@@ -158,13 +171,13 @@ def get_lspci_modules(self) -> list[str]:
158171 if ',' in module :
159172 # If there are multiple modules, split them and add them to the module set
160173 for module in module .split (',' ):
161- raw_modules .add (module .strip ())
174+ modules .add (module .strip ())
162175 else :
163176 # Add the single module to the module set
164- raw_modules .add (module .strip ())
177+ modules .add (module .strip ())
165178
166- self .logger .debug ("Kernel modules in use by hardware: %s" % raw_modules )
167- return list (raw_modules )
179+ self .logger .debug ("Kernel modules in use by hardware: %s" % modules )
180+ return list (modules )
168181
169182
170183def get_lsmod_modules (self ) -> list [str ]:
@@ -184,7 +197,7 @@ def get_lsmod_modules(self) -> list[str]:
184197 raise DependencyResolutionError ('Failed to get list of kernel modules' ) from e
185198
186199 raw_modules = cmd .stdout .decode ('utf-8' ).split ('\n ' )[1 :]
187- modules = []
200+ modules = set
188201 # Remove empty lines, header, and ignored modules
189202 for module in raw_modules :
190203 if not module :
@@ -193,10 +206,10 @@ def get_lsmod_modules(self) -> list[str]:
193206 self .logger .log (5 , "Dropping header line" )
194207 else :
195208 self .logger .debug ("Adding kernel module: %s" , module .split ()[0 ])
196- modules .append (module .split ()[0 ])
209+ modules .add (module .split ()[0 ])
197210
198211 self .logger .debug (f'Found { len (modules )} active kernel modules' )
199- return modules
212+ return list ( modules )
200213
201214
202215def process_module_metadata (self ) -> None :
0 commit comments