运行 makefile 会导致“/sbin/modprobe: invalid option -- 'l'”

运行 makefile 会导致“/sbin/modprobe: invalid option -- 'l'”

我正在尝试在 Asus EEE PC Flare 系列上网本上设置 Slackware 14.0。目前我正在尝试配置wifi。当我输入以下内容时:

# iwconfig

我得到:

lo        no wireless extensions.

我发现这意味着我没有安装无线卡的驱动程序(基于此 - 请参阅无线子标题)。我检查了一下lspci,这是我的网卡上的信息:

02:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev-01)

我设法找到了一个指南这里详细说明如何安装正确的驱动程序。我从教程中下载了 tarball,通过 USB 将其传输到运行 Slackware 的计算机,解压缩,然后运行教程中的命令。然而,当我到达运行的部分时make,我得到以下输出:

# make
/sbin/modprobe: invalid option -- 'l'
/sbin/modprobe: invalid option -- 'l'
./scripts/gen-compat-autoconf.sh config.mk > include/linux/compat_autoconf.h

这时它就卡住了。我最终用Ctrl+取消了它C并尝试运行make clean。这也导致了/sbin/modprobe: invalid option -- 'l'很多次错误,但最终还是完成了。

此时我用谷歌搜索了一下并最终发现从 2 年前开始,其中指出该-l标志当时尚未在内核中实现,但它位于 TODO 列表中。我检查了 man modprobe 并-l没有在任何地方提到该标志,也没有 TOOD 部分。我还检查了 make 文件,果然它尝试使用/sbin/modprobe-l标志调用,导致make进程失败。

以前有人遇到过这个问题吗modprobe?是否有其他命令可以替代它? (我可以编辑 makefile)。任何帮助将不胜感激。

答案1

modprobeUbuntu 12.04 中的版本(来自module-init-tools version 3.16有一个-l选项,有描述

   -l --list List  all  modules  matching the given wildcard (or "*" if no
             wildcard is given).  This option is  provided  for  backwards
             compatibility  and  may  go  away  in future: see find(1) and
             basename(1) for a more flexible alternative.

例如,

$ modprobe -l 'ath*'
kernel/drivers/net/wireless/ath/ath5k/ath5k.ko
kernel/drivers/net/wireless/ath/ath9k/ath9k.ko
kernel/drivers/net/wireless/ath/ath9k/ath9k_hw.ko
kernel/drivers/net/wireless/ath/ath9k/ath9k_common.ko
kernel/drivers/net/wireless/ath/ath9k/ath9k_htc.ko
kernel/drivers/net/wireless/ath/ath6kl/ath6kl.ko
kernel/drivers/net/wireless/ath/ath.ko
kernel/drivers/bluetooth/ath3k.ko

基于此,可以将该命令替换为诸如find /path/to/kernel/drivers -name 'xxx'以下的命令

$ find /lib/modules/`uname -r` -name 'ath*.ko' -type f -printf '%P\n'
kernel/drivers/net/wireless/ath/ath6kl/ath6kl.ko
kernel/drivers/net/wireless/ath/ath.ko
kernel/drivers/net/wireless/ath/ath9k/ath9k_htc.ko
kernel/drivers/net/wireless/ath/ath9k/ath9k_hw.ko
kernel/drivers/net/wireless/ath/ath9k/ath9k_common.ko
kernel/drivers/net/wireless/ath/ath9k/ath9k.ko
kernel/drivers/net/wireless/ath/ath5k/ath5k.ko
kernel/drivers/bluetooth/ath3k.ko

相关内容