1DKMS(8) System Manager's Manual DKMS(8)
2
3
4
6 dkms - Dynamic Kernel Module Support
7
9 dkms [action] [options] [module/module-version] [/path/to/source-tree]
10 [/path/to/tarball.tar] [/path/to/driver.rpm]
11
13 dkms is a framework which allows kernel modules to be dynamically built
14 for each kernel on your system in a simplified and organized fashion.
15
17 add [module/module-version] [/path/to/source-tree]
18 [/path/to/tarball.tar]
19
20 Adds a module/module-version combination to the tree for builds and
21 installs. If module/module-version, -m module/module-version, or
22 -m module -v version are passed as options, this command requires
23 source in /usr/src/<module>-<module-version>/ as well as a properly
24 formatted dkms.conf file. If /path/to/source-tree is passed as an
25 option, and source-tree contains a dkms.conf file, it will copy
26 /path/to/source-tree to /usr/src/module-module-version. If
27 /path/to/tarball.tar is passed, this command behaves like the ld‐
28 tarball command.
29
30 remove [module/module-version] [-k kernel/arch] [--all]
31
32 Removes a module/version or module/version/kernel/arch combination
33 from the tree. If the module is currently installed, it first unin‐
34 stalls it and if applicable, will replace it with its original_mod‐
35 ule. Use the --all option in order to remove all instances for ev‐
36 ery kernel at once.
37
38 build [module/module-version] [-k kernel/arch] [--force]
39
40 Builds the specified module/version combo for the specified ker‐
41 nel/arch. If the -k option is not specified it builds for the cur‐
42 rently running kernel and arch. All builds occur in the directory
43 /var/lib/dkms/<module>/<module-version>/build/. If the module/mod‐
44 ule-version combo has not been added, dkms will try to add it, and
45 in that case build can take the same arguments that add can. If
46 the module is already built, it will not be rebuilt again by de‐
47 fault, and the --force option should be used to override this.
48
49 unbuild [module/module-version] [-k kernel/arch] [--all]
50
51 Undoes the build for a module/version or module/version/kernel/arch
52 combination from the tree. If the module is currently installed, it
53 first uninstalls it and if applicable, will replace it with its
54 original_module. Finally all binary kernel modules are removed. Use
55 the --all option in order to remove all instances for every kernel
56 at once.
57
58 install [module/module-version] [-k kernel/arch] [--force]
59 [/path/to/driver.rpm]
60
61 Installs a built module/version combo onto the kernel it was built
62 for. If the kernel option is not specified it assumes the currently
63 running kernel. If the module has not been built, dkms will try to
64 build it. If the module has not been added, dkms will try to add
65 it. In both cases, the install command can then take the same argu‐
66 ments as the build or add commands. If the module is already in‐
67 stalled, it will not be reinstalled again by default, and the
68 --force option should be used to override this. If you pass a .rpm
69 file, dkms will try to install that file with rpm -Uvh , and it
70 will perform an autoinstall action to be sure that everything is
71 built for your kernel if the RPM installed successfully.
72
73 uninstall [module/module-version] [-k kernel/arch] [--all]
74
75 Uninstalls an installed module/module-version combo from the ker‐
76 nel/arch passed in the -k option, or the current kernel if the -k
77 option was not passed. Use the --all option in order to uninstall
78 all instances for every kernel at once. After uninstall comple‐
79 tion, the driver will be left in the built state. To completely
80 remove a driver, the remove action should be utilized.
81
82 match [--templatekernel kernel/arch] [-k kernel/arch]
83
84 Match installs modules onto the specified kernel by looking at the
85 configuration of the specified templatekernel. Every module that
86 is installed on the templatekernel within dkms is then installed on
87 that specified kernel.
88
89 mktarball [module/module-version] [-k kernel/arch]
90 [--archive /path/to/tarball.tar] [--source-only] [--binaries-
91 only]
92
93 Creates a tarball archive for the specified module/version of all
94 files in the DKMS tree for that module/version combination. This
95 includes the source and any built modules for kernels in the tree
96 (as specified). Otherwise, you can specify a singular kernel to
97 archive only, or multiple kernels to archive (-k kernel1/arch1 -k
98 kernel2/arch2). Optionally, you can use --archive to specify the
99 file that you would like to save this tarball to. You can also
100 specify --binaries-only if you want the resultant tarball not to
101 include the module source. Likewise, --source-only can be used to
102 specify that no prebuilt binaries should be included in the tar‐
103 ball. In general, mktarball is great for systems management pur‐
104 poses as you can build your driver on just one system and then use
105 ldtarball on all of your other systems to get the same built mod‐
106 ules loaded without having to wait for anything to compile.
107
108 ldtarball [/path/to/tarball.tar] [--force]
109
110 This takes a tarball made from the mktarball command and loads it
111 into your DKMS tree. This will leave any newly added modules in the
112 built state and dkms install should then be called to install any
113 of them. If files already exist where ldtarball is attempting to
114 place them, it will warn and not copy over them. The --force option
115 should be used to override this.
116
117 status [module/module-version] [-k kernel/arch]
118
119 Returns the current status of modules, versions and kernels within
120 the tree as well as whether they have been added, built or in‐
121 stalled. Status can be shown for just a certain module, a certain
122 kernel, a module/version combination or a module/version/kernel
123 combination.
124
125 autoinstall
126
127 Attempt to install the latest revision of all modules that have
128 been installed for other kernel revisions. dkms_autoinstaller is a
129 stub that uses this action to perform its work.
130
132 -m <module>/<module-version>
133 The name of the module and module version you want to operate
134 on. The -m part of this option is optional, and can be omitted
135 in virtually all circumstances.
136
137 -v <module-version>
138 The version of the module to execute the specified action upon.
139 This option only has to be specified if you pass a -m option
140 without a <module-version> component of its own.
141
142 -k <kernel-version>/<arch>
143 The kernel and arch to perform the action upon. You can specify
144 multiple kernel version/arch pairs on the command line by re‐
145 peating the -k argument with a different kernel version and
146 arch. However, not all actions support multiple kernel versions
147 (it will error out in this case). The arch part can be omitted,
148 and DKMS will assume you want it to be the arch of the currently
149 running system.
150
151 -a, --arch
152 The system architecture to perform the action upon. It is op‐
153 tional if you pass it as part of the -k option. If not speci‐
154 fied, it assumes the arch of the currently running system (`un‐
155 ame -m`). You can specify multiple arch parameters on the same
156 command line by repeating the -a argument with a different arch
157 name. When multiple architectures are specified, there must be a
158 1:1 relationship between -k arguments to -a arguments. DKMS will
159 then assume the first -a argument aligns with the first -k ker‐
160 nel and so on for the second, third, etc.
161
162 For example, if you were to specify: -k kernel1 -k kernel2 -a
163 i386 -k kernel3 -a i686 -a x86_64, DKMS would process this as:
164 kernel1-i386, kernel2-i686, kernel3-x86_64.
165
166 -q, --quiet
167 Quiet.
168
169 -V, --version
170 Prints the currently installed version of dkms and exits.
171
172 -c <dkms.conf-location>
173 The location of the dkms.conf file. This is needed for the add
174 action and if not specified, it is assumed to be located in
175 /usr/src/<module>-<module-version>/. See below for more infor‐
176 mation on the format of dkms.conf.
177
178 --config <kernel-.config-location>
179 During a build this option is used to specify an alternate loca‐
180 tion for the kernel .config file which was used to compile that
181 kernel. Normally, dkms uses the Red Hat standard location and
182 config filenames located in /usr/src/linux-<kernel>/configs/.
183 If the config for the kernel that you are building a module for
184 is not located here or does not have the expected name in this
185 location, you will need to tell dkms where the necessary .config
186 can be found so that your kernel can be properly prepared for
187 the module build.
188
189 --archive <tarball-location>
190 This option is used during a ldtarball action to specify the lo‐
191 cation of the tarball you wish to load into your DKMS tree. You
192 only have to specify the --archive part of this option if <tar‐
193 ball-location> does not already exist as a file.
194
195 --templatekernel <kernel-version>
196 This option is required for the action: match. Match will look
197 at the templatekernel specified and install all of the same mod‐
198 ule/version combinations on the other kernel.
199
200 --force
201 This option can be used in conjunction with ldtarball to force
202 copying over of extant files.
203
204 --binaries-only
205 This option can be used in conjunction with mktarball in order
206 to create a DKMS tarball which does not contain the source for
207 the module within it. This can be helpful in reducing the size
208 of the tarball if you know that the system which this tarball
209 will be loaded upon already has the source installed. In order
210 to load a tarball made as binaries-only you must have the module
211 source in that systems DKMS tree. If you do not, DKMS will
212 refuse to load a binaries-only tarball.
213
214 --source-only
215 This option can be used in conjunction with mktarball but do not
216 want the tarball you create to have any prebuilt modules within
217 it, passing this option will keep its internal DKMS tarball from
218 containing any prebuilt modules.
219
220 --all This option can be used to automatically specify all relevant
221 kernels/arches for a module/module-version. This can be used for
222 things like remove, unbuild and uninstall. This saves the trou‐
223 ble of having to actually specify -k kernel1 -a arch1 -k kernel2
224 -a arch2 for every kernel you have built your module for.
225
226 --no-depmod
227 This option prevents DKMS from running the depmod command during
228 install and uninstall which will avoid (re)calculating module
229 dependencies and thereby save time.
230
231 --modprobe-on-install
232 This option executes modprobe on the modules upon successful in‐
233 stallation.
234
235 --kernelsourcedir <kernel-source-directory-location>
236 Using this option you can specify the location of your kernel
237 source directory. Most likely you will not need to set this if
238 your kernel source is accessible via /lib/modules/$kernel_ver‐
239 sion/build.
240
241 --directive <"cli-directive=cli-value">
242 Using this option, you can specify additional directives from
243 the command line. The --directive option can be used multiple
244 times on the same command-line to specify multiple additional
245 command line directives.
246
247 --rpm_safe_upgrade
248 This flag should be used when packaging DKMS enabled modules in
249 RPMs. It should be specified during both the add and remove ac‐
250 tions in the RPM spec to ensure that DKMS and RPM behave cor‐
251 rectly in all scenarios when upgrading between various versions
252 of a dkms enabled module RPM package.
253
254 --dkmstree path/to/place
255 Provides a destination tree for building and installing modules
256 to. Useful in cases that you don't want to contaminate a system
257 when using solely for building.
258
259 --sourcetree path/to/place
260 Provides a location to build a DKMS package from. Useful for
261 systems that you may not have root access, but would still like
262 to be able to build DKMS packages.
263
264 --installtree path/to/place
265 Provides a location to place modules when a dkms install command
266 is issued.
267
268 -j number
269 Run no more than number jobs in parallel; see the -j option of
270 make(1). Defaults to the number of CPUs in the system, detected
271 by nproc(1). Specify 0 to impose no limit on the number of par‐
272 allel jobs.
273
275 During the first install of a module for a <kernelversion>, dkms will
276 search /lib/modules/<kernelversion> for a pre-existing module of the
277 same name. If one is found, it will automatically be saved as an "orig‐
278 inal_module" so that if the newer module is later removed, dkms will
279 put the original module back in its place. Currently, DKMS searches for
280 these original modules with first preference going to modules located
281 in /lib/modules/<kernelversion>/updates/ followed by $DEST_MODULE_LOCA‐
282 TION (as specified in dkms.conf ). If one cannot be found in either lo‐
283 cation, a find will be used to locate one for that kernel. If none are
284 found, then during a later uninstall, your kernel will not have that
285 module replaced.
286
287 If more than one is found, then the first one located (by preference
288 indicated above) will be considered the "original_module". As well, all
289 copies of the same-named module will be removed from your kernel tree
290 and placed into /var/lib/dkms/<module>/original_module/$kernelver/col‐
291 lisions so that they can be *manually* accessible later. DKMS will
292 never actually do anything with the modules found underneath the /col‐
293 lisions directory, and they will be stored there until you manually
294 delete them.
295
297 When performing an add , a proper dkms.conf file must be found. A prop‐
298 erly formatted conf file is essential for communicating to dkms how and
299 where the module should be installed. While not all the directives are
300 required, providing as many as possible helps to limit any ambiguity.
301 Note that the dkms.conf is really only a shell-script of variable defi‐
302 nitions which are then sourced in by the dkms executable (of the for‐
303 mat, DIRECTIVE="directive text goes here"). As well, the directives are
304 case-sensitive and should be given in ALL CAPS.
305
306 It is important to understand that many of the DKMS directives are ar‐
307 rays whose index values are tied together. These array associations can
308 be considered families, and there are currently three such families of
309 directive arrays. MAKE[#] and MAKE_MATCH[#] make up one family.
310 PATCH[#] and PATCH_MATCH[#] make up the second family. The third and
311 largest family consists of BUILT_MODULE_NAME[#], BUILT_MODULE_LOCA‐
312 TION[#], DEST_MODULE_NAME[#], DEST_MODULE_LOCATION[#] and STRIP[#].
313 When indexing these arrays when creating your dkms.conf, each family
314 should start at index value 0.
315
316 MAKE[#]=
317 The MAKE directive array tells DKMS which make command should be
318 used for building your module. The default make command should
319 be put into MAKE[0]. Other entries in the MAKE array will only
320 be used if their corresponding entry in MAKE_MATCH[#] matches,
321 as a regular expression (using grep -E), the kernel that the
322 module is being built for. Note that if no value is placed in
323 MAKE_MATCH[#] for any MAKE[#] where # > 0, then that MAKE direc‐
324 tive is ignored. MAKE_MATCH[0] is optional and if it is popu‐
325 lated, it will be used to determine if MAKE[0] should be used to
326 build the module for that kernel. If multiple MAKE_MATCH direc‐
327 tives match against the kernel being built for, the last match‐
328 ing MAKE[#] will be used to build your module. If no MAKE direc‐
329 tive is specified or if no MAKE_MATCH matches the kernel being
330 built for, DKMS will attempt to use a generic MAKE command to
331 build your module.
332
333 KERNELRELEASE will be automatically appended to MAKE[#]. If you
334 want to suppress this behavior, you can quote the make command:
335 'make'.
336
337 MAKE_MATCH[#]=
338 See the above entry on MAKE[#] directives. This array should be
339 populated with regular expressions which, when matched against
340 the kernel being built for, will tell DKMS to use the corre‐
341 sponding make command in the MAKE[#] directive array to build
342 your module.
343
344 BUILT_MODULE_NAME[#]=
345 This directive gives the name of the module just after it is
346 built. If your DKMS module package contains more than one module
347 to install, this is a required directive for all of the modules.
348 This directive should explicitly not contain any trailing ".o"
349 or ".ko". Note that for each module within a dkms package, the
350 numeric value of # must be the same for each of BUILT_MOD‐
351 ULE_NAME, BUILT_MODULE_LOCATION, DEST_MODULE_NAME and DEST_MOD‐
352 ULE_LOCATION and that the numbering should start at 0 (eg.
353 BUILT_MODULE_NAME[0]="qla2200" BUILT_MODULE_NAME[1]="qla2300").
354
355 BUILT_MODULE_LOCATION[#]=
356 This directive tells DKMS where to find your built module after
357 it has been built. This pathname should be given relative to the
358 root directory of your source files (where your dkms.conf file
359 can be found). If unset, DKMS expects to find your BUILT_MOD‐
360 ULE_NAME[#] in the root directory of your source files. Note
361 that for each module within a dkms package, the numeric value of
362 # must be the same for each of BUILT_MODULE_NAME, BUILT_MOD‐
363 ULE_LOCATION, DEST_MODULE_NAME and DEST_MODULE_LOCATION and that
364 the numbering should start at 0 (eg. BUILT_MODULE_LOCA‐
365 TION[0]="some/dir/" BUILT_MODULE_LOCATION[1]="other/dir/").
366
367 DEST_MODULE_NAME[#]=
368 This directive can be used to specify the name of the module as
369 it should be installed. This will rename the module from
370 BUILT_MODULE_NAME[#] to DEST_MODULE_NAME[#]. This directive
371 should explicitly not contain any trailing ".o" or ".ko". If un‐
372 set, it is assumed to be the same value as BUILT_MODULE_NAME[#].
373 Note that for each module within a dkms package, the numeric
374 value of # must be the same for each of BUILT_MODULE_NAME,
375 BUILT_MODULE_LOCATION, DEST_MODULE_NAME and DEST_MODULE_LOCATION
376 and that the numbering should start at 0 (eg. DEST_MOD‐
377 ULE_NAME[0]="qla2200_6x" DEST_MODULE_NAME[1]="qla2300_6x").
378
379 DEST_MODULE_LOCATION[#]=
380 This directive specifies the destination where a module should
381 be installed to, once compiled. It also is used for finding
382 original_modules. This is a required directive, except as noted
383 below. This directive must start with the text "/kernel" which
384 is in reference to /lib/modules/<kernelversion>/kernel. Note
385 that for each module within a dkms package, the numeric value of
386 # must be the same for each of BUILT_MODULE_NAME, BUILT_MOD‐
387 ULE_LOCATION, DEST_MODULE_NAME and DEST_MODULE_LOCATION and that
388 the numbering should start at 0 (eg. DEST_MODULE_LOCA‐
389 TION[0]="/kernel/drivers/something/" DEST_MODULE_LOCA‐
390 TION[1]="/kernel/drivers/other/").
391
392 DEST_MODULE_LOCATION is ignored on Fedora and Red Hat Enterprise
393 Linux, Novell SuSE Linux Enterprise Server 10 and higher, Novell
394 SuSE Linux 10.0 and higher, and Ubuntu. Instead, the proper dis‐
395 tribution-specific directory is used.
396
397 STRIP[#]=
398 By default strip is considered to be "yes". If set to "no", DKMS
399 will not run strip -g against your built module to remove debug
400 symbols from it. STRIP[0] is used as the default for any unset
401 entries in the STRIP array.
402
403 PACKAGE_NAME=
404 This directive is used to give the name associated with the en‐
405 tire package of modules. This is the same name that is used with
406 the -m option when building, adding, etc. and may not necessar‐
407 ily be the same as the MODULE_NAME. This directive must be
408 present in every dkms.conf.
409
410 PACKAGE_VERSION=
411 This directive is used to give the version associated with the
412 entire package of modules being installed within that dkms pack‐
413 age. This directive must be present in every dkms.conf.
414
415 CLEAN= CLEAN specifies the make clean command to be used to clean up
416 both before and after building the module. If unset, it is as‐
417 sumed to be "make clean".
418
419 OBSOLETE_BY=
420 This directive allows you to specify a kernel version that obso‐
421 letes the necessity for this particular DKMS module. This can be
422 specified as a particular upstream kernel or an ABI bump of a
423 kernel. For example, "2.6.24" would be an upstream kernel and
424 "2.6.24-16" would represent an ABI bump for a kernel. Both are
425 valid in this area.
426
427 Please avoid the use of OBSOLETE_BY wherever possible. It's use
428 indicates a lack of proper module versioning using MODULE_VER‐
429 SION() tags in the module source itself. It is better to fix the
430 MODULE_VERSION() tags than use OBSOLETE_BY. This also intro‐
431 duces a implicit distribution/version dependency on the package,
432 as the value of OBSOLETE_BY is meaningful only in the context of
433 a single distribution/version.
434
435 If you feel you must use it, please use as such in dkms.conf:
436
437 ubuntu_804="Ubuntu
438 8.04"
439 if [ -x /usr/bin/lsb_release ]; then
440 if [ "$(/usr/bin/lsb_release -sir)" == "${ubuntu_804}" ];
441 then
442 OBSOLETE_BY="2.6.25"
443 fi
444 fi
445
446
447 PATCH[#]=
448 Use the PATCH directive array to specify patches which should be
449 applied to your source before a build occurs. All patches are
450 expected to be in -p1 format and are applied with the patch -p1
451 command. Each directive should specify the filename of the
452 patch to apply, and all patches must be located in the patches
453 subdirectory of your source directory ( /usr/src/<module>-<mod‐
454 ule-version>/patches/ ). If any patch fails to apply, the build
455 will be halted and the rejections can be inspected in
456 /var/lib/dkms/<module>/<module-version>/build/. If a PATCH
457 should only be applied conditionally, the PATCH_MATCH[#] array
458 should be used, and a corresponding regular expression should be
459 placed in PATCH_MATCH[#] which will alert dkms to only use that
460 PATCH[#] if the regular expression matches the kernel which the
461 module is currently being built for.
462
463 PATCH_MATCH[#]=
464 See the above description for PATCH[#] directives. If you only
465 want a patch applied in certain scenarios, the PATCH_MATCH array
466 should be utilized by giving a regular expression which matches
467 the kernels you intend the corresponding PATCH[#] to be applied
468 to before building that module.
469
470 AUTOINSTALL=
471 If this directive is set to yes then the service
472 /etc/rc.d/init.d/dkms_autoinstaller will automatically try to
473 install this module on any kernel you boot into. See the section
474 on dkms_autoinstaller for more information.
475
476 BUILD_DEPENDS[#]=
477 This optional directive is an array that allows you to specify
478 other modules as dependencies for your module. Each array ele‐
479 ment should be the PACKAGE_NAME of another module that is man‐
480 aged by dkms. Do not specify a version or architecture in the
481 dependency. Note that this directive is only advisory; missing
482 or broken dependencies cause non-fatal warnings.
483
484 BUILD_EXCLUSIVE_KERNEL=
485 This optional directive allows you to specify a regular expres‐
486 sion which defines the subset of kernels which DKMS is allowed
487 to build your module for. If the kernel being built for does not
488 match against this regular expression, the dkms build will error
489 out. For example, if you set it as ="^2.4.*", your module would
490 not be built for 2.6 kernels.
491
492 BUILD_EXCLUSIVE_ARCH=
493 This optional directive functions very similarly to BUILD_EXCLU‐
494 SIVE_KERNEL except that it matches against the kernel architec‐
495 ture. For example, if you set it to ="i.86", your module would
496 not be built for ia32e, x86_64, amd64, s390, etc.
497
498 POST_ADD=
499 The name of the script to be run after an add is performed. The
500 path should be given relative to the root directory of your
501 source.
502
503 POST_BUILD=
504 The name of the script to be run after a build is performed. The
505 path should be given relative to the root directory of your
506 source.
507
508 POST_INSTALL=
509 The name of the script to be run after an install is performed.
510 The path should be given relative to the root directory of your
511 source.
512
513 POST_REMOVE=
514 The name of the script to be run after a remove is performed.
515 The path should be given relative to the root directory of your
516 source.
517
518 PRE_BUILD=
519 The name of the script to be run before a build is performed.
520 The path should be given relative to the root directory of your
521 source.
522
523 PRE_INSTALL=
524 The name of the script to be run before an install is performed.
525 The path should be given relative to the root directory of your
526 source. If the script exits with a non-zero value, the install
527 will be aborted. This is typically used to perform a custom ver‐
528 sion comparison.
529
530
531 DKMS.CONF VARIABLES
532 Within your dkms.conf file, you can use certain variables which
533 will be replaced at run-time with their values.
534
535 $kernelver
536 This variable can be used within a directive definition and dur‐
537 ing use, the actual kernel version in question will be substi‐
538 tuted in its place. This is especially useful in MAKE commands
539 when specifying which INCLUDE statements should be used when
540 compiling your module (eg. MAKE="make all INCLUDEDIR=/lib/mod‐
541 ules/${kernelver}/build/include").
542
543 $kernel_source_dir
544 This variable holds the value of the location of your kernel
545 source directory. Usually, this will be /lib/modules/$ker‐
546 nelver/build , unless otherwise specified with the --kernel‐
547 sourcedir option.
548
550 You can override the module-provided dkms.conf files. Every time after
551 a dkms.conf file is read, dkms will look for and read the following
552 files in order:
553
554 /etc/dkms/<module>.conf
555 /etc/dkms/<module>-<module-version>.conf
556 /etc/dkms/<module>-<module-version>-<kernel>.conf
557 /etc/dkms/<module>-<module-version>-<kernel>-<arch>.conf
558
559 You can use these files to override settings in the module-provided
560 dkms.conf files.
561
563 This configuration file controls how the overall DKMS framework han‐
564 dles. It is sourced in every time the dkms command is run. Mainly it
565 can currently be used to set different default values for the vari‐
566 ables.
567
568 The file contains descriptions for each directive it supports.
569
570 Additionally to /etc/dkms/framework.conf, any file matching the glob
571 /etc/dkms/framework.conf.d/*.conf will be loaded as well.
572
573 $dkms_tree, $source_tree, $install_tree, $tmp_location
574 Control which folders DKMS uses for components and artifacts.
575
576 $verbose
577 Can be set to anything but a null value to enable verbose output
578 in DKMS.
579
580 $symlink_modules
581 Controls whether binary modules are copied to /lib/modules or if
582 only symlinks are created there. Note that these variables can
583 also be manipulated on the command line with --dkmstree,
584 --sourcetree, --installtree and --symlink-modules options.
585
586 $autoinstall_all_kernels
587 Used by the common postinst for DKMS modules. It controls if the
588 build should be done for all installed kernels or only for the
589 current and latest installed kernel. It has no command line
590 equivalent.
591
592 $sign_file
593 This is the path of the sign-file kernel binary that is used to
594 sign the kernel modules. The variable $kernelver can be used in
595 path to represent the target kernel version. The path for the
596 binary depends on the distribution.
597
598 $mok_signing_key, $mok_certificate
599 Location of the key and certificate files used for Secure boot.
600 The variable $kernelver can be used in path to represent the
601 target kernel version. mok_signing_key can also be a
602 "pkcs11:..." string for PKCS#11 engine, as long as the sign_file
603 program supports it.
604
605 $modprobe_on_install
606 Automatically load the built modules upon successful installa‐
607 tion.
608
610 This boot-time service automatically installs any module which has AU‐
611 TOINSTALL="yes" set in its dkms.conf file. The service works quite sim‐
612 ply and if multiple versions of a module are in your system's DKMS
613 tree, it will not do anything and instead explain that manual interven‐
614 tion is required.
615
617 Gary Lerhaupt, Emil Velikov, Simone Caronni, Xu Zhen
618
620 https://github.com/dell/dkms
621
622
623
624dkms-3.0.10 03 January 2023 DKMS(8)