]>
Commit | Line | Data |
---|---|---|
bf89f76e | 1 | Features: |
5e690c5c | 2 | ========= |
bf89f76e LDM |
3 | |
4 | * config: configs that do not need to be matched by fnmatch() could be using a | |
5 | vector instead of a list. This way we could search in it by calling | |
6 | bsearch(). | |
7 | ||
c3325cfc LDM |
8 | * index: drop the "open(), seek(), read()" implementation and use another one |
9 | with mmap(). When lookup() is called and the file is not mmaped, mmap it. | |
10 | ||
674f8590 GSB |
11 | * review API, maybe unify all of these setters: |
12 | - kmod_module_version_get_symbol() | |
13 | - kmod_module_version_get_crc() | |
14 | - kmod_module_symbol_get_symbol() | |
15 | - kmod_module_symbol_get_crc() | |
16 | - kmod_module_dependency_symbol_get_symbol() | |
17 | - kmod_module_dependency_symbol_get_crc() | |
18 | - kmod_module_versions_free_list() | |
19 | - kmod_module_symbols_free_list() | |
20 | - kmod_module_dependency_symbols_free_list() | |
21 | ||
f841e63d GSB |
22 | * provide modules.archive, a cache file with all modules compressed |
23 | and a fast access. It's like a tar.gz, but with each entry | |
24 | compressed as opposed to the whole tar compressed, easy to pick | |
25 | individual entries, that is, more like .gz.tar. As zlib compression | |
26 | does not store the uncompressed file size, this could provide | |
27 | it. The file format should be something like: | |
28 | MAGIC-ID | |
29 | DIRECTORY-ENTRY-SIZE | |
30 | DIRECTORY (hash-like format, points to file offset and size) | |
31 | ENTRIES (each is a compressed module) | |
32 | Helper binary to: | |
33 | kmod-archive list | |
34 | kmod-archive add path.ko | |
35 | kmod-archive rm path.ko | |
36 | kmod-archive get path.ko | |
37 | kmod-archive exists path.ko | |
38 | ||
a41b39fb LDM |
39 | * Stop using system() inside the library and use fork + exec instead |
40 | ||
9207df75 | 41 | * testsuite: |
9207df75 LDM |
42 | - when fake init_module() succeeds, create an entry in /sys/module |
43 | - when fake delete_module() succeeds, remove its entry from /sys/module | |
44 | - add test for dependency loop _with install commands_ relying on module | |
45 | already been loaded in order to succeed. E.g.: | |
46 | install vboxdrv modprobe -i vboxdrv; modprobe -i vboxnetflt | |
47 | - check if vboxdrv bug is the same of alsa package in Debian | |
48 | ||
49 | * add quirk so we don't calculate dependencies for modules already loaded - | |
50 | that shall fix the bug of vboxdrv and alsa above | |
51 | ||
113c66a5 | 52 | Known Bugs: |
5e690c5c LDM |
53 | =========== |
54 | ||
5e690c5c | 55 | |
3af535c9 | 56 | Things to be added/removed in kernel (check what is really needed): |
5e690c5c LDM |
57 | =================================================================== |
58 | ||
59 | * list of currently loaded modules | |
758428a7 LDM |
60 | - readdir() in /sys/modules: dirs without a 'initstate' file mean the |
61 | modules is builtin. | |
5e690c5c LDM |
62 | |
63 | * module's size should be available under /sys | |
758428a7 | 64 | - DONE in 3.3: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=cca3e707301862ca9b9327e6a732463982f8cd1b |
d68ea2ae | 65 | |
5e690c5c | 66 | * kill /proc/modules ? |
758428a7 | 67 | - Unlikely, given other tools might depend on it |
5a96c5f1 LDM |
68 | |
69 | Things that are different from module-init-tools on purpose (!TODO) | |
70 | =================================================================== | |
71 | ||
72 | modprobe | |
73 | -------- | |
74 | ||
75 | * 'modprobe -l' was marked as deprecated and does not exist anymore | |
76 | ||
77 | * 'modprobe -t' is gone, together with 'modprobe -l' | |
78 | ||
79 | * there's and additional '--remove-dependencies' flags to kmod-modprobe so we | |
80 | can remove modules depending on that one | |
81 | ||
82 | * kmod-modprobe doesn't parse configuration files whose name don't end on | |
83 | '.alias' or '.conf'. modprobe used to warn about these files. | |
84 | ||
0ad5dd08 LDM |
85 | * kmod-modprobe doesn't parse 'config' and 'include' commands in configuration |
86 | files. | |
87 | ||
92122614 LDM |
88 | * we don't use <module-dir>/modules.builtin{,.bin} indexes. Instead we rely on |
89 | module appearing on /sys/modules/* without a initstate file to determine if | |
90 | it is builtin. | |
91 | ||
f564394f LDM |
92 | * modprobe from m-i-t does not honour softdeps for install commands. E.g.: |
93 | config: | |
94 | ||
95 | install bli "echo bli" | |
96 | install bla "echo bla" | |
97 | softdep bla pre: bli | |
98 | ||
99 | With m-i-t, the output of 'modprobe --show-depends bla' will be: | |
100 | install "echo bla" | |
101 | ||
102 | While with kmod: | |
103 | install "echo bli" | |
104 | install "echo bla" | |
105 | ||
bc43496a LDM |
106 | * kmod doesn't dump the configuration as is in the config files. Instead it |
107 | dumps the configuration as it was parsed. Therefore, comments and file names | |
108 | are not dumped, but on the good side we know what the exact configuration | |
109 | kmod is using. We did this because if we only want to know the entire content | |
110 | of configuration files, it's enough to use find(1) in modprobe.d directories | |
111 | ||
5a96c5f1 LDM |
112 | depmod |
113 | ------ | |
114 | ||
115 | * there's no 'depmod -m' option: legacy modules.*map files are gone | |
e85b6731 LDM |
116 | |
117 | lsmod | |
118 | ----- | |
119 | ||
120 | * information is parsed from /sys instead of /proc/modules |