Wifi not stable

Hello, after some bigger time, especially under some load (many actualisations, some new download etc.), but sometimes also without special load, my wifi connection stop working… after while it will disconnect and then it will not show any wifi network, its just empty… And then only restart is helpful… Can you help with hardware adjustment?

Its lenovo yoga 300-11iby
sudo lspci | grep Network
02:00.0 Network controller: Intel Corporation Wireless 3160 (rev 93)

Quite often Intel delays with delivering network driver for new kernel.
Try to use LTS kernel

Test WiFi adapter with Realtek chip.

OK, so I had more problems, also with sleeping of system and hybernation. And one day I was thinking - what if everything is connected with small RAM? I have only 4 GB. Maybe there is only small swap. Because also system was quite offten freezing out and it was very strange.

So I looked how many I have swap - only 2 GB. I ment this is the problem and started to try to increase it. After many tries I got broken swap :smiley: So without swap file at all. I was getting angry and started to look for other distro :smiley:

After all I found that there is existing some “zram” which is supposedly much better than standard swap manager which I destroyed succesfully. So I tried to install and I was really surprised that process of setting was much more easy and also WORKING (unlike manuals for standard swap included in OpenSuse - where I got errors and it was not working).

So now I have 4GB zram and every prolem I had (freezing, bad waking up, unstable wifi) was solved and now I am happy with this my OpenSuse. Now I already dont think that this is broken distro, but only that developers dont understand that every computer has no huge RAM and every user is not developer (but can be newbie or focused for work and no for developing his system by himself).

So my idea for developers:

  1. why there is set so small swap space by default?
  2. why there is no dynamic swap which will adjust according to system needs?
  3. why there is no zram instead of standard swap manager?
  4. why there is not some clicking utility for the dumpest users like me to have choise to adjust without braking all the swap? Just click, have possibility to swich swap memory amount or maybe also swap agent…

Is it possible to shift this system closer to perfection? :slight_smile:

Thank you very much guys :+1:

4 GiB minus Video RAM is too little for TW.
Create new thread in Hardware sub-forum if you want to get suggestions about optimisations for your device.

Sorry this is utter nonsense which is not backed by any facts. You are even able to run heavy DEs with 4GB. With lightweight DEs, 4GB is enough…

See also official hardware requirements:

https://get.opensuse.org/tumbleweed/

System Requirements
2 Ghz dual core processor or better
2GB physical RAM + additional memory for your workload
Over 40GB of free hard drive space
Either a DVD drive or USB port for the installation media
Internet access is helpful, and required for the Network Installer

OP has problems.
I had problems with 3 GiB of RAM + BTRFS.
It is possible to use openSUSE with 2 GiB of RAM with CLI as a server. But using DE + web browser at 2 GiB of RAM is too hard.

@palunador Considering zram/zswap/swap: I recommend to read this:
https://www.kernel.org/doc/html/latest/admin-guide/mm/zswap.html
https://www.kernel.org/doc/html/next/admin-guide/blockdev/zram.html
https://www.kernel.org/doc/gorman/html/understand/understand014.html

I think you will find a lot of opinions about what to use on the internet. All have their pros and cons. For machines with little memory it might make sense to use zram but why would you use compression on machines with enough ram to easily run their tasks.
So in the end it’s depending a lot on the needs of your hardware which one to use and as most laptops/PCs nowadays have enough memory and memory is fairly cheap I think there is no real need for distribution developers to adjust to zram or zswap by default.

I personally always just used a normal swap partition. I am not sure if zswap or zram are able to support hibernation as I never tried it.

I also just want to give my opinion/experience on using hardware with 2GB RAM and 32eMMC storage and an Intel Celeron N3350 CPU.

For quite a few years I was running my netbook with this low specs. Regarding BTRFS for me the limitting factor was my low storage space. So, I used ext4 as fs.
It is indeed possible to run Linux smoothly with a DE on such low hardware specifications. Just I didn’t use openSUSE for it. I guess you could, but then you would have to adjust your install quite a bit. Therefore I chose Arch Linux with first Xfce and later LXQt as desktop environment. I managed to run the LXQt setup on less than 700 - 800MB of memory usage when essentially no other workload besides the desktop environment and thunderbird were running.
For browsing the internet (with firefox) and using libre office and such basic stuff it was really smooth.

And I think if you are really low on memory and still want to have something graphical on your display you could use just a window manager.

Just openSUSE is not really designed to fulfill your needs with such low end hardware by default. Which is fine. There are quite a few distros out there with a more minimalistic approach.

@palunador That being said: If you want the comfort and stability of openSUSE and maybe also use some nice but not really memory saving DE I think buying some extra physical memory is worth it.

That’s what I did in the end. I payed about 30€ for 8GB of memory for my netbook. I also upgraded my storage with an SSD. So, with 10GB of memory and 1TB of storage instead of 32GB eMMC life is much more comfortable on openSUSE :wink:

I just looked up your laptop model and found that it’s not possible to upgrade your RAM as it is soldered to the mother board and the yoga 300 doesn’t have a RAM bay. Sorry, then forget my advice to invest in more physical memory.

Maybe there is no real need for distribution developers to adjust to zram or zswap by default. But there is real need to adjust distribution to make it not freezing during basic work with it. And I supposed not only one solution, not only zram.

OK, i thought that everything is already OK, but not… before while I got again falling down the wifi… after restart of computer all ok… after that I started watching movie on Netflix in Firefox… after about 10 minutes system completely freezed…

I mean its something wrong with Linux itself, because in Kubuntu I had similar problems - its why I starting to try OpenSuse… In Windows I had no such issues and I didnt got any freezing - neither single one…

Now freezed again with FF and Netflix - after 8 minutes…

Now other movie 35 minutes without freezing but after these 35 minutes falled down the wifi and again - it was not possible to wake it up so I had to restart the computer…

This time I watched RAM usage and it was all the time 2,6 GB, so fine…

So It looks I have multiple rootcauses and dont know which one…

Can you post the output of
dmesg | grep iwl
to see whih ucode is loaded?

If your kernel version is newer than 4.2 (which it most certainly is) it should be version iwlwifi-3160-ucode-25.30.14.0

dmesg | grep iwl
[ 13.007146] iwlwifi 0000:02:00.0: Detected crf-id 0x0, cnv-id 0x0 wfpm id 0x0
[ 13.007173] iwlwifi 0000:02:00.0: PCI dev 08b4/8270, rev=0x164, rfid=0xd55555d5
[ 13.099290] iwlwifi 0000:02:00.0: loaded firmware version 17.3216344376.0 3160-17.ucode op_mode iwlmvm
[ 13.595019] iwlwifi 0000:02:00.0: Detected Intel(R) Dual Band Wireless AC 3160, REV=0x164
[ 13.646436] iwlwifi 0000:02:00.0: base HW address: 2c:6e:85:47:b2:a6, OTP minor version: 0x0
[ 13.756483] ieee80211 phy0: Selected rate control algorithm ‘iwl-mvm-rs’
[ 13.800563] iwlwifi 0000:02:00.0 wlp2s0: renamed from wlan0
[ 17.511227] iwlwifi 0000:02:00.0: Registered PHC clock: iwlwifi-PTP, with index: 0
[ 255.287656] iwlwifi 0000:02:00.0: RF_KILL bit toggled to enable radio.

Okay, so your firmware is 3160-17.ucode, which is a newer version than what is offered on the link I sent before.

You could try and use the older firmware version (3160-14).

Therefore you download it from the linked version in the intel page: https://wireless.wiki.kernel.org/_media/en/users/drivers/iwlwifi-3160-ucode-25.30.14.0.tgz

You unpack the downloaded archive and copy the file, for example (you of course need to adjust the path to the downloaded file):
sudo cp /home/[your_username]/Downloads/iwlwifi-3160-ucode-25.30.14.0/iwlwifi-3160-14.ucode /lib/firmware

then you need to move the firmware file that is in use out of /lib/firmware e.g.
sudo mv /lib/firmware/iwlwifi-3160-17.ucode.xz /home/[your_username]/

Then you reboot.

After the reboot running dmesg | grep iwl should return soething like that:

dmesg | grep iwl
[   15.071867] iwlwifi 0000:03:00.0: Detected crf-id 0x0, cnv-id 0x0 wfpm id 0x0
[   15.072022] iwlwifi 0000:03:00.0: PCI dev 24fb/2110, rev=0x220, rfid=0xd55555d5
[   15.074094] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-3168-29.ucode failed with error -2
[   15.074160] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-3168-28.ucode failed with error -2
[   15.074519] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-3168-27.ucode failed with error -2
[   15.074580] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-3168-26.ucode failed with error -2
[   15.074631] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-3168-25.ucode failed with error -2
[   15.074673] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-3168-24.ucode failed with error -2
[   15.074718] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-3168-23.ucode failed with error -2
[   15.095935] iwlwifi 0000:03:00.0: loaded firmware version 22.361476.0 3168-22.ucode op_mode iwlmvm
[   16.534259] iwlwifi 0000:03:00.0: Detected Intel(R) Dual Band Wireless AC 3168, REV=0x220
[   16.612690] iwlwifi 0000:03:00.0: base HW address: 30:e3:7a:34:7b:5a, OTP minor version: 0x0
[   16.650859] ieee80211 phy0: Selected rate control algorithm 'iwl-mvm-rs'
[   17.385240] iwlwifi 0000:03:00.0 wlp3s0: renamed from wlan0
[   20.851480] iwlwifi 0000:03:00.0: Registered PHC clock: iwlwifi-PTP, with index: 0

This example is for my own system, but as you can see iwlwifi will start checking for the firmware version that it expects and then go version by version down until it finds the one that is available in /lib/firmware
So, in your case it should load 3160-14.ucode (in my example it’s 3168-22 instead of 3168-29)

With the older firmware in place you can check if the freezing problem is still persistent in order to rule out whether it’s a firmware problem or not.

If you run into problems with your wifi with the older firmware you can move the initial iwlwifi-3160-17.ucode.xz from your /home/-folder or wherever you put it back to /lib/firmware and reboot.

Btw. you don’t have this freezing problem when you are connected via ethernet, right?