无法在 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_hwstruct ieee80211_conf,并添加struct cfg80211_chan_def它取代了以前的channel成员ieee80211_conf

还有一个新的辅助功能cfg80211_get_chandef_type()用于检索通道类型,而不是旧的直接方法。

答案2

rtl8188ce 不再支持内核 3.9 及更高版本。

我的台式机有同样的WIFI卡。

我现在使用的对开源支持最好的卡是 Atheros。

  • 选项#1 使用“Ubuntu 12.04 LTS”,因为它通过 rtl8192ce 驱动程序支持 rtl8188ce。

  • 选项#2 研究支持开源内核的 wifi 卡。

  • 选项#3 经过研究后,使用可与最新内核 3.12 及更高版本兼容的卡。

有了 Realtek 的体验后,我不会再使用它们了,因为 rtl8188ce 对于 Windows 和 Linux 来说是一张糟糕的卡。

相关内容