1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
|
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() says 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)
|