0

I recently switched my surface pro 3 to Ubuntu 17.10. I'm new to Linux, but need to have it for a class I'm taking and can't afford to buy a mac. The surface was given to me by my former employer, so I need to do my best to make it work if possible. Here's the issue. The network driver is constantly crashing on wifi, even when I'm ten feet from the router. I've done as much research as possible on this and I can't seem to find any one answer that gets me close.

At first, I tried restarting the network manager using the terminal. Nothing. It just said network disconnected. Before anyone asks, there is no wifi kill-switch on the surface and when checking for blocks through the terminal, there are no hard or soft blocks detected. It is just disconnected. I tried switching the wifi button in the settings off and back on again. Nothing.

From what I gathered, basically the way the network manager operates, it's constantly trying to find a better connection and can get overloaded and crash. So I tried manually setting the BSSID. Worked for a while, but only for a few hours before the problem began repeating itself again.

Onwards. I tried to get rid of the built-in network manager and replaced it with wicd. It seemed to work for a while, except that I noticed that I no longer had access to my settings. Any settings. It was just gone. I couldn't add bluetooth devices because I'm assuming the built-in network manager was in charge of that, but I couldn't even adjust display settings. There was just no settings. Fine, I'm ok with that as long as I have wifi. problem is after a few hours, it started dropping again. Then by the end of the night, it would barely even connect for more than ten minutes.

Back at square one. I reinstalled nmcli because I figured if I'm not going to have wifi, I might as well have my settings back. But I noticed something. Where once after every crash, lshw -C network would read "*-network disconnected" it now does not show disconnected. But still cannot find any networks. Here's what I think the solution is, but have no developing or IT experience and am hoping someone can help. I think there isn't a network manager out there yet built to fully integrate with the surface on linux simply because the surface is a Microsoft product and this isn't a common use of it, so the driver hasn't come about. But maybe someone can point me in the right direction.

nmcli device - wifi: wlp1s0 lo - loopback: unmanaged

product: 88W8879 [AVASTAR] 802.11ac Wireless vendor: Marvell Technology Group physical id: 0

so on and so forth. If there is any other information I should provide, let me know, but tell me how because I've exhausted my knowledge. I really appreciate any help, advice or direction someone can give me. Thanks people.

2 Answers2

1

I suggest a few changes that might help. First, disable power saving in Network Manager. From the terminal:

sudo sed -i 's/3/2/' /etc/NetworkManager/conf.d/*

Then restart Network manager:

sudo service network-manager restart

Next, I suggest that you set your router to disable channel hopping, that is, use a fixed channel, either 1, 6 or 11, rather than automatic channel selection. Also, be certain the router is not set to use N speeds only; auto B, G and N is preferred. After making these changes, reboot the router.

Finally, if your router has 2.4 and also 5 gHz capabilities, I suggest giving them different names, something like zobi24 and zobi5. This will keep your router and wireless device from hopping from one band to the other.

Experiment to see which segment is more stable. I suspect it will be zobi24.

With respect to this:

info: failed: mwifiex_is_network_compatible: wpa_ie=0x0 wpa2_ie=0x30 WEP=d WPA=d WPA2=d EncMode=0x0 privacy=0x1

I recommend, again, that you check the settings in the router. WPA2-AES is preferred; not any WPA and WPA2 mixed mode and certainly not TKIP.

EDIT: To blacklist the internal device, please open a terminal and do:

sudo -i
echo "blacklist mwifiex_pcie"  >>  /etc/modprobe.d/blacklist.conf
modprobe -r mwifiex_pcie
exit

To reverse the process, edit the blacklist file:

sudo nano /etc/modprobe.d/blacklist.conf

Comment out the line you added by placing the symbol # at the beginning of the line like this:

#blacklist mwifiex_pcie

Save and close the text editor.

Finally, some of the USB adapters that you use actually load two conflicting drivers. Let's blacklist the least effective of the two:

sudo -i
echo "blacklist rtl8192cu"  >>  /etc/modprobe.d/blacklist.conf
exit
chili555
  • 61,330
0

This is an update/permanent resolution to the situation. Or at least it was for me. I continued battling with this issue for months trying to get ubuntu 17.10 working on my surface pro 3. nothing was working. I followed the solutions recommended in a previous post and basically used an external wifi adapter which worked OK. The three most annoying parts about it were 1. disabling the network driver as recommended above also disables bluetooth, as the driver handles both. 2. the SP3 only has one built in USB port, so plugging an external wifi driver into it meant i couldn't use the usb for anything else without disconnecting from the internet. 3. having to explain to everyone and their mother why i had a giant antenna sticking out of my one and only usb port was annoying and got old fast.

After months of toiling, I found a solution that works for me. Or rather...solutionS. One of these alone did not do the trick. But the three together made it possibe:

  1. disable mac randomization.

Ubuntu GNOME 17.04: wi-fi not working -- mac address keeps changing?

  1. install/set up NDISwrapper.

NDISwrapper is a wrapper that you can use to wrap windows drivers so that they can communicate more readily with linux OS.

https://www.brighthub.com/computing/linux/articles/27412.aspx#imgn_1

  1. download WICD and DISABLE network-manager:

at first, i tried removing network-manager completely, as was the recommendation by WICD. The problem is, uninstalling the network-manager also uninstalled the unity-control-center. aka no more settings for anything. so i reinstalled unity-control-center just to find out that network-manager was installed with it. The fix? Stop network-manger and disable it, but do not uninstall it.

http://xmodulo.com/disable-network-manager-linux.html

Again, i tried all of these three things on their own and none seemed to fix the issue. They all showed A LITTLE improvement, but nothing great. But like I said, with all three in place now, my wifi is good as new. I have bluetooth and settings and my USB port back. It's hacky as hell, but it works great now. Hope this helps somebody else out there.