toolbox/modprobe: Fallback to /lib/modules/<uname>
Make the module directory optional by reading the kernel release version. This path is where the kernel installs modules by default. Similar behaviour can be found in several modprobe implementations. Bug: 254835242 Change-Id: I61707636705e5b4d9bd8ccf6351e7057eae6bcf5
This commit is contained in:
parent
545141f405
commit
8320778425
1 changed files with 11 additions and 3 deletions
|
@ -23,8 +23,11 @@
|
|||
#include <android-base/file.h>
|
||||
#include <android-base/logging.h>
|
||||
#include <android-base/strings.h>
|
||||
#include <android-base/stringprintf.h>
|
||||
#include <modprobe/modprobe.h>
|
||||
|
||||
#include <sys/utsname.h>
|
||||
|
||||
namespace {
|
||||
|
||||
enum modprobe_mode {
|
||||
|
@ -37,9 +40,8 @@ enum modprobe_mode {
|
|||
void print_usage(void) {
|
||||
LOG(INFO) << "Usage:";
|
||||
LOG(INFO);
|
||||
// -d option is required on Android
|
||||
LOG(INFO) << " modprobe [options] -d DIR [--all=FILE|MODULE]...";
|
||||
LOG(INFO) << " modprobe [options] -d DIR MODULE [symbol=value]...";
|
||||
LOG(INFO) << " modprobe [options] [-d DIR] [--all=FILE|MODULE]...";
|
||||
LOG(INFO) << " modprobe [options] [-d DIR] MODULE [symbol=value]...";
|
||||
LOG(INFO);
|
||||
LOG(INFO) << "Options:";
|
||||
LOG(INFO) << " --all=FILE: FILE to acquire module names from";
|
||||
|
@ -189,6 +191,12 @@ extern "C" int modprobe_main(int argc, char** argv) {
|
|||
}
|
||||
}
|
||||
|
||||
if (mod_dirs.empty()) {
|
||||
utsname uts;
|
||||
uname(&uts);
|
||||
mod_dirs.emplace_back(android::base::StringPrintf("/lib/modules/%s", uts.release));
|
||||
}
|
||||
|
||||
LOG(DEBUG) << "mode is " << mode;
|
||||
LOG(DEBUG) << "mod_dirs is: " << android::base::Join(mod_dirs, " ");
|
||||
LOG(DEBUG) << "modules is: " << android::base::Join(modules, " ");
|
||||
|
|
Loading…
Reference in a new issue