makefileを実行すると、「/sbin/modprobe:無効なオプション - 'l'」が発生します。

makefileを実行すると、「/sbin/modprobe:無効なオプション - 'l'」が発生します。

Asus EEE PC FlareシリーズネットブックにSlackware 14.0を設定しようとしています。現在Wi-Fiを設定しようとしています。次のように入力するとき:

# iwconfig

私は得る:

lo        no wireless extensions.

私はこれがワイヤレスカード用のドライバがインストールされていないことを意味することがわかりました(これに基づいて - ワイヤレスサブタイトルを参照)。確認してみると、lspci私のネットワークカードの情報は次のようになります。

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

ガイドを見つけました。ここ正しいドライバをインストールする方法の詳細な手順です。チュートリアルからタルボールをダウンロードし、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?代替できる他のコマンドはありますか? (メイクファイルを編集できます)どんな助けでも大変感謝します。

答え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

関連情報