Ubuntu 13.10 で RealTek RTL8188CE ドライバをコンパイルできない

Ubuntu 13.10 で RealTek RTL8188CE ドライバをコンパイルできない

私のマシンで Realtek ドライバーをコンパイルしようとすると、次のエラーが発生します。

make -C /lib/modules/3.11.0-12-generic/build M=/home/david/Downloads/rtl8188ce-linux-driver modules
make[1]: Entering directory `/usr/src/linux-headers-3.11.0-12-generic'
  CC [M]  /home/david/Downloads/rtl8188ce-linux-driver/base.o
/home/david/Downloads/rtl8188ce-linux-driver/base.c: In function ‘rtl_action_proc’:
/home/david/Downloads/rtl8188ce-linux-driver/base.c:885:32: error: ‘struct ieee80211_conf’ has no member named ‘channel’
       rx_status.freq = hw->conf.channel->center_freq;
                                ^
/home/david/Downloads/rtl8188ce-linux-driver/base.c:886:32: error: ‘struct ieee80211_conf’ has no member named ‘channel’
       rx_status.band = hw->conf.channel->band;
                                ^
/home/david/Downloads/rtl8188ce-linux-driver/base.c: In function ‘rtl_send_smps_action’:
/home/david/Downloads/rtl8188ce-linux-driver/base.c:1451:24: error: ‘struct ieee80211_conf’ has no member named ‘channel’
   info->band = hw->conf.channel->band;
                        ^
make[2]: *** [/home/david/Downloads/rtl8188ce-linux-driver/base.o] Error 1
make[1]: *** [_module_/home/david/Downloads/rtl8188ce-linux-driver] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.11.0-12-generic'
make: *** [all] Error 2

これをどうすれば修正できますか?

答え1

どうやら Linux ヘッダーは 13.04 以降大きく変更され、このドライバーが機能しなくなったようです。何日も作業した後、ようやくコンパイルの問題を修正し、ドライバーを動作させることができました。修正されたドライバーと、Realtek がリリースした元のバージョンから私が行ったすべての変更の詳細は、次の Github リポジトリで確認できます。 https://github.com/FreedomBen/rtl8188ce-linux-driver

興味のある方のために、最大の変更点は、ディレクトリcreate_proc_entry()にデバッグ情報を入れる およびその他の関連関数が削除され/procたことです。まだコードを置き換え関数を使用するように変換していないため、現時点ではデバッグ情報は報告されません。ただし、これはドライバーのパフォーマンスにはまったく影響しません。

もう一つの大きな変化は、struct ieee80211_hwstruct ieee80211_conf、およびstruct cfg80211_chan_defchannel以前のメンバーに代わるものですieee80211_conf

新しいヘルパー関数もありますcfg80211_get_chandef_type()古い直接的な方法の代わりにチャネル タイプを取得します。

答え2

rtl8188ce はカーネル 3.9 以降ではサポートされなくなりました。

私のデスクトップにも同じ WIFI カードがありました。

私が現在使用しているオープンソース サポートに最適なカードは Atheros です。

  • オプション 1 では、rtl8192ce ドライバーを介して rtl8188ce をサポートしているため、「Ubuntu 12.04 LTS」を使用します。

  • オプション 2: オープンソース カーネルをサポートする Wi-Fi カードについて調査します。

  • オプション 3: 調査を行った後、最新のカーネル 3.12 以上で動作するカードを使用します。

Realtek を使用した経験から、rtl8188ce は Windows と Linux には適さないカードなので、今後は Realtek を使用しません。

関連情報