無法在 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

顯然,自 13.04 以來,Linux 頭檔已經發生了足夠的變化,足以破壞這個驅動程式。經過多天的工作,我終於解決了編譯問題並使驅動程式正常運作。您可以在我的 Github 儲存庫中找到修復後的驅動程序,以及對 Realtek 發布的原始版本所做的所有更改的詳細資訊: 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

核心 3.9 及更高版本不再支援 rtl8188ce。

我的桌上型電腦也有同樣的 WIFI 卡。

我現在使用的最好的開源支援卡是 Atheros。

  • 選項 #1 使用“Ubuntu 12.04 LTS”,因為它透過 rtl8192ce 驅動程式支援 rtl8188ce。

  • 選項#2 研究支援開源核心的 wifi 卡。

  • 選項 #3 經過研究後,使用適用於最新核心 3.12 及更高版本的卡片。

在我使用 Realtek 的經驗之後,我不會再使用它們,因為 rtl8188ce 對於 Windows 和 Linux 來說是一張糟糕的卡片。

相關內容