>> On Tue, Jan 19, 2010 at 01:52:00AM -0500, Mike Frysinger wrote: >> The lsmod utility has always been installed into /bin with the newer >> module-init-tools package, so let lsmod be found via PATH instead of >> hardcoding the old modutils /sbin path. >> > > Some distro doesn't set /sbin to PATH, so for me a better solution > would be making PATH contain /sbin, and then use "lsmod". How about the following solution then? (Warning, untested) >From 6a98295f6dc260d13e1abb39210a2a832c9bdd1f Mon Sep 17 00:00:00 2001 From: John Kacur <jkacur@xxxxxxxxxx> Date: Tue, 19 Jan 2010 17:10:48 +0100 Subject: [PATCH] kconfig: If lsmod is not in the /sbin, check the path MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Mike Frysinger reported that lsmod is installed in /bin on newer kernels which causes a problem when we hardcode the path to /sbin However, Américo Wang reports that some distros don't have /sbin in PATH, so you can't just let lsmod be found via PATH. So, first check if lsmod is at /sbin/lsmod, and then check PATH if that fails. Signed-off-by: John Kacur <jkacur@xxxxxxxxxx> --- scripts/kconfig/streamline_config.pl | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/scripts/kconfig/streamline_config.pl b/scripts/kconfig/streamline_config.pl index 0d80082..1803d2e 100644 --- a/scripts/kconfig/streamline_config.pl +++ b/scripts/kconfig/streamline_config.pl @@ -238,7 +238,8 @@ foreach my $makefile (@makefiles) { my %modules; # see what modules are loaded on this system -open(LIN,"/sbin/lsmod|") || die "Cant lsmod"; +# If lsmod isn't in the sbin dir, check if it is in the path +open(LIN,"/sbin/lsmod|") || open(LIN,"lsmod|") || die "Cant lsmod"; while (<LIN>) { next if (/^Module/); # Skip the first line. if (/^(\S+)/) { -- 1.6.0.6