web-dev-qa-db-ja.com

Xubuntu 13.10にbackports-3.12-8のath9kドライバーをインストールする方法を教えてください。

3.12-8カーネルファイル linux-headers-all.deb、linux-headers-generic_i368.deb; linux-image-generic_i386.deb をkernel.orgからダウンロードし、次の方法でインストールしました。

 dpkg -i *.deb

今、私はいくつかの無線LAN信号のドロップアウトを除去しようとしています。これはおそらくドライバー自体が原因です。どうやらath9kドライバーにいくつかの修正があったため、デフォルトをバックポートバージョンに置き換えたいと思います。

Kernel.orgから backports-3.12.8-1.tar.gz をダウンロードし、次の方法でath9kモジュールを準備しようとしました。

cd ~/.source/backports-3.12.8-1/
Sudo apt-get install build-essential
Sudo apt-get build-dep linux-image-$(uname -r)
Sudo ln -s /usr/src/linux-headers-$(uname -r) /usr/src/linux
make defconfig-ath9k

これにより、次の「missing-prototypes ERROR」が発生します。

cc -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer   -c -o conf.o conf.c
cc -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer   -c -o zconf.tab.o zconf.tab.c
cc   conf.o zconf.tab.o   -o conf

しかし、私が続けると:

Sudo modprobe -r ath9k
Sudo make
Sudo checkinstall

すべてが機能します!!!

だから私の質問は:

  • このモジュールは特定の他のカーネルモジュールに依存していますか?

    はい、次のコマンドはあなたに教えてくれます:

    modinfo ath9k

  • もしそうなら、それらに関する情報はどこにありますか?

    Wireless.kernel.org/en/users/Drivers/ath9kをご覧ください。

  • このカーネルモジュールをインストールする正しい方法はありますか。ドライバ?

    おそらく、カーネルのコンパイルでプロを得ることによって:-)。

THX

4
suqed

私がちょうどやったように、この質問に出くわすかもしれない人々のために:

これにより、次の「missing-prototypes ERROR」が発生します。

cc -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer   -c -o conf.o conf.c
cc -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer   -c -o zconf.tab.o zconf.tab.c
cc   conf.o zconf.tab.o   -o conf

これらの行は実際にはエラーではありません。 makeコマンドは、Makefileというファイルで指定されている他のコマンドの束を実行します。デフォルトでは、makeはこれらのコマンドを実行する前に端末に書き出します。たとえば、Makefilefooを実行し、次にbarを実行し、次にbazを実行すると、makeはfooを端末に書き込み、fooコマンドを実行します。 ;次に、barを端末に書き込み、barを実行します。その後、bazを端末に書き込み、bazを実行します。

この場合、それらのcc行は、makeMakefileによって実行するように指示されたコマンドです。 ccコマンドは、システムのデフォルトの Cコンパイラ を実行します。これはおそらく GCC です。 -で始まるものは オプション であり、Cコンパイラの動作に影響します。

GCCのようなコンパイラの場合、 -Wで始まるオプション は、技術的に有効なコードを見たときに警告を出すようにコンパイラに指示しますが、多くの場合悪い考えです(たとえば、プログラマーthinkは何らかの方法で行動しますが、実際には別の方法で行動します)。

この場合、-Wallは、GCCの警告の多く(すべてではありません!)をオンにします。 -Wmissing-prototypesおよび-Wstrict-prototypesは、Cの 関数プロトタイプ 機能に関連する問題を見つけるために、追加の警告をオンにします。

したがって、これらのメッセージは、ccコマンドが実行されようとしていること、および(特に)コードが危険であると判断した場合に警告する必要があることを示しています。特に、関数プロトタイプが誤用されている場合。

GCC警告は次のようになります。

main.c: In function ‘main’:
main.c:1:5: warning: traditional C rejects ISO C style function definitions [-Wtraditional]
 int main(int argc, char **argv) {
     ^

そのようなものは出力に表示されないため、警告やエラーは発生しませんでした。偶数withこれらの追加の-Wチェックを有効にします。

1
Warbo

2.6.30以降のバージョン以降は正常に動作するはずですが、新しいカーネルをインストールすることをお勧めします。カーネル3.13.0-24-genericでAPとして使用していますが、新しいカーネルをインストールする方が良いとわかっています。私はhttp://kernel.ubuntu.com/~kernel-ppa/mainline/v3.18.12-vivid/または同様のものでそれを使用していました(私のHDDがクラッシュするまで)。上記のカーネルで使用されているものの詳細を提供できます。

  1. 依存:ath9k_hw、mac80211、ath9k_common、cfg80211、ath
  2. 情報とハードウェアの機能はどこかで見ましたが、どこにあったか覚えていません
  3. それは確かです:)compat-wirelessを探してください
0
Pavol Polacko