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