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

Pan*_*nda 3 wifi drivers slackware modprobe

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

# iwconfig
Run Code Online (Sandbox Code Playgroud)

我得到:

lo        no wireless extensions.
Run Code Online (Sandbox Code Playgroud)

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

02:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev-01)
Run Code Online (Sandbox Code Playgroud)

我设法在这里找到了详细说明如何安装正确驱动程序的指南。我从教程中下载了 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
Run Code Online (Sandbox Code Playgroud)

在这一点上它卡住了。我最终用Ctrl+取消了它C并尝试运行make clean. 这也给了/sbin/modprobe: invalid option -- 'l'错误很多次但最终完成了。

在这一点上,我用谷歌搜索了一下,最终从 2 年前找到了这个,它指出该-l标志当时并未在内核中实现,但它在待办事项列表中。我检查了 man modprobe 并且在-l任何地方都没有提到该标志,也没有 TOOD 部分。我还检查了 make 文件,果然它试图/sbin/modprobe-l标志调用,导致make进程失败。

有没有人遇到过这个问题modprobe?是否有一些替代命令可以替代它?(我可以编辑生成文件)。任何帮助将不胜感激。

ste*_*ver 5

modprobeUbuntu 12.04 (from 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.
Run Code Online (Sandbox Code Playgroud)

例如,

$ 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
Run Code Online (Sandbox Code Playgroud)

基于此,可以用命令替换命令,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
Run Code Online (Sandbox Code Playgroud)