| kmod 22 |
| ======= |
| |
| - Tools: |
| - Change defaul log level for tools to WARNING rather than ERROR and update |
| some log levels for current messages |
| |
| - depmod doesn't fallback to uname if a bad version is passed in the command |
| line anymore. We just exit with an error. |
| |
| - insmod was taught the -f flag, just like in modprobe. It was previously |
| silently ignoring it. |
| |
| - libkmod |
| - New kmod_get_dirname() API to get the module directory set in the |
| context |
| |
| - Bug fixes: |
| - Fix return code in error path of kmod_module_insert_module(). We were |
| previously returning ENOSYS rather than ENOENT. |
| |
| kmod 21 |
| ======= |
| |
| - New features: |
| - kmod tool started to learn the "insert" and "remove" commands that |
| are the simplified versions of the older modprobe tool. These |
| commands are still work in progress so they are hidden behind a |
| --enable-experimental flag during build. It should not be enabled |
| unless you know what you're doing. |
| - kmod tool now prints the relevant configuration options it was built |
| with when the "--version" argument is passed. This helps to mitigate |
| problems for example when the user is trying to load a compressed |
| module but kmod was built without support for the compression method. |
| |
| - Improvements to testsuite: |
| - Cache built modules so it is easier to run "make check" on build |
| servers by distro maintainers. If kmod is configured with |
| --disable-test-modules the modules from cache will be used by |
| "make check". No changes to the tests are needed and all of them |
| can run fine. |
| |
| kmod 20 |
| ======= |
| - Bug fixes: |
| - Handle bogus values from ELF, making sure they don't overflow while |
| parsing the file |
| - Fix leak in depmod when -b flag is passed multiple times |
| - Multiple minor fixes from static analysis by coverity and |
| clang-analyze |
| - Fix race between loading modules and checking if it's loaded in the |
| kernel |
| |
| - New features: |
| - There's a change in behavior regarding builtin modules: we now only |
| consider as builtin those that are present in modules.builtin index. |
| Previously we were also checking the presence of |
| /sys/module/<module-name>, but this is racy and only modules that |
| contain parameters are the ones creating a directory in sysfs. |
| |
| Now some commands will start to fail, e.g. "modprobe vt". Since vt |
| can't be compiled as a module it's not present in modules.builtin |
| index. Previously we would report at as builtin, but now we fail |
| because we couldn't find the module. |
| |
| - Improvements: |
| - Integration of gcov into the build. Currently libkmod is at ~70% |
| covered and tools at ~50% by tests in the testsuite. Utility |
| functions and structures in shared have more than 90% of coverage. |
| - Upload build to coverity |
| |
| - Improvements to testsuite: |
| - Fix parsing return codes of init_module() calls |
| - Add tests for utility functions in shared/ |
| - Add tests for kmod_module_remove_module() |
| - Add playground, in which our own modules are compiled |
| - Port all tests to use modules from module-playground instead of |
| copying prebuilt modules to the repository |
| - Properly handle binaries that exit with no output |
| - Besides comparing the output of commands, allow to copy to |
| stdout/stderr |
| |
| kmod 19 |
| ======= |
| |
| - Bug fixes: |
| - Fix missing CLOEXEC in library |
| - Fix error message while opening kmod's index |
| |
| - New features: |
| - Add kmod(8) man page |
| - Allow to build with libc's without be32toh() |
| - Move code around separating common code and data structures into a |
| shared directory. This allows to share more code between library and |
| tools, making the binary size of tools smaller. |
| - Clarify tools vs library licenses |
| - static-nodes: when writing in tmpfiles format, indicate that |
| creation of static nodes should only happen at boot. This is used and |
| required by systemd-217+. |
| |
| - Improvements to testsuite: |
| - Add tests for newly created shared/ code |
| - Improve how tests are declared so there's less boilerplate code for |
| each test. |
| |
| kmod 18 |
| ======= |
| |
| - Bug fixes: |
| - Fix leaks in error paths |
| - Fix use-after-free in hash implementation causing a wrong index to be |
| generated by depmod with out-of-tree modules |
| |
| - New features: |
| - Calling depmod with modules creating a dependency loop will now make |
| depmod return an error and not update the indexes. This is to protect |
| the current index not being overridden by another index that may cause |
| a boot failure, depending on the buggy module. It's a necessary |
| change in behavior regarding previous kmod releases and |
| module-init-tools. The error message was also improved to output |
| the modules that caused the dependency cycle. |
| |
| - Improvements to testsuite: |
| - Fix and improve expected-fail test |
| - Add tests for hashmap implementation |
| |
| kmod 17 |
| ======= |
| |
| - Bug fixes: |
| - Fix matching a "." in kernel cmdline, making garbage in the command |
| line be parsed as kmod options |
| - Fix man pages to clarify we don't fallback to parsing modules.dep |
| but instead we depend on modules.dep.bin (generated by depmod) to |
| be present |
| - Fix ELF parsing on 32 bit systems assigning the wrong class. |
| - Fix partial matches of search directives in depmod. Previously having |
| a line in depmod.conf such as "search foo foobar built-in" would cause |
| unpretictable results because foo is a partial match of foobar as well. |
| - Fix unaligned access in modinfo when getting the signature from a |
| module |
| - Make sure softdeps are treated as optional dependencies |
| |
| - New features: |
| - Accept special files given to "-C" switch in modprobe. This way it's |
| possible to skip system configuration with "modprobe -C /dev/null" |
| - Do not require xsltproc on released tarballs |
| - Don't use Werror anymore |
| - Add experimental python bindings, merged from python-kmod repository |
| (https://github.com/agrover/python-kmod) |
| - Parse softdeps exported by the kernel as |
| /lib/modules/`uname -r`/modules.softdep |
| |
| - Improvements to testsuite: |
| - Check the list of loaded modules after a test |
| |
| kmod 16 |
| ======= |
| |
| - Bug fixes: |
| - Fix usage of readdir_r() |
| - Add some missing checks for memory allocation errors |
| |
| - New features: |
| - Remove option from libkmod to allow waiting on module removal if |
| the module is being used. It's dangerous since it can block the |
| caller indefinitely. |
| - Improve compatibility with musl libc |
| - Add fallback implementation for compilers without _Static_assert(), |
| e.g. gcc < 4.6 |
| - Minor optimizations to the hash table |
| - Make depmod warn if a module has incorrect devname specification |
| - Use cleanup attribute |
| |
| kmod 15 |
| ======= |
| |
| - Bug fixes: |
| - kmod static-nodes doesn't fail if modules.devname isn't available |
| - Fix getting boolean parameter from kernel cmdline in case the value |
| is omitted |
| - Fix some mkdir_p() corner cases (used in testsuite and static-nodes) |
| |
| - New features: |
| - kmod static-nodes creates parent directories if given a -o option |
| - kmod binary statically links to libkmod - if distro is only interested |
| in the kmod tool (for example in an initrd) it can refrain from |
| installing the library |
| - Add shell completion for kmod tool |
| |
| kmod 14 |
| ======= |
| |
| - Bug fixes: |
| - Fix some format strings |
| - Protect against NULL being passed around to index |
| - Avoid calling syscall() with -1 when finit_module() is not available, |
| since this doesn't always work |
| - Fix not being able to remove alias due to checking the module's |
| refcount |
| - Minor fixes and refactors |
| |
| - New features: |
| - Improve libkmod documentation, particularly on how flags are dealt |
| with. |
| - Remove ability to build a static libkmod |
| - Add static-nodes command to kmod that parses modules.devname |
| generating output in useful formats |
| |
| kmod 13 |
| ======= |
| |
| - Bug fixes: |
| - Add the long option --symbol-prefix option to depmod (it was absent) |
| and fix its behavior |
| - Don't abort if there's a bogus line in configuration file like "alias |
| psmouse off". Some distros are carrying this since the days of |
| modutils |
| |
| - New features: |
| - Add support for finit_module(2). If the module is load straight from |
| the disk and without compression we use finit_module() syscall when |
| available, falling back to init_module() otherwise |
| - kmod_module_get_info() also returns the signature if the module is |
| signed and modinfo uses it |
| - Use secure_getenv if available |
| - rmmod understands builtin modules, just like modprobe does |
| - Improve compatibility with musl-libc |
| - Test cases exit with success when receiving a signal if they are |
| xfail tests |
| |
| kmod 12 |
| ======= |
| |
| - Bug fixes: |
| - Fix removing vermagic from module when told to force load a module |
| - Fix removing __versions section when told to force load a module: we |
| need to mangle the section header, not the section. |
| - modinfo no longer fails while loading a module from file when path |
| contains ".ko" substring |
| |
| kmod 11 |
| ======= |
| |
| - Improvements to testsuite: |
| - Fix testsuite defining symbols twice on 32 bit systems |
| - Allow to check generated files against correct ones |
| |
| - New features: |
| - libkmod now keeps a file opened after the first call to |
| kmod_module_get_{info,versions,symbols,dependency_symbols}. This |
| reduces signficantly the amount of time depmod tool takes to |
| execute. Particularly if compressed modules are used. |
| - Remove --with-rootprefix from build system. It was not a great idea |
| after all and should not be use since it causes more harm then |
| benefits. |
| - Hide --wait option on rmmod. This feature is being targeted for |
| removal from kernel. rmmod still accepts this option, but it's hidden |
| now: man page and usage() say nothing about it and if it's used, |
| user will get a 10s sleep. This way we can check and help if anyone |
| is using this feature. |
| - Refactor message logging on all tools, giving proper prefix, routing |
| everything to syslog when asked for, etc. |
| |
| - Bug fixes: |
| - Fix parsing of modules.order when using compressed modules |
| - Usage messages go to stdout instead of stderr |
| - Fix memory leak in hash implementation |
| |
| kmod 10 |
| ======= |
| |
| - New features: |
| - Read coresize from /sys if supported |
| |
| - Add flag to kmod_module_probe_insert() to apply blacklisting during |
| probe only if mod is an alias. Now modprobe uses this flag by default. |
| This is needed to fix a change in behavior regarding module-init-tools |
| and ultimately makes us loading a blacklisted module. |
| |
| - Better formatting in man pages |
| |
| - Add option to disable building man pages at build time |
| |
| - Fixes in the testsuite and refactoring of LDPRELOAD'ed libraries |
| |
| - Re-licensing testsuite as LGPL |
| |
| kmod 9 |
| ====== |
| |
| - Improvements to the testsuite: |
| - Check for correct handling of softdep loops |
| - Check for correct handling of install command loops |
| |
| - Bug fixes: |
| - Fix build with compilers that don't support --gc-sections |
| - Handle errors when dealing with gzipped modules |
| - depmod now handles errors while writing indices, so it doesn't end up |
| with a corrupted index without telling the user |
| |
| kmod 8 |
| ====== |
| |
| - No new features, small bug fixes only. |
| - Fix a bug in "modprobe -c" output: be compatible with |
| module-init-tools |
| |
| - Give a useful error message when init_module fails due to bad |
| parameter or unknown symbols |
| |
| - Fix doc generation |
| |
| kmod 7 |
| ====== |
| |
| - Re-order dirs for configuration files to match the change in systemd and |
| udev: now the priority is: |
| 1. /etc/modprobe.d |
| 2. /run/modprobe.d |
| 3. /lib/modprobe.d |
| |
| - Fix setting CFLAGS/LDFLAGS in build system. This prevented us from not |
| allowing the user to set his preferences. |
| |
| - Bug fixes: |
| - Return same error codes of module-init-tools when removing modules |
| with modprobe |
| - Fix builtin output in "--show-depends" when target kernel is not the |
| same of the running kernel |
| - 'modprobe -r' always look at all command line arguments |
| - Fix '-q' usage in modprobe |
| |
| kmod 6 |
| ====== |
| |
| - New API in libkmod: |
| - kmod_module_apply_filter(): a generic function to apply filters in a |
| list of modules. This deprecates the use of |
| kmod_module_get_filtered_blacklist() |
| |
| - More tests in testsuite |
| |
| - Add compatibility with uClibc again |
| |
| - Lookup modules.builtin.bin to decide if a module is built in kernel |
| |
| - Downgrade some log messages so we don't annoy people with useless messages |
| |
| - Bug fixes: |
| - Flag --ignore-loaded was not being properly handled |
| - Infinite loop with softdeps |
| - Infinite loop with dumb user configuration with install commands |
| - Fix leak in index when there's a partial match |
| |
| - Move repository and tarballs to kernel.org |
| |
| kmod 5 |
| ====== |
| |
| - Break libkmod's API to insert a module like modprobe does. It now accepts |
| extra an extra argument to print its action and acceptable flags were |
| sanitized. |
| |
| - Share more code between modprobe and libkmod: using the new version of |
| kmod_module_probe_insert_module() it's possible to share a great amount of |
| code between modprobe and libkmod |
| |
| - modprobe no longer works with paths: it only accepts module names and/or |
| aliases now. |
| |
| - testsuite was added to repository, allowing automated tests to be run and |
| easing the way bugs are reproduced. |
| |
| - modprobe: when dumping configuration ('-c' option) separate config |
| and indexes by adding a commented line between them. |
| |
| - Fix bugs wrt normalizing aliases and module names |
| |
| - Fix bug wrt inserting an alias that resolves to multiple modules: we should |
| not stop on the first error, but rather continue to try loading other |
| modules. |
| |
| - Fix unaligned memory access in hash function, causing depmod to output wrong |
| information in ARMv5 |
| |
| - Fix man page build and install: now they are only installed if tools are |
| enabled |
| |
| kmod 4 |
| ====== |
| |
| - New APIs in libkmod to: |
| - Get configuration lists: blacklists, install commands, remove |
| commands, aliases, options and softdeps |
| - Dump indexes |
| |
| - Several bugs fixed in libkmod, modprobe, depmod and modinfo |
| |
| - API documentation: if configure with run with --enable-gtk-doc, the API doc |
| will be generated by make. Gtk-doc is required for that. |
| |
| - Man pages are built, which replace man pages from module-init-tools |
| |
| - 'include' and 'config' options in *.conf files were deprecated |
| |
| - configure is not run by autogen.sh. Instead, a common set of options is |
| printed. If you are hacking on kmod, consider using bootstrap-configure |
| script. |
| |
| - 'modprobe -c' works as expected now. As opposed to module-init-tools, it |
| dumps the parsed configuration, not only the file contents. |
| |
| kmod 3 |
| ====== |
| |
| - New APIs in libkmod to: |
| - Get symbols from module, parsing the ELF section |
| - Get dependency symbols |
| - Check if resources are still valid or if libkmod must be reloaded |
| - Insert module like modprobe, checking (soft-)dependencies, commands, |
| blacklist. It can run commands by itself and to call a callback |
| function. |
| |
| - Support to load modules compressed with xz |
| |
| - Tools are now bundled together in a single tool called kmod. It can be |
| called using symlinks with the same names as tools from module-init-tools. |
| E.g: /usr/bin/lsmod -> /usr/bin/kmod. With this we are aiming to complete a |
| 1:1 replacement of module-init-tools. |
| |
| - The only missing tool, depmod, was added to kmod together with the necessary |
| APIs in libkmod. |
| |
| - If a program using libkmod runs for a long time, as for example udev, it must |
| check if it doesn't have to re-load libkmod. A new helper function was added |
| in libkmod to check if context is still valid and udev is already using it. |
| |
| - An 'unaligned access' bug was fixed. So those architecture that does not |
| handle unaligned access can use kmod, too. |
| |
| kmod 2 |
| ====== |
| |
| Some bugs fixed: the worst of them was with an infinite loop when an alias |
| matched more than one module. |
| |
| - New APIs in libkmod to: |
| - Get soft dependencies |
| - Get info from module files parsing ELF |
| - Get modversions from files parsing ELF |
| |
| - Support to load gzipped kernel modules: kmod can be compiled with support to |
| gzipped modules by giving the --enable-zlib flag |
| |
| - Support to forcefully load modules, both vermagic and modversion |
| |
| - Support to force and nowait removal flags |
| |
| - Configuration files are parsed in the same order as modprobe: files are |
| sorted alphabetically (independently of their dir) and files with the same |
| name obey a precedence order |
| |
| - New tool: kmod-modinfo |
| |
| - kmod-modprobe gained several features to be a 1:1 replacement for modprobe. |
| The only missing things are the options '--showconfig' and '-t / -l'. These |
| last ones have been deprecated long ago and they will be removed from |
| modprobe. A lot of effort has been put on kmod-modprobe to ensure it |
| maintains compabitility with modprobe. |
| |
| - linux-modules@vger.kernel.org became the official mailing list for kmod |
| |
| kmod 1 |
| ====== |
| |
| First version of kmod and its library, libkmod. |
| |
| In the libkmod it's currently possible to: |
| - List modules currently loaded |
| - Get information about loaded modules such as initstate, refcount, |
| holders, sections, address and size |
| - Lookup modules by alias, module name or path |
| - Insert modules: options from configuration and extra options can be |
| passed, but flags are not implemented, yet |
| - Remove modules |
| - Filter list of modules using blacklist |
| - For each module, get the its list of options and install/remove |
| commands |
| - Indexes can be loaded on startup to speedup lookups later |
| |
| Tools provided with the same set of options as in module-init-tools: |
| - kmod-lsmod |
| - kmod-insmod |
| - kmod-rmmod |
| - kmod-modprobe, with some functionality still missing (use of softdep, |
| dump configuration, show modversions) |