
私のマシンで 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_hw
、struct ieee80211_conf
、およびstruct cfg80211_chan_def
channel
以前のメンバーに代わるものです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 を使用しません。