昨天刚刚在我的笔记本电脑上安装了 Ubuntu,WiFi 卡无法正常工作。我关注了无数的帖子和解决方案,但似乎都不起作用。我在这个网站上找到的解决方案通常以不得不启动一个不起作用的 make 命令而告终。这是我主要关注的帖子https://ubuntuforums.org/showthread.php?t=2162026使用此解决方案,make 总是会失败。当我尝试执行此操作时,会发生这种情况
make -C /lib/modules/4.10.0-19-generic/build M=/home/darren/Desktop/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013 modules
make[1]: Entering directory '/usr/src/linux-headers-4.10.0-19-generic'
CC [M] /home/darren/Desktop/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.o
In file included from /home/darren/Desktop/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.c:32:0:
/home/darren/Desktop/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/wifi.h:1005:40: error: ‘IEEE80211_NUM_BANDS’ undeclared here (not in a function)
struct ieee80211_supported_band bands[IEEE80211_NUM_BANDS];
^~~~~~~~~~~~~~~~~~~
In file included from /home/darren/Desktop/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.c:39:0:
/home/darren/Desktop/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/pci.h:247:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘rtl_pci_probe’
int __devinit rtl_pci_probe(struct pci_dev *pdev,
^~~~~~~~~~~~~
/home/darren/Desktop/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.c:137:10: error: ‘IEEE80211_BAND_2GHZ’ undeclared here (not in a function)
.band = IEEE80211_BAND_2GHZ,
^~~~~~~~~~~~~~~~~~~
/home/darren/Desktop/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.c:149:10: error: ‘IEEE80211_BAND_5GHZ’ undeclared here (not in a function)
.band = IEEE80211_BAND_5GHZ,
^~~~~~~~~~~~~~~~~~~
/home/darren/Desktop/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.c: In function ‘_rtl_init_mac80211’:
/home/darren/Desktop/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.c:318:12: error: assignment to expression with array type
hw->flags = IEEE80211_HW_SIGNAL_DBM |
^
/home/darren/Desktop/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.c:331:13: error: assignment to expression with array type
hw->flags |= IEEE80211_HW_SUPPORTS_PS |
^~
/home/darren/Desktop/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.c:365:4: error: ‘struct ieee80211_hw’ has no member named ‘channel_change_time’
hw->channel_change_time = 100;
^~
/home/darren/Desktop/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.c: In function ‘rtl_action_proc’:
/home/darren/Desktop/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.c:885:32: error: ‘struct ieee80211_conf’ has no member named ‘channel’; did you mean ‘chandef’?
rx_status.freq = hw->conf.channel->center_freq;
^
/home/darren/Desktop/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.c:886:32: error: ‘struct ieee80211_conf’ has no member named ‘channel’; did you mean ‘chandef’?
rx_status.band = hw->conf.channel->band;
^
/home/darren/Desktop/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.c: In function ‘rtl_beacon_statistic’:
/home/darren/Desktop/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.c:1160:6: error: implicit declaration of function ‘compare_ether_addr’ [-Werror=implicit-function-declaration]
if (compare_ether_addr(hdr->addr3, rtlpriv->mac80211.bssid))
^~~~~~~~~~~~~~~~~~
/home/darren/Desktop/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.c: In function ‘rtl_send_smps_action’:
/home/darren/Desktop/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.c:1451:24: error: ‘struct ieee80211_conf’ has no member named ‘channel’; did you mean ‘chandef’?
info->band = hw->conf.channel->band;
^
/home/darren/Desktop/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.c: In function ‘rtl_store_debug_level’:
/home/darren/Desktop/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.c:1684:8: error: implicit declaration of function ‘strict_strtoul’ [-Werror=implicit-function-declaration]
ret = strict_strtoul(buf, 0, &val);
^~~~~~~~~~~~~~
cc1: some warnings being treated as errors
scripts/Makefile.build:294: recipe for target '/home/darren/Desktop/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.o' failed
make[2]: *** [/home/darren/Desktop/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.o] Error 1
Makefile:1524: recipe for target '_module_/home/darren/Desktop/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013' failed
make[1]: *** [_module_/home/darren/Desktop/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.10.0-19-generic'
Makefile:27: recipe for target 'all' failed
答案1
我的 wifi 已正式恢复工作。我关注了 celticwarrior 发布的帖子Xenial 中的 Realtek RTL8188EE 驱动程序?。尝试了该帖子中发布的解决方案后,一切都成功了,但我的 wifi 仍然没有显示。所以我拆开笔记本电脑,然后重新组装。这样做之后,我的 wifi 开始工作了。
答案2
检查确保您的设备受 Ubuntu 支持,如果不支持,您将需要使用带有 NDISWrapper 的 Windows 驱动程序来安装它并强制它在 Ubuntu 中运行。
以下是与此相关的一些信息: https://help.ubuntu.com/stable/ubuntu-help/net-wireless-troubleshooting-device-drivers.html
您的问题似乎已在此论坛得到解决: https://ubuntuforums.org/showthread.php?t=2162026
一探究竟。