From: Petr Vorel <pvorel@suse.cz>
To: ltp@lists.linux.it
Subject: [LTP] [PATCH v3 1/2] lib: Fix kernel module detection on BusyBox
Date: Wed, 20 Jan 2021 20:27:48 +0100 [thread overview]
Message-ID: <YAiENOUzMVpDThsk@pevik> (raw)
In-Reply-To: <YAhMCz4j9Q2ltGcJ@yuki.lan>
Hi,
> > modules.dep has format:
> > module:[dependency [another-dependency ...]]
> > e.g.:
> > kernel/arch/x86/kernel/cpu/mce/mce-inject.ko.xz:
> > kernel/arch/x86/crypto/twofish-x86_64.ko.xz: kernel/crypto/twofish_common.ko.xz
> > kernel/arch/x86/crypto/aesni-intel.ko.xz: kernel/crypto/crypto_simd.ko.xz kernel/crypto/cryptd.ko.xz kernel/arch/x86/crypto/glue_helper.ko.xz
> > First reading "%s" reads only first module with ':' separator.
> > Searching without it could find first module which is as dependency (e.g.
> > "/twofish_common.ko.xz" instead of "/twofish-x86_64.ko.xz"). Although that
> > shouldn't be a problem, because it's very unlikely that module dependency is
> > missing. Do you want me to drop sscanf() or put some comment?
> Well it would be probably cleaner to do something as:
> /* Cut dependencies after : */
> if ((sep = strchr(buf, ':')))
> *sep = 0;
> No need to copy the string just because we neet to cut part of it.
+1, thanks!
> > Also man modules.dep(5) warns about using text format as "their format is
> > subject to change in the future". Hopefully we can depend on it. Or should we
> > use binary format?
> That depends on how complicated is to parse the binary format...
I'll have a look.
I was also thinking whether whole thing really works on toolchains which use
BusyBox. BusyBox's depmod implementation does not generate modules.builtin
(it generates only modules.{alias,dep,symbols}, i.e. only few text files, no
binary). But the only distro I know which installs BusyBox depmod/modinfo/modprobe
instead of kmod is Alpine Linux and even this distro clearly generates all
modules.* files for its kernel package with kmod.
It looks to me that kernel supports generating modules.builtin.modinfo
since v5.2-rc1 (898490c010b5 "moduleparam: Save information about built-in
modules in separate file") and kmod used this change in v27 (in 60084cf
"libkmod: Add parser for modules.builtin.modinfo" released a year ago).
Thus built-in modules are impossible to detect on old kernels no matter we use
kmod or our own implementation.
But built-in modules are mostly problem for embedded: we require modules like
btrfs, loop, tun, uinput, ... which are loadable modules on typical linux
distros.
Thus generally using modules.{dep,builtin} seems to me as a good approach for
linux distros including embedded ones and we could also use binary variants.
Other possible improvements:
* last resort effort search in /lib/modules/$(uname -r) or a directory defined
in environment variable (with or without version) - fallback for old android or
some embedded (again - not working for built-in modules)
* environment variable to skip the detection.
Kind regards,
Petr
next prev parent reply other threads:[~2021-01-20 19:27 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-19 16:03 [LTP] [PATCH v3 0/2] kernel module detection (own implementation) Petr Vorel
2021-01-19 16:03 ` [LTP] [PATCH v3 1/2] lib: Fix kernel module detection on BusyBox Petr Vorel
2021-01-19 19:56 ` Sandeep Patil
2021-01-19 21:48 ` Petr Vorel
2021-01-20 12:16 ` Petr Vorel
2021-01-20 14:14 ` Cyril Hrubis
2021-01-20 15:21 ` Petr Vorel
2021-01-20 15:28 ` Cyril Hrubis
2021-01-20 19:27 ` Petr Vorel [this message]
2021-01-19 16:03 ` [LTP] [PATCH v3 2/2] zram: Fix " Petr Vorel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YAiENOUzMVpDThsk@pevik \
--to=pvorel@suse.cz \
--cc=ltp@lists.linux.it \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.