]> git.ipfire.org Git - thirdparty/kmod.git/blob - NEWS
kmod 31
[thirdparty/kmod.git] / NEWS
1 kmod 31
2 =======
3
4 - Improvements
5
6 - Allow passing a path to modprobe so the module is loaded from
7 anywhere from the filesystem, but still handling the module
8 dependencies recorded in the indexes. This is mostly intended for kernel
9 developers to speedup testing their kernel modules without having to load the
10 dependencies manually or override the module in /usr/lib/modules/.
11 Now it's possible to do:
12
13 # modprobe ./drivers/gpu/drm/i915/i915.ko
14
15 As long as the dependencies didn't change, this should do the right thing
16
17 - Use in-kernel decompression if available. This will check the runtime support
18 in the kernel for decompressing modules and use it through finit_module().
19 Previously kmod would fallback to the older init_module() when using
20 compressed modules since there wasn't a way to instruct the kernel to
21 uncompress it on load or check if the kernel supported it or not.
22 This requires a recent kernel (>= 6.4) to have that support and
23 in-kernel decompression properly working in the kernel.
24
25 - Make modprobe fallback to syslog when stderr is not available, as was
26 documented in the man page, but not implemented
27
28 - Better explaing `modprobe -r` and how it differentiates from rmmod
29
30 - depmod learned a `-o <dir>` option to allow using a separate output
31 directory. With this, it's possible to split the output files from
32 the ones used as input from the kernel build system
33
34 - Add compat with glibc >= 2.32.9000 that dropped __xstat
35
36 - Improve testsuite to stop skipping tests when sysconfdir is something
37 other than /etc
38
39 - Build system improvements and updates
40
41 - Change a few return codes from -ENOENT to -ENODATA to avoid confusing output
42 in depmod when the module itself lacks a particular ELF section due to e.g.
43 CONFIG_MODVERSIONS=n in the kernel.
44
45
46 - Bug Fixes
47
48 - Fix testsuite using uninitialized memory when testing module removal
49 with --wait
50
51 - Fix testsuite not correctly overriding the stat syscall on 32-bit
52 platforms. For most architectures this was harmless, but for MIPS it
53 was causing some tests to fail.
54
55 - Fix handling unknown signature algorithm
56
57 - Fix linking with a static liblzma, libzstd or zlib
58
59 - Fix memory leak when removing module holders
60
61 - Fix out-of-bounds access when using very long paths as argument to rmmod
62
63 - Fix warnings reported by UBSan
64
65 kmod 30
66 =======
67
68 - Improvements
69 - Stop adding duplicate information on modules.builtin.alias.bin, just use
70 the modules.builtin.bin index
71
72 - Speedup depmod, particularly under qemu with emulated arch, by
73 avoiding a lot of open/read/close of modules.alias.bin. On an
74 emulated ARM rootfs, depmod with only 2 modules was taking ~32s
75 vs ~0.07s now.
76
77 - Add kmod_module_new_from_name_lookup() which allows doing a lookup by
78 module name, without considering the aliases. Other than that search
79 order is similar to kmod_module_new_from_lookup().
80
81 - modinfo learned the --modname option to explicitely show information
82 about the module, even if there is an alias with the same name. This
83 allows showing information about e.g. kernel/lib/crc32.ko, even if
84 kernel also exports a crc32 alias in modules.alias:
85
86 alias crc32 crc32_pclmul
87 alias crc32 crc32_generic
88
89 Same behavior will be used to other modules and to aliases provided
90 by user/distro.
91
92 - depmod.conf learned a new "excludedir" directive so distro/user can
93 configure more directories to be excluded from its search, besides
94 the hardcoded values "build" and "source".
95
96 - Better group modprobe options on help output under "Management, Query and General".
97
98 - modprobe learned a --wait <MSEC> option to be used together with -r
99 when removing a module. This allows modprobe to keep trying the
100 removal if it fails because the module is still in use. An exponential backoff
101 time is used for further retries.
102
103 The wait behavior provided by the kernel when not passing O_NONBLOCK
104 to delete_module() was removed in v3.13 due to not be used and the
105 consequences of having to support it in the kernel. However there may
106 be some users, particularly on testsuites for individual susbsystems, that
107 would want that. So provide a userspace implementation inside modprobe for
108 such users. "rmmod" doesn't have a --wait as it remains a bare minimal over
109 the API provided by the kernel. In future the --wait behavior can be added
110 to libkmod for testsuites not exec'ing modprobe for module removal.
111
112 - kmod_module_remove_module() learned a new flag to silence output when
113 caller wants to handle them - this is particularly important for the
114 --wait flag to modprobe, as it's not desired to keep seeing error messages
115 while waiting for the module to be unused.
116
117 - Add SM3 hash algo support to modinfo output, as already available in the kernel.
118
119 - Bug Fixes
120 - Fix modinfo output when showing information for a .ko module when running
121 on a kernel that has that module as builtin.
122
123 - Fix kmod_module_new_from_lookup() returning > 0 rather than 0
124 when it matches an alias.
125
126 - Fix modinfo segfault when module doesn't exist.
127
128 - Add missing function in the html documentation: kmod_get_dirname().
129
130 - Fix modprobe incorrectly handling number of arguments when prepending values from
131 MODPROBE_OPTIONS environment variable.
132
133 - Fix modprobe -r --remove-dependencies and since "dependencies" was a
134 misnomer, add the preferred argument option: "--remove-holders". This
135 is the same name used by the kernel. It allows users to also remove
136 other modules holding the one that is being removed.
137
138 - Fix off-by-one in max module name length in depmod.
139
140 - Infra/internal
141 - Start some changes in the out-of-tree test modules in kmod so they are useful
142 for being really inserted in the kernel rather than relying on kmod's mock
143 interface. This helps manual testing and may be used to exercise to test
144 changes in the kernel.
145
146 kmod 29
147 =======
148
149 - Improvements
150 - Add support to use /usr/local as a place for configuration files. This makes it easier
151 to install locally without overriding distro files.
152
153 - Bug fixes
154 - Fix `modinfo -F` when module is builtin: when we asked by a specific field from modinfo,
155 it was not working correctly if the module was builtin
156
157 - Documentation fixes on precedence order of /etc and /run: the correct order is
158 /etc/modprobe.d, /run/modprobe.d, /lib/modprobe.d
159
160 - Fix the priority order that we use for searching configuration files. The
161 correct one is /etc, /run, /usr/local/lib, /lib, for both modprobe.d
162 and depmo.d
163
164 - Fix kernel command line parsing when there are quotes present. Grub
165 mangles the command line and changes it from 'module.option="val with
166 spaces"' to '"module.option=val with spaces"'. Although this is weird
167 behavior and grub could have been fixed, the kernel understands it
168 correctly for builtin modules. So change libkmod to also parse it
169 correctly. This also brings another hidden behavior from the kernel:
170 newline in the kernel command line is also allowed and can be used to
171 separate options.
172
173 - Fix a memory leak, overflow and double free on error path
174
175 - Fix documentation for return value from kmod_module_get_info(): we
176 return the number of entries we added to the list
177
178 - Fix output of modules.builtin.alias.bin index: we were writing an empty file due to
179 the misuse of kmod_module_get_info()
180
181 - Infra/internal
182 - Retire integration with semaphoreci
183
184 - Declare the github mirror also as an official upstream source: now besides accepting
185 patches via mailing list, PRs on github are also acceptable
186
187 - Misc improvements to testsuite, so we can use it reliably regardless
188 of the configuration used: now tests will skip if we don't have the
189 build dependencies)
190
191 kmod 28
192 =======
193
194 - Improvements
195 - Add Zstandard to the supported compression formats using libzstd
196 (pass --with-zstd to configure)
197
198 - Bug fixes
199 - Ignore ill-formed kernel command line, e.g. with "ivrs_acpihid[00:14.5]=AMD0020:0"
200 option in it
201 - Fix some memory leaks
202 - Fix 0-length builtin.alias.bin: it needs at least the index header
203
204 kmod 27
205 =======
206
207 - Improvements
208 - Link to libcrypto rather than requiring openssl
209
210 - Print a better error message when kernel doesn't support module unload
211
212 - Use PKCS#7 instead of CMS for parsing module signature to be
213 compatible with LibreSSL and OpenSSL < 1.1.0
214
215 - Teach modinfo to parse modules.builtin.modinfo. When using Linux kernel
216 >= v5.2-rc1 it's possible to get module information from this new file. Now
217 modinfo is able to show it instead of an error message that the module is
218 built-in:
219
220 Before:
221 $ modinfo ext4
222 modinfo: ERROR: Module ext4 not found.
223
224 After:
225 $ modinfo ext4
226 name: ext4
227 filename: (builtin)
228 softdep: pre: crc32c
229 license: GPL
230 description: Fourth Extended Filesystem
231 author: Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others
232 alias: fs-ext4
233 alias: ext3
234 alias: fs-ext3
235 alias: ext2
236 alias: fs-ext2
237
238 - Bug fixes
239 - Do not link python bindings with libpython to be compatible with
240 python3.8
241
242 - Fix module removal with `modprobe -r` when a dependency is built-in.
243 Now it properly ignores them and proceed with removal of other
244 dependencies
245
246 - Fix propagation of return code from install/remove commands to the
247 the probe function. The return values of kmod_module_probe_insert_module()
248 have very specific meanings, do not confuse the caller by return codes
249 from system()
250
251 - Fix softdep config parsing leading to buffer overflow
252
253 kmod 26
254 =======
255
256 - Improvements
257 - Add more error-checking in library functions and remove warnings on newer
258 toolchains
259
260 - Depmod now handles parallel invoctions better by protecting the temporary
261 files being used
262
263 - Improvements to testsuite and added tests to check the our behavior
264 regardless of the features enabled in the kernel, or libraries we link to
265
266 - Teach the --show-exports option to modprobe. This works similarly to
267 --show-modversions, but it reports the exported symbols from that module.
268 Under the hood this reads the .symtab and .strtab section rather than
269 __versions so it shows useful data even if kernel is configured without
270 modversions (CONFIG_MODVERSIONS)
271
272 - Teach pkcs7 parsing to modinfo by using openssl. This allows modinfo to
273 correctly parse the signature appended to a module by the kernel build
274 system when configured with CONFIG_MODULE_SIG_ALL, or when externally
275 signed by the distro. Traditionally modules were signed and a struct
276 was appended together with the signature to the end of the module.
277 This has changed on the kernel for pkcs#7 and now the structure isn't
278 filled out with useful information. So we have to parse the signature
279 block in order to return useful data to the user.
280
281 If kmod is linked with openssl we parse the signature and return the
282 fields as we do for other signatures. An example of the relevant part
283 on the output of modinfo is below:
284
285 Before:
286 sig_id: PKCS#7
287 signer:
288 sig_key:
289 sig_hashalgo: md4
290 After:
291 sig_id: PKCS#7
292 signer: Fedora kernel signing key
293 sig_key: 51:C4:0C:6D:7E:A5:6C:D8:8F:B4:3A:DF:91:78:4F:18:BC:D5:E4:C5
294 sig_hashalgo: sha256
295
296 If kmod is not linked to openssl we just start printing "unknonwn" in the
297 sig_hashalgo field rather than the bogus value.
298
299
300 kmod 25
301 =======
302
303 - Improvements
304 - Add module signature to modinfo output
305
306 - Add support for external directories in depmod: now there's a new
307 "external" keyword parsed by depmod when calculating the dependencies.
308 It allows to add modules to other directories which are not relative
309 to where the modules are commonly installed. This results in
310 modules.dep and friends now understanding absolute paths rather than
311 relative paths only. For more information see depmod.d(1).
312
313 - Add support for CONFIG_MODULE_REL_CRCS
314
315 - Add missing documentation references in man pages
316
317 - Handle the case in which module has a .TOC symbol already while
318 calculating dependencies
319
320 - Improve testsuite and allow to use mkosi to run testsuite in different
321 distros
322
323 kmod 24
324 =======
325
326 - Improvements:
327 - Add more information on dependency loop
328
329 - Sanitize use of strcpy and allow to grow from small strings on stack
330 (common case) to bigger strings on heap when needed
331
332 - Bug fixes
333 - Fix wrong dependency loops being reported by depmod
334
335 - Fix crashes when reporting dependency loops
336
337 - Fix parsing kernel command line containing quotes
338
339 - Fix leaks on error paths
340
341 kmod 23
342 =======
343
344 - Improvements:
345 - Don't add comment to modules.devname if it would otherwise be empty
346 to play nice with tools detecting empty files
347
348 - Allow building with BSD sed, that doesn't have -E flag
349
350 - Ignore .TOC. symbols in depmod parsing as it's for PPC64 the
351 equivalent of _GLOBAL_OFFSET_TABLE_
352
353 - Teach modinfo about PKCS#7 module signatures: it doesn't add any
354 other info besides telling the user the module is signed since
355 kernel doesn't add other info on the module section
356
357 - Bug fixes
358
359 - Fix -s and -p compat options to insmod triggering force flag
360
361 - Fix long lines from /proc/modules not being handled correctly by
362 kmod_module_new_from_loaded() and kmod_module_get_size() and several
363 other library functions that use them
364
365 - Fix crash on modinfo while checking for available signature of
366 unknown type
367
368 - Fix documentation generation with gtk-doc
369
370 kmod 22
371 =======
372
373 - Tools:
374 - Change defaul log level for tools to WARNING rather than ERROR and update
375 some log levels for current messages
376
377 - depmod doesn't fallback to uname if a bad version is passed in the command
378 line anymore. We just exit with an error.
379
380 - insmod was taught the -f flag, just like in modprobe. It was previously
381 silently ignoring it.
382
383 - libkmod
384 - New kmod_get_dirname() API to get the module directory set in the
385 context
386
387 - Bug fixes:
388 - Fix return code in error path of kmod_module_insert_module(). We were
389 previously returning ENOSYS rather than ENOENT.
390
391 kmod 21
392 =======
393
394 - New features:
395 - kmod tool started to learn the "insert" and "remove" commands that
396 are the simplified versions of the older modprobe tool. These
397 commands are still work in progress so they are hidden behind a
398 --enable-experimental flag during build. It should not be enabled
399 unless you know what you're doing.
400 - kmod tool now prints the relevant configuration options it was built
401 with when the "--version" argument is passed. This helps to mitigate
402 problems for example when the user is trying to load a compressed
403 module but kmod was built without support for the compression method.
404
405 - Improvements to testsuite:
406 - Cache built modules so it is easier to run "make check" on build
407 servers by distro maintainers. If kmod is configured with
408 --disable-test-modules the modules from cache will be used by
409 "make check". No changes to the tests are needed and all of them
410 can run fine.
411
412 kmod 20
413 =======
414 - Bug fixes:
415 - Handle bogus values from ELF, making sure they don't overflow while
416 parsing the file
417 - Fix leak in depmod when -b flag is passed multiple times
418 - Multiple minor fixes from static analysis by coverity and
419 clang-analyze
420 - Fix race between loading modules and checking if it's loaded in the
421 kernel
422
423 - New features:
424 - There's a change in behavior regarding builtin modules: we now only
425 consider as builtin those that are present in modules.builtin index.
426 Previously we were also checking the presence of
427 /sys/module/<module-name>, but this is racy and only modules that
428 contain parameters are the ones creating a directory in sysfs.
429
430 Now some commands will start to fail, e.g. "modprobe vt". Since vt
431 can't be compiled as a module it's not present in modules.builtin
432 index. Previously we would report at as builtin, but now we fail
433 because we couldn't find the module.
434
435 - Improvements:
436 - Integration of gcov into the build. Currently libkmod is at ~70%
437 covered and tools at ~50% by tests in the testsuite. Utility
438 functions and structures in shared have more than 90% of coverage.
439 - Upload build to coverity
440
441 - Improvements to testsuite:
442 - Fix parsing return codes of init_module() calls
443 - Add tests for utility functions in shared/
444 - Add tests for kmod_module_remove_module()
445 - Add playground, in which our own modules are compiled
446 - Port all tests to use modules from module-playground instead of
447 copying prebuilt modules to the repository
448 - Properly handle binaries that exit with no output
449 - Besides comparing the output of commands, allow to copy to
450 stdout/stderr
451
452 kmod 19
453 =======
454
455 - Bug fixes:
456 - Fix missing CLOEXEC in library
457 - Fix error message while opening kmod's index
458
459 - New features:
460 - Add kmod(8) man page
461 - Allow to build with libc's without be32toh()
462 - Move code around separating common code and data structures into a
463 shared directory. This allows to share more code between library and
464 tools, making the binary size of tools smaller.
465 - Clarify tools vs library licenses
466 - static-nodes: when writing in tmpfiles format, indicate that
467 creation of static nodes should only happen at boot. This is used and
468 required by systemd-217+.
469
470 - Improvements to testsuite:
471 - Add tests for newly created shared/ code
472 - Improve how tests are declared so there's less boilerplate code for
473 each test.
474
475 kmod 18
476 =======
477
478 - Bug fixes:
479 - Fix leaks in error paths
480 - Fix use-after-free in hash implementation causing a wrong index to be
481 generated by depmod with out-of-tree modules
482
483 - New features:
484 - Calling depmod with modules creating a dependency loop will now make
485 depmod return an error and not update the indexes. This is to protect
486 the current index not being overridden by another index that may cause
487 a boot failure, depending on the buggy module. It's a necessary
488 change in behavior regarding previous kmod releases and
489 module-init-tools. The error message was also improved to output
490 the modules that caused the dependency cycle.
491
492 - Improvements to testsuite:
493 - Fix and improve expected-fail test
494 - Add tests for hashmap implementation
495
496 kmod 17
497 =======
498
499 - Bug fixes:
500 - Fix matching a "." in kernel cmdline, making garbage in the command
501 line be parsed as kmod options
502 - Fix man pages to clarify we don't fallback to parsing modules.dep
503 but instead we depend on modules.dep.bin (generated by depmod) to
504 be present
505 - Fix ELF parsing on 32 bit systems assigning the wrong class.
506 - Fix partial matches of search directives in depmod. Previously having
507 a line in depmod.conf such as "search foo foobar built-in" would cause
508 unpretictable results because foo is a partial match of foobar as well.
509 - Fix unaligned access in modinfo when getting the signature from a
510 module
511 - Make sure softdeps are treated as optional dependencies
512
513 - New features:
514 - Accept special files given to "-C" switch in modprobe. This way it's
515 possible to skip system configuration with "modprobe -C /dev/null"
516 - Do not require xsltproc on released tarballs
517 - Don't use Werror anymore
518 - Add experimental python bindings, merged from python-kmod repository
519 (https://github.com/agrover/python-kmod)
520 - Parse softdeps exported by the kernel as
521 /lib/modules/`uname -r`/modules.softdep
522
523 - Improvements to testsuite:
524 - Check the list of loaded modules after a test
525
526 kmod 16
527 =======
528
529 - Bug fixes:
530 - Fix usage of readdir_r()
531 - Add some missing checks for memory allocation errors
532
533 - New features:
534 - Remove option from libkmod to allow waiting on module removal if
535 the module is being used. It's dangerous since it can block the
536 caller indefinitely.
537 - Improve compatibility with musl libc
538 - Add fallback implementation for compilers without _Static_assert(),
539 e.g. gcc < 4.6
540 - Minor optimizations to the hash table
541 - Make depmod warn if a module has incorrect devname specification
542 - Use cleanup attribute
543
544 kmod 15
545 =======
546
547 - Bug fixes:
548 - kmod static-nodes doesn't fail if modules.devname isn't available
549 - Fix getting boolean parameter from kernel cmdline in case the value
550 is omitted
551 - Fix some mkdir_p() corner cases (used in testsuite and static-nodes)
552
553 - New features:
554 - kmod static-nodes creates parent directories if given a -o option
555 - kmod binary statically links to libkmod - if distro is only interested
556 in the kmod tool (for example in an initrd) it can refrain from
557 installing the library
558 - Add shell completion for kmod tool
559
560 kmod 14
561 =======
562
563 - Bug fixes:
564 - Fix some format strings
565 - Protect against NULL being passed around to index
566 - Avoid calling syscall() with -1 when finit_module() is not available,
567 since this doesn't always work
568 - Fix not being able to remove alias due to checking the module's
569 refcount
570 - Minor fixes and refactors
571
572 - New features:
573 - Improve libkmod documentation, particularly on how flags are dealt
574 with.
575 - Remove ability to build a static libkmod
576 - Add static-nodes command to kmod that parses modules.devname
577 generating output in useful formats
578
579 kmod 13
580 =======
581
582 - Bug fixes:
583 - Add the long option --symbol-prefix option to depmod (it was absent)
584 and fix its behavior
585 - Don't abort if there's a bogus line in configuration file like "alias
586 psmouse off". Some distros are carrying this since the days of
587 modutils
588
589 - New features:
590 - Add support for finit_module(2). If the module is load straight from
591 the disk and without compression we use finit_module() syscall when
592 available, falling back to init_module() otherwise
593 - kmod_module_get_info() also returns the signature if the module is
594 signed and modinfo uses it
595 - Use secure_getenv if available
596 - rmmod understands builtin modules, just like modprobe does
597 - Improve compatibility with musl-libc
598 - Test cases exit with success when receiving a signal if they are
599 xfail tests
600
601 kmod 12
602 =======
603
604 - Bug fixes:
605 - Fix removing vermagic from module when told to force load a module
606 - Fix removing __versions section when told to force load a module: we
607 need to mangle the section header, not the section.
608 - modinfo no longer fails while loading a module from file when path
609 contains ".ko" substring
610
611 kmod 11
612 =======
613
614 - Improvements to testsuite:
615 - Fix testsuite defining symbols twice on 32 bit systems
616 - Allow to check generated files against correct ones
617
618 - New features:
619 - libkmod now keeps a file opened after the first call to
620 kmod_module_get_{info,versions,symbols,dependency_symbols}. This
621 reduces significantly the amount of time depmod tool takes to
622 execute. Particularly if compressed modules are used.
623 - Remove --with-rootprefix from build system. It was not a great idea
624 after all and should not be use since it causes more harm then
625 benefits.
626 - Hide --wait option on rmmod. This feature is being targeted for
627 removal from kernel. rmmod still accepts this option, but it's hidden
628 now: man page and usage() say nothing about it and if it's used,
629 user will get a 10s sleep. This way we can check and help if anyone
630 is using this feature.
631 - Refactor message logging on all tools, giving proper prefix, routing
632 everything to syslog when asked for, etc.
633
634 - Bug fixes:
635 - Fix parsing of modules.order when using compressed modules
636 - Usage messages go to stdout instead of stderr
637 - Fix memory leak in hash implementation
638
639 kmod 10
640 =======
641
642 - New features:
643 - Read coresize from /sys if supported
644
645 - Add flag to kmod_module_probe_insert() to apply blacklisting during
646 probe only if mod is an alias. Now modprobe uses this flag by default.
647 This is needed to fix a change in behavior regarding module-init-tools
648 and ultimately makes us loading a blacklisted module.
649
650 - Better formatting in man pages
651
652 - Add option to disable building man pages at build time
653
654 - Fixes in the testsuite and refactoring of LDPRELOAD'ed libraries
655
656 - Re-licensing testsuite as LGPL
657
658 kmod 9
659 ======
660
661 - Improvements to the testsuite:
662 - Check for correct handling of softdep loops
663 - Check for correct handling of install command loops
664
665 - Bug fixes:
666 - Fix build with compilers that don't support --gc-sections
667 - Handle errors when dealing with gzipped modules
668 - depmod now handles errors while writing indices, so it doesn't end up
669 with a corrupted index without telling the user
670
671 kmod 8
672 ======
673
674 - No new features, small bug fixes only.
675 - Fix a bug in "modprobe -c" output: be compatible with
676 module-init-tools
677
678 - Give a useful error message when init_module fails due to bad
679 parameter or unknown symbols
680
681 - Fix doc generation
682
683 kmod 7
684 ======
685
686 - Re-order dirs for configuration files to match the change in systemd and
687 udev: now the priority is:
688 1. /etc/modprobe.d
689 2. /run/modprobe.d
690 3. /lib/modprobe.d
691
692 - Fix setting CFLAGS/LDFLAGS in build system. This prevented us from not
693 allowing the user to set his preferences.
694
695 - Bug fixes:
696 - Return same error codes of module-init-tools when removing modules
697 with modprobe
698 - Fix builtin output in "--show-depends" when target kernel is not the
699 same of the running kernel
700 - 'modprobe -r' always look at all command line arguments
701 - Fix '-q' usage in modprobe
702
703 kmod 6
704 ======
705
706 - New API in libkmod:
707 - kmod_module_apply_filter(): a generic function to apply filters in a
708 list of modules. This deprecates the use of
709 kmod_module_get_filtered_blacklist()
710
711 - More tests in testsuite
712
713 - Add compatibility with uClibc again
714
715 - Lookup modules.builtin.bin to decide if a module is built in kernel
716
717 - Downgrade some log messages so we don't annoy people with useless messages
718
719 - Bug fixes:
720 - Flag --ignore-loaded was not being properly handled
721 - Infinite loop with softdeps
722 - Infinite loop with dumb user configuration with install commands
723 - Fix leak in index when there's a partial match
724
725 - Move repository and tarballs to kernel.org
726
727 kmod 5
728 ======
729
730 - Break libkmod's API to insert a module like modprobe does. It now accepts
731 extra an extra argument to print its action and acceptable flags were
732 sanitized.
733
734 - Share more code between modprobe and libkmod: using the new version of
735 kmod_module_probe_insert_module() it's possible to share a great amount of
736 code between modprobe and libkmod
737
738 - modprobe no longer works with paths: it only accepts module names and/or
739 aliases now.
740
741 - testsuite was added to repository, allowing automated tests to be run and
742 easing the way bugs are reproduced.
743
744 - modprobe: when dumping configuration ('-c' option) separate config
745 and indexes by adding a commented line between them.
746
747 - Fix bugs wrt normalizing aliases and module names
748
749 - Fix bug wrt inserting an alias that resolves to multiple modules: we should
750 not stop on the first error, but rather continue to try loading other
751 modules.
752
753 - Fix unaligned memory access in hash function, causing depmod to output wrong
754 information in ARMv5
755
756 - Fix man page build and install: now they are only installed if tools are
757 enabled
758
759 kmod 4
760 ======
761
762 - New APIs in libkmod to:
763 - Get configuration lists: blacklists, install commands, remove
764 commands, aliases, options and softdeps
765 - Dump indexes
766
767 - Several bugs fixed in libkmod, modprobe, depmod and modinfo
768
769 - API documentation: if configure with run with --enable-gtk-doc, the API doc
770 will be generated by make. Gtk-doc is required for that.
771
772 - Man pages are built, which replace man pages from module-init-tools
773
774 - 'include' and 'config' options in *.conf files were deprecated
775
776 - configure is not run by autogen.sh. Instead, a common set of options is
777 printed. If you are hacking on kmod, consider using bootstrap-configure
778 script.
779
780 - 'modprobe -c' works as expected now. As opposed to module-init-tools, it
781 dumps the parsed configuration, not only the file contents.
782
783 kmod 3
784 ======
785
786 - New APIs in libkmod to:
787 - Get symbols from module, parsing the ELF section
788 - Get dependency symbols
789 - Check if resources are still valid or if libkmod must be reloaded
790 - Insert module like modprobe, checking (soft-)dependencies, commands,
791 blacklist. It can run commands by itself and to call a callback
792 function.
793
794 - Support to load modules compressed with xz
795
796 - Tools are now bundled together in a single tool called kmod. It can be
797 called using symlinks with the same names as tools from module-init-tools.
798 E.g: /usr/bin/lsmod -> /usr/bin/kmod. With this we are aiming to complete a
799 1:1 replacement of module-init-tools.
800
801 - The only missing tool, depmod, was added to kmod together with the necessary
802 APIs in libkmod.
803
804 - If a program using libkmod runs for a long time, as for example udev, it must
805 check if it doesn't have to re-load libkmod. A new helper function was added
806 in libkmod to check if context is still valid and udev is already using it.
807
808 - An 'unaligned access' bug was fixed. So those architecture that does not
809 handle unaligned access can use kmod, too.
810
811 kmod 2
812 ======
813
814 Some bugs fixed: the worst of them was with an infinite loop when an alias
815 matched more than one module.
816
817 - New APIs in libkmod to:
818 - Get soft dependencies
819 - Get info from module files parsing ELF
820 - Get modversions from files parsing ELF
821
822 - Support to load gzipped kernel modules: kmod can be compiled with support to
823 gzipped modules by giving the --enable-zlib flag
824
825 - Support to forcefully load modules, both vermagic and modversion
826
827 - Support to force and nowait removal flags
828
829 - Configuration files are parsed in the same order as modprobe: files are
830 sorted alphabetically (independently of their dir) and files with the same
831 name obey a precedence order
832
833 - New tool: kmod-modinfo
834
835 - kmod-modprobe gained several features to be a 1:1 replacement for modprobe.
836 The only missing things are the options '--showconfig' and '-t / -l'. These
837 last ones have been deprecated long ago and they will be removed from
838 modprobe. A lot of effort has been put on kmod-modprobe to ensure it
839 maintains compabitility with modprobe.
840
841 - linux-modules@vger.kernel.org became the official mailing list for kmod
842
843 kmod 1
844 ======
845
846 First version of kmod and its library, libkmod.
847
848 In the libkmod it's currently possible to:
849 - List modules currently loaded
850 - Get information about loaded modules such as initstate, refcount,
851 holders, sections, address and size
852 - Lookup modules by alias, module name or path
853 - Insert modules: options from configuration and extra options can be
854 passed, but flags are not implemented, yet
855 - Remove modules
856 - Filter list of modules using blacklist
857 - For each module, get the its list of options and install/remove
858 commands
859 - Indexes can be loaded on startup to speedup lookups later
860
861 Tools provided with the same set of options as in module-init-tools:
862 - kmod-lsmod
863 - kmod-insmod
864 - kmod-rmmod
865 - kmod-modprobe, with some functionality still missing (use of softdep,
866 dump configuration, show modversions)