Lucas De Marchi | bf89f76 | 2011-12-01 18:23:47 -0200 | [diff] [blame] | 1 | Features: |
Lucas De Marchi | 5e690c5 | 2011-12-16 02:02:58 -0200 | [diff] [blame] | 2 | ========= |
Lucas De Marchi | bf89f76 | 2011-12-01 18:23:47 -0200 | [diff] [blame] | 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 | |
Lucas De Marchi | c3325cf | 2011-12-02 14:49:57 -0200 | [diff] [blame] | 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 | |
Gustavo Sverzut Barbieri | c3d0a5f | 2011-12-11 19:36:18 -0200 | [diff] [blame] | 11 | * create test-mock library to be LD_PRELOAD'ed before running the binaries |
Gustavo Sverzut Barbieri | 7fe602b | 2011-12-10 13:32:27 -0200 | [diff] [blame] | 12 | so we're able to create unit tests |
Gustavo Sverzut Barbieri | c3d0a5f | 2011-12-11 19:36:18 -0200 | [diff] [blame] | 13 | |
Lucas De Marchi | 3af535c | 2011-12-27 17:32:55 -0200 | [diff] [blame] | 14 | * Add functions to dump configuration. Create a list with the config items |
| 15 | (blacklist, aliases, etc) or just dump to a fd? |
Lucas De Marchi | d68ea2a | 2011-12-14 14:02:28 -0200 | [diff] [blame] | 16 | |
Lucas De Marchi | 3af535c | 2011-12-27 17:32:55 -0200 | [diff] [blame] | 17 | * Add functions to list all modules known by modules.dep |
Lucas De Marchi | d68ea2a | 2011-12-14 14:02:28 -0200 | [diff] [blame] | 18 | |
Lucas De Marchi | d68ea2a | 2011-12-14 14:02:28 -0200 | [diff] [blame] | 19 | * provide 1:1 compatibility with module-init-tools's modprobe |
Lucas De Marchi | bc43496 | 2012-01-13 02:35:34 -0200 | [diff] [blame] | 20 | - dump modules.alias and modules.symbols |
| 21 | |
| 22 | * Add docs to kmod_config_* functions |
Lucas De Marchi | d68ea2a | 2011-12-14 14:02:28 -0200 | [diff] [blame] | 23 | |
Lucas De Marchi | 657722d | 2011-12-31 19:41:05 -0200 | [diff] [blame] | 24 | * Add manpages: copy them from module-init-tools and make the necessary changes |
| 25 | |
Gustavo Sverzut Barbieri | 674f859 | 2011-12-20 11:54:53 -0200 | [diff] [blame] | 26 | * review API, maybe unify all of these setters: |
| 27 | - kmod_module_version_get_symbol() |
| 28 | - kmod_module_version_get_crc() |
| 29 | - kmod_module_symbol_get_symbol() |
| 30 | - kmod_module_symbol_get_crc() |
| 31 | - kmod_module_dependency_symbol_get_symbol() |
| 32 | - kmod_module_dependency_symbol_get_crc() |
| 33 | - kmod_module_versions_free_list() |
| 34 | - kmod_module_symbols_free_list() |
| 35 | - kmod_module_dependency_symbols_free_list() |
| 36 | |
Lucas De Marchi | d89d7cb | 2012-01-12 18:14:32 -0200 | [diff] [blame] | 37 | * unify code from modprobe and libkmod: |
| 38 | - remove kmod_module_probe_insert() and turn it into |
| 39 | kmod_module_probe_get_list(); this way modprobe can use it too |
| 40 | |
Gustavo Sverzut Barbieri | f841e63 | 2011-12-19 11:37:08 -0200 | [diff] [blame] | 41 | * provide modules.archive, a cache file with all modules compressed |
| 42 | and a fast access. It's like a tar.gz, but with each entry |
| 43 | compressed as opposed to the whole tar compressed, easy to pick |
| 44 | individual entries, that is, more like .gz.tar. As zlib compression |
| 45 | does not store the uncompressed file size, this could provide |
| 46 | it. The file format should be something like: |
| 47 | MAGIC-ID |
| 48 | DIRECTORY-ENTRY-SIZE |
| 49 | DIRECTORY (hash-like format, points to file offset and size) |
| 50 | ENTRIES (each is a compressed module) |
| 51 | Helper binary to: |
| 52 | kmod-archive list |
| 53 | kmod-archive add path.ko |
| 54 | kmod-archive rm path.ko |
| 55 | kmod-archive get path.ko |
| 56 | kmod-archive exists path.ko |
| 57 | |
Lucas De Marchi | 5e690c5 | 2011-12-16 02:02:58 -0200 | [diff] [blame] | 58 | Known Bugs: |
| 59 | =========== |
| 60 | |
Lucas De Marchi | 5e690c5 | 2011-12-16 02:02:58 -0200 | [diff] [blame] | 61 | |
Lucas De Marchi | 3af535c | 2011-12-27 17:32:55 -0200 | [diff] [blame] | 62 | Things to be added/removed in kernel (check what is really needed): |
Lucas De Marchi | 5e690c5 | 2011-12-16 02:02:58 -0200 | [diff] [blame] | 63 | =================================================================== |
| 64 | |
| 65 | * list of currently loaded modules |
| 66 | |
| 67 | * module's size should be available under /sys |
| 68 | |
| 69 | * kill /proc/modules ? |
Lucas De Marchi | 5a96c5f | 2012-01-01 05:47:17 -0200 | [diff] [blame] | 70 | |
| 71 | Things that are different from module-init-tools on purpose (!TODO) |
| 72 | =================================================================== |
| 73 | |
| 74 | modprobe |
| 75 | -------- |
| 76 | |
| 77 | * 'modprobe -l' was marked as deprecated and does not exist anymore |
| 78 | |
| 79 | * 'modprobe -t' is gone, together with 'modprobe -l' |
| 80 | |
| 81 | * there's and additional '--remove-dependencies' flags to kmod-modprobe so we |
| 82 | can remove modules depending on that one |
| 83 | |
| 84 | * kmod-modprobe doesn't parse configuration files whose name don't end on |
| 85 | '.alias' or '.conf'. modprobe used to warn about these files. |
| 86 | |
Lucas De Marchi | 0ad5dd0 | 2012-01-11 00:28:12 -0200 | [diff] [blame] | 87 | * kmod-modprobe doesn't parse 'config' and 'include' commands in configuration |
| 88 | files. |
| 89 | |
Lucas De Marchi | 9212261 | 2012-01-11 21:48:08 -0200 | [diff] [blame] | 90 | * we don't use <module-dir>/modules.builtin{,.bin} indexes. Instead we rely on |
| 91 | module appearing on /sys/modules/* without a initstate file to determine if |
| 92 | it is builtin. |
| 93 | |
Lucas De Marchi | f564394 | 2012-01-12 14:45:11 -0200 | [diff] [blame] | 94 | * modprobe from m-i-t does not honour softdeps for install commands. E.g.: |
| 95 | config: |
| 96 | |
| 97 | install bli "echo bli" |
| 98 | install bla "echo bla" |
| 99 | softdep bla pre: bli |
| 100 | |
| 101 | With m-i-t, the output of 'modprobe --show-depends bla' will be: |
| 102 | install "echo bla" |
| 103 | |
| 104 | While with kmod: |
| 105 | install "echo bli" |
| 106 | install "echo bla" |
| 107 | |
Lucas De Marchi | bc43496 | 2012-01-13 02:35:34 -0200 | [diff] [blame] | 108 | * kmod doesn't dump the configuration as is in the config files. Instead it |
| 109 | dumps the configuration as it was parsed. Therefore, comments and file names |
| 110 | are not dumped, but on the good side we know what the exact configuration |
| 111 | kmod is using. We did this because if we only want to know the entire content |
| 112 | of configuration files, it's enough to use find(1) in modprobe.d directories |
| 113 | |
Lucas De Marchi | 5a96c5f | 2012-01-01 05:47:17 -0200 | [diff] [blame] | 114 | depmod |
| 115 | ------ |
| 116 | |
| 117 | * there's no 'depmod -m' option: legacy modules.*map files are gone |
Lucas De Marchi | e85b673 | 2012-01-12 15:28:19 -0200 | [diff] [blame] | 118 | |
| 119 | lsmod |
| 120 | ----- |
| 121 | |
| 122 | * information is parsed from /sys instead of /proc/modules |