Skip to content

Instantly share code, notes, and snippets.

@jjsanderson
Last active April 20, 2023 17:25
Show Gist options
  • Star 62 You must be signed in to star a gist
  • Fork 7 You must be signed in to fork a gist
  • Save jjsanderson/ab2407ab5fd07feb2bc5e681b14a537a to your computer and use it in GitHub Desktop.
Save jjsanderson/ab2407ab5fd07feb2bc5e681b14a537a to your computer and use it in GitHub Desktop.
Installing Network Manager on Raspbian 2020-02-05

Installing Network Manager on Raspbian 2020-02-05

NOTE:
This guide was written more than two years ago, which in Pi years means it's now graduated college, or something. Inevitably, it's at least a little out of date, and it may even be entirely misleading. There are several helpful suggestions in the comments (thanks everyone), and most recently a report that what's here plain doesn't work on current (early 2022) Raspbian. Which isn't even called 'Raspbian' any more.
As of Jan 2022 I'm partially back in my office-which-has-access-to-eduroam, and I do have a need to build up a fresh Pi desktop. If and when I get that working I'll update this guide. In the meantime: good luck, and please leave a comment to report success or failure.
(June 2022) Nope, I still haven't actually tried any of this myself. However, I have had to troubleshoot eduroam wifi on my Linux ThinkPad. As of Ubuntu 22.04 it would no longer connect. This Stack Exchange answer explains why, and the steps necessary to re-enable some old and busted negotiation stuff to get it going again. I've had to repeat the fix on a fresh Pop! OS (22.04) install. I've no idea if the same issue might arise with Raspberry Pi OS, but at some point it likely will so I'm pasting the link here to remind myself of it.
(September 2022) It looks like the latest release of Raspberry Pi OS now offers Network Manager as an option. You still have to enable it, but that's now integrated with raspi-config, which will hopefully render this guide redundant.

OLD AND PROBABLY OBSOLETE NOTES:

Default Raspbian is not able to connect to wifi networks using corporate security setups, including eduroam. However, the issue is that the packaged networking control widget does not expose the relevant security features, rather than any underlying hardware limitation. The solution has long been to install Network Manager and configure it to handle the wifi interface.

Unfortunately, previous installation approaches didn't work for me on the Raspbian 2020-02-06 image. Following a fresh install, the below is what I did to make it work. Note that this is actually simpler than previous recipes.

Install packages

sudo apt update
sudo apt install network-manager network-manager-gnome

Configure dhcpcd to ignore wlan0

Check /etc/network/interfaces; this should be empty except for an include from /etc/network/interfaces.d (which is in turn empty).

Edit /etc/dhcpcd.conf, add line:

denyinterfaces wlan0

Back at the prompt, at this point I did sudo systemctl restart dhcpcd. Which probably isn't strictly necessary, since we're shortly going to reboot anyway.

Configure Network Manager to control wlan0 and assume dhcp duties

edit /etc/NetworkManager/NetworkManager.conf:

[main]
plugins=ifupdown,keyfile
dhcp=internal

[ifupdown]
managed=true

Restart

sudo reboot

Done

At this point, you should have two wifi widgets in the menu bar: the default Raspbian one, showing two red crosses and 'No wireless interfaces found' when clicked, and Network Manager with a full pull-down menu. Once a wifi ssid is selected, the connection dialogue should expose full security settings (PEAP, etc.), allowing access to a wider range of networks.

You can remove the now-defunct default wifi widget by right-clicking the menubar and selecting 'Panel Settings -> Panel Applets'.

Alternatives

Thanks to @aallan for this: it's also possible to bypass all the above and edit wpa_supplicant.conf directly. For eduroam, for example:

network={
  ssid="eduroam"
  scan_ssid=1
  key_mgmt=WPA-EAP
  eap=PEAP
  identity="your_username"
  password="your_password" phase1="peaplabel=0"
  phase2="auth=MSCHAPV2"
}

You can combine this with dropping a wpa_supplicant.conf file in /boot to have the Pi connect on boot, which is particularly useful for headless Pis. Alasdair has a more detailed write-up.

@kevin201
Copy link

I have been using vnStat and its php gui. If you only need a simple output, it does the job well.

https://humdi.net/vnstat/
https://www.tecmint.com/vnstat-php-frontend-for-monitoring-network-bandwidth/

https://imgur.com/Zad1dZR

@joselucci
Copy link

joselucci commented Feb 10, 2022 via email

@Klaaktu
Copy link

Klaaktu commented Apr 10, 2022

Is there a package to uninstall to remove the "Wired & Wireless Network" icon, besides the menu setting?
What I did:

  1. sudo apt purge dhcpcd5
  2. sudo apt install network-manager network-manager-gnome
  3. Reboot

@kevin201
Copy link

I seem to recall I just removed it from the task bar, using "Add/Remove Items".

@jjsanderson
Copy link
Author

@Klaaktu Sorry, missed your comment. I did this to remove the defunct menubar item:

You can remove the now-defunct default wifi widget by right-clicking the menubar and selecting 'Panel Settings -> Panel Applets'.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment