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