58

Currently I'm in a new building of my university. In this building my wifi often breaks down and then restores connection again. This is really irritating since it happens a lot.

Now as a coincidence there were some tech guys running around here and where asking everyone if the wifi was doing fine. I told them that my wifi tears down all the time and then reconnects. They figured out that my wifi is switching all the time between the 2.4 GHz channel and 5 GHz channel. They asked me if I could acces the driver settings of my wireless card. Unfortunately I don't know how to do this is in either Linux or Windows. And unfortunately again they only knew the windows solution xD.

So I hope somebody can tell me how I tell my wifi that it should stay on the 5 GHz network and not disconnect and switch to the 2.4 GHz channel?

-edit-

@arhimed, firstly thank you for your help.

I just tried what you said. It is some what different for me. I can't seem to save the settings when I change the setting and choose to use only the 5 GHz band.

"Network connections"->"Select the appropriate wireless network and click edit"->"In the wireless tab"->"Change the mode from infrastructure to ad-hoc"->"Choose 5 GHz band"

Wireless connection settings panel

However when I want to change the mode from infrastructure to ad-hoc the "save" button tells me that I have to authenticate myself. However I get no pop-up asking me for a password. Using sudo gnome-control-center didn't help either. I could still not save it. Also a error occured then in the terminal:

** (nm-connection-editor:5577): WARNING **: Invalid setting Wireless Security: Security not compatible with Ad-Hoc mode

Hopefully this is some useful info for you to help me further.

10
  • 1
    If possible, please consider closing some of your other open questions by selecting the best answer (if they have one). Consider which answers have been useful and need an upvote. We need users to maintain their questions so that the site can be an effective tool for the next person with your problems. For more details on best practices consider reading the FAQ on asking questions.
    – fossfreedom
    Sep 3, 2012 at 9:43
  • 1
    I haven't tried but I hope that will help you. So, go to network-manager-> edit connections, wireless connections->select you network->Change... Set 'Mode' to 'Special' and frequency to 5GHz.
    – Viktor K
    Sep 3, 2012 at 10:12
  • @arhimed I replied to you in my main post. Hopefully you can help me further with this new info.
    – WG-
    Sep 3, 2012 at 12:42
  • Yeah, that won't help you. Have you tried to connect to your network through terminal?
    – Viktor K
    Sep 3, 2012 at 17:59
  • No because I don't know how to do that. All the info I find about it I find hard to understand.
    – WG-
    Sep 4, 2012 at 8:03

5 Answers 5

39

Run:

$ iwlist wlan0 scanning | grep -C3 <name of your network>

You should find 2 entries for the network, for example:

Cell XX - Address: 11:11:11:11:11:11 // This will be different in your machine
ESSID: "name of your network" // This will be different on your machine
Protocol: IEEE 802.11bgn
Mode: Master
Frequency: 2.437 Ghz

--

Cell XX - Address: 22:22:22:22:22:22 // This will be different on your machine
ESSID: "name of your network // This will be different on your machine
Protocol: IEEE 802.11AC
Mode: Master
Frequency: 5.18 Ghz
  • BSSID for the 5Ghz Network, in this example: 22:22:22:22:22:22
  • BSSID for the 2.4 Ghz Network, in this example: 11:11:11:11:11:11

Now what you do is:

  1. click on 'Network Connections'
  2. 'Edit Connections...'
  3. [Select your network connection] (there could be 2 entries, any will do)
  4. Click Edit
  5. Go to 'Wi-Fi' or 'Wireless' Tab
  6. Click the BSSID Dropdown
  7. Select the BSSID Matching the 5 Ghz Network (22:22:22:22:22:22 in this example)
  8. Switch to the 'General Tab'
  9. Make sure to check the checkbox that is labeled: 'Automatically connect to this network when it is available'
  10. Rename the Connection Name (not the SSID) to 'your network name'_AC
  11. Click Save
  12. If there were 2 entries for 'your network name' in your Network Connections list, proceed with next step, otherwise go to the last step.
  13. Click on the other 'your network name' entry
  14. Click Edit
  15. Go to 'Wi-Fi' or 'Wireless' Tab
  16. Click the BSSID Dropdown
  17. Select the BSSID Matching the 2.4 Ghz Network (11:11:11:11:11:11 in this example) OR leave the BSSID empty if there are multiple other secondary access points
  18. Switch to the 'General' Tab
  19. Uncheck the checkbox that is labeled: 'Automatically connect to this network when it is available'
  20. Set the 'Connection name' to [your network name]_N
  21. Click Save...
  22. Disconnect from your network and re-connect

You should now be connected to the 5Ghz network, and you would have to explicitly do the opposite process in order to connect to the 2.4 Ghz Network.

4
  • ty this was super helpful! works on ubuntu 20.04 as well Jun 19, 2020 at 15:09
  • 4
    -C3 wasn't enough context lines. I had to do -C5 or higher to obtain the line containing the Cell xx line with the BSSID in it. Ex: iwlist wlan0 scanning | grep -C5 my_network_name. Sep 1, 2020 at 5:49
  • 2
    Thx for so detailed answer. Just wanted to note that your network interface may be named differently. In my case it is not wlan0, but wlx0013eff40041. To get the real name you can use iwconfig
    – faiwer
    Apr 23, 2021 at 11:56
  • Where is "Network Connections"?
    – tparker
    Apr 11, 2022 at 14:45
27

Method 1 — for use at home with a single wireless router

First, connect to your basic wifi network under "Infrastructure". Next, click on BSSID. The BSSID you are connected to at that time should appear when you click on that arrow. This feature prevents your computer from switching networks. 2.4 Ghz and 5 Ghz.


Method 2 — roaming on a network with multiple access points like a college campus or public wifi

NOTE: If you used the method above, you will need to do the opposite before you begin. Make sure the BSSID is not set to anything (is blank) so that you can use multiple access-points and roam across the network.

First, you will need to edit the system-connections file that corresponds to your network. For this example, I will use a network named "coffee-shop".

sudo nano /etc/NetworkManager/system-connections/coffee-shop

Now, under the [wifi] section, edit the band field to the following (if band= is not listed, you can insert it on the line below [wifi]):

band=a

This will set the network to use 5 GHz only. If you want to use 2.4 GHz, use band=bg instead.

When you are done editing, press CTRL+o and then press ENTER to save the file and then press CTRL+x to exit nano.

Finally, restart network-manager to apply the changes:

sudo systemctl restart network-manager

Click here for more information.

NOTE: this setting does not exclude you from using wireless n or wireless c (so don't worry), this feature is only used to select 2.4 or 5 GHz

15
  • This won't work if both the 2.4 Ghz and 5 Ghz network connections have the 'Connect automatically when this network is available' checkbox ticked, which is the crux of the problem. Jun 3, 2015 at 12:38
  • 1
    @MarcelValdezOrozco I believe the solution to that problem would be to untic the box of the 2.4 network.
    – mchid
    Jun 4, 2015 at 0:20
  • 2
    Worked for me (as in force it to use 5ghz via BSSID method). I thought Linux wifi driver would have transparent support for using dual band concurrently, but I guess not.
    – kchoi
    Mar 9, 2016 at 7:52
  • 1
    Also works to force 2.4Ghz, which gave me dramatically better range. Jun 15, 2016 at 13:22
  • 1
    F@JesseGlick Yes, lower frequencies travel through solid objects more easily so range is much better on 2.4, however, nearly every radio interference that exists is somewhere near the 2.4 frequency so 5Ghz has the advantage of a less crowded and much less noisy airspace or whatever that is :)
    – mchid
    Jul 29, 2017 at 4:46
6

Change that "Ad-hoc" option to something else, like "Infrastructure" (or a similar menu option). Infrastructure wireless is your typical "lots of devices connecting to a single router" approach, while ad-hoc wireless is intended for a "mesh" of wireless devices with no centralized router.

Being in ad-hoc mode is likely what's causing your problem (and this is further evidenced by the error message you provided).

7
  • 1
    Thank you for your reply. Further I am not in Ad-hoc. The option stands on Infrastructure. In infrastructure mode the wifi changes from band all the time, 2.4 GHz <-> 5 GHz. I want to try to put my settings in Ad-hoc because in that mode I can select which band I want to use. I can't select a band when in Infrastructure mode.
    – WG-
    Sep 14, 2012 at 20:03
  • 2
    Alrighty then... The problem with ad-hoc mode is that it's not compatible with WPA and WPA2 security protocols (hence the error you got). Normally, the channel/frequency is set by the router. You can use iwconfig to set the channel manually. In a terminal, try the following: iwconfig eth0 freq 5G Sep 14, 2012 at 23:04
  • Thank you very much. I will try this monday when I'm on the university. It is indeed possible on the router, but this problem occurs only on the routers when I'm in a certain building at my university. And the IT guys there are not going to configure all the routers just for me ;)
    – WG-
    Sep 15, 2012 at 10:49
  • Hmmm wel I still get disconnected sometimes but I have the feeling that it is a lot less then it used to be.
    – WG-
    Sep 18, 2012 at 8:35
  • 2
    I should probably correct my own comment... eth0 normally points to your wired internet connection, so try iwconfig wlan0 freq 5G instead. Sorry about that. Sep 18, 2012 at 15:51
3

This may work or may not work. Based on my experience, it is inconsistent. On the network manager settings, you can manually enter the BSSID of the AP. You can found out the BSSID using an android application called 'WIFI analyzer'. You can also use other linux based wifi monitoring tools like Kismet, but the easiest way that I found out is using the android application. If you don't know, 5Ghz AP have higher channel number (more than 13). Now, the inconsistency, depending on distro, the BSSID select box may be populated, or you have to input it manually. Either way, enter the BSSID that you wish to connect, and set the name of the network to something you can remember, like "U-WIFI-5Ghz". Now unfortunately, sometimes the network will appear (and you can connect to that specific AP) and sometimes it do not even if you know the AP is close by.

2
  • 1
    you can also find out by simply using one of the following commands: nm-tool or iwlist scan | grep -B 4 "Frequency:5" | grep "Address:" you could also use iwlist scan | grep -B 4 "Frequency:5" you could narrow the results of the first one: nm-tool | egrep 'Freq 5.......' you can even set up an alias for any one of these in your bashrc file to call on any one of these using a single command.
    – mchid
    Oct 14, 2015 at 14:57
  • iwlist scan | grep -B 4 "Frequency:5" then finding my BSSID in wifi->my connection-> edit->identity->BSSID worked.
    – jason m
    Apr 30, 2020 at 19:40
0

Run the following commands, one line at a time in the terminal (CTRL+ALT+T):

echo "options iwlwifi 11n_disable=1" | sudo tee /etc/modprobe.d/iwlwifi.conf
sudo modprobe -rfv iwldvm
sudo modprobe -rfv iwlwifi
sudo modprobe -v iwlwifi

What does this do? The 11n_disable option disables 802.11n features. Adding it to

/etc/modprobe.d/iwlwifi.conf

makes the change persist after reboots (because it will be part of the module config). The modprobe -rfv commands are removing the kernel modules iwldvm and iwlwifi, and finally the last line modprobe -v is adding iwlwifi back in.

To know what those kernel modules are/do, you can run modinfo | grep description, which will tell you the following:

iwlwifi is an Intel(R) Wireless WiFi driver for Linux (generic Intel drivers)

iwldvm is Intel(R) Wireless WiFi Link AGN driver for Linux (more specific drivers)

Other suggestions

Now, check the settings in the router. WPA2-AES is preferred; not any WPA and WPA2 mixed mode and certainly not TKIP. Second, if your router is capable of N speeds, You may have better luck with a channel width of 20 MHz in the 2.4 GHz band instead of automatic 20/40 MHz. I also have better luck with a fixed channel, either 1, 6 or 11, rather than automatic channel selection. After making these changes, you may need to reboot the router.

Not the answer you're looking for? Browse other questions tagged or ask your own question.