對 RTL8273AE-BT 驅動程式使用 make 指令時發生錯誤

對 RTL8273AE-BT 驅動程式使用 make 指令時發生錯誤

這是我收到的錯誤。我假設這是因為該驅動程式適用於先前版本的 Ubuntu,但不幸的是它是我能找到的最新版本的驅動程式。該驅動程式適用於我的 Realtek WiFi 卡,RTL8273AE-BT.

lewis@luitaco:~/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012$ make
make -C /lib/modules/3.16.0-31-generic/build M=/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012 modules
make[1]: Entering directory '/usr/src/linux-headers-3.16.0-31-generic'
  CC [M]  /home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.o
In file included from /home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:39:0:
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/pci.h:245:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘rtl_pci_probe’
 int __devinit rtl_pci_probe(struct pci_dev *pdev,
               ^
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c: In function ‘_rtl_init_mac80211’:
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:320:6: error: ‘IEEE80211_HW_BEACON_FILTER’ undeclared (first use in this function)
      IEEE80211_HW_BEACON_FILTER |
      ^
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:320:6: note: each undeclared identifier is reported only once for each function it appears in
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:351:4: error: ‘struct ieee80211_hw’ has no member named ‘channel_change_time’
  hw->channel_change_time = 100;
    ^
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c: In function ‘rtl_action_proc’:
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:867:32: error: ‘struct ieee80211_conf’ has no member named ‘channel’
       rx_status.freq = hw->conf.channel->center_freq;
                                ^
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:868:32: error: ‘struct ieee80211_conf’ has no member named ‘channel’
       rx_status.band = hw->conf.channel->band;
                                ^
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:870:25: error: ‘RX_FLAG_MACTIME_MPDU’ undeclared (first use in this function)
       rx_status.flag |= RX_FLAG_MACTIME_MPDU;
                         ^
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c: In function ‘rtl_beacon_statistic’:
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:1141:2: error: implicit declaration of function ‘compare_ether_addr’ [-Werror=implicit-function-declaration]
  if (compare_ether_addr(hdr->addr3, rtlpriv->mac80211.bssid))
  ^
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c: In function ‘rtl_send_smps_action’:
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:1432:16: error: ‘struct <anonymous>’ has no member named ‘sta’
   info->control.sta = sta;
                ^
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:1433:24: error: ‘struct ieee80211_conf’ has no member named ‘channel’
   info->band = hw->conf.channel->band;
                        ^
cc1: some warnings being treated as errors
scripts/Makefile.build:257: recipe for target '/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.o' failed
make[2]: *** [/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.o] Error 1
Makefile:1345: recipe for target '_module_/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012' failed
make[1]: *** [_module_/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-3.16.0-31-generic'
Makefile:27: recipe for target 'all' failed
make: *** [all] Error 2
lewis@luitaco:~/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012$ sudo su
root@luitaco:/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012# make install
make -C /lib/modules/3.16.0-31-generic/build M=/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012 modules
make[1]: Entering directory '/usr/src/linux-headers-3.16.0-31-generic'
  CC [M]  /home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.o
In file included from /home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:39:0:
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/pci.h:245:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘rtl_pci_probe’
 int __devinit rtl_pci_probe(struct pci_dev *pdev,
               ^
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c: In function ‘_rtl_init_mac80211’:
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:320:6: error: ‘IEEE80211_HW_BEACON_FILTER’ undeclared (first use in this function)
      IEEE80211_HW_BEACON_FILTER |
      ^
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:320:6: note: each undeclared identifier is reported only once for each function it appears in
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:351:4: error: ‘struct ieee80211_hw’ has no member named ‘channel_change_time’
  hw->channel_change_time = 100;
    ^
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c: In function ‘rtl_action_proc’:
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:867:32: error: ‘struct ieee80211_conf’ has no member named ‘channel’
       rx_status.freq = hw->conf.channel->center_freq;
                                ^
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:868:32: error: ‘struct ieee80211_conf’ has no member named ‘channel’
       rx_status.band = hw->conf.channel->band;
                                ^
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:870:25: error: ‘RX_FLAG_MACTIME_MPDU’ undeclared (first use in this function)
       rx_status.flag |= RX_FLAG_MACTIME_MPDU;
                         ^
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c: In function ‘rtl_beacon_statistic’:
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:1141:2: error: implicit declaration of function ‘compare_ether_addr’ [-Werror=implicit-function-declaration]
  if (compare_ether_addr(hdr->addr3, rtlpriv->mac80211.bssid))
  ^
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c: In function ‘rtl_send_smps_action’:
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:1432:16: error: ‘struct <anonymous>’ has no member named ‘sta’
   info->control.sta = sta;
                ^
/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.c:1433:24: error: ‘struct ieee80211_conf’ has no member named ‘channel’
   info->band = hw->conf.channel->band;
                        ^
cc1: some warnings being treated as errors
scripts/Makefile.build:257: recipe for target '/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.o' failed
make[2]: *** [/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.o] Error 1
Makefile:1345: recipe for target '_module_/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012' failed
make[1]: *** [_module_/home/lewis/Realtek/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-3.16.0-31-generic'
Makefile:27: recipe for target 'all' failed
make: *** [all] Error 2

答案1

您應該使用最新的(!!比您的 Ubuntu 版本更新)核心以及附帶的驅動程式: http://cateee.net/lkddb/web-lkddb/RTL8723AE.html- 在 Linux 核心中找到:3.8–3.19、4.0-rc+HEAD

例如 -http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.19-vivid/

如果您遇到速度慢的情況,請在路由器中停用 WMM: http://ubuntuforums.org/showthread.php?t=2267816&page=3

答案2

更新到 kernal 3.19,然後必須使用命令 ~$ sudo nano /etc/modules 將 modprobe 設定為在啟動時自動加載,並將 rtl8723ae 添加到列表中。希望這可以幫助其他遇到此 wifi 設備問題的人。

相關內容