I thought I would post my findings on here to help people out
Back in the day when the Nexus 5 was on 4.4 there was a bug in Wi-Fi settings related to optimizing wifi. What I noticed was that in BBS I had very very high Kernel Wakelocks for wlan_rx_wake. It was the highest wakelock so I decided to download Network Log which would tell me where the data is coming from. It turns out that my phone was listening for pings from all over my network, it did not matter where it was from.
I saw that Franco had updated his kernel with wifi patches and after flashing it my issues were solved. I noticed that as soon as I unchecked optimize wifi the issue came back so I had to leave that checked.
in 4.4.1 this bug was solved but you need to keep this option checked. If I uncheck it I get crazy Android OS and Wi-Fi battery drain, after checking this the issue is solved.
So in the long run, check BBS and if you see high wlan_rx_wake use Network Log to determine what is preventing your device from deep sleep. Hope that helps.
one of the biggest rx wakelocks stems from listening to the network for DHCP lease renew requests so on home networks its useful to set static ip addresses
-----------------------
Sent via tapatalk.
I do NOT reply to support queries over PM. Please keep support queries to the Q&A section, so that others may benefit
rootSU said:
one of the biggest rx wakelocks stems from listening to the network for DHCP lease renew requests so on home networks its useful to set static ip addresses
-----------------------
Sent via tapatalk.
I do NOT reply to support queries over PM. Please keep support queries to the Q&A section, so that others may benefit
Click to expand...
Click to collapse
I tried all of that still no luck, it was down to this setting. I tested it last night, setting a static IP does not help you need to hve that setting checked in wifi optimization, i also noticed it only happened on certain networks. it happened at my home not at work or school.
I know it was down to this setting for you. You've resolved your issue. I wrote that for other people because it's the most common fix
-----------------------
Sent via tapatalk.
I do NOT reply to support queries over PM. Please keep support queries to the Q&A section, so that others may benefit
shakuyi said:
I tried all of that still no luck, it was down to this setting. I tested it last night, setting a static IP does not help you need to hve that setting checked in wifi optimization, i also noticed it only happened on certain networks. it happened at my home not at work or school.
Click to expand...
Click to collapse
I still have the issue on 4.4.2 with wifi optimization checked. The only difference is that I havent installed Franco Kernel. On both stock kernel and Faux's kernel this issue is very much still around. Also had a static IP set, and it didn't make much of a difference.
muyoso said:
I still have the issue on 4.4.2 with wifi optimization checked. The only difference is that I havent installed Franco Kernel. On both stock kernel and Faux's kernel this issue is very much still around. Also had a static kernel set, and it didn't make much of a difference.
Click to expand...
Click to collapse
interesting if you let Network Log run for 30 min while the device is asleep what do you see consuming the network? for me it was all internal IP's in my network (like 2 PC's)
shakuyi said:
interesting if you let Network Log run for 30 min while the device is asleep what do you see consuming the network? for me it was all internal IP's in my network (like 2 PC's)
Click to expand...
Click to collapse
I see like a thousand packets all from my router on random ports.
Related
Hey guys,
have you noticed that your device uses up a lot more battery on certain wifi networks (e.g. at work or university)? It is probably caused by the wlan_rx_wake wakelock.
From the wakelocks database:
Rationale: Wifi chip received a packet from somewhere - On a Galaxy S II, lots of these combined with the fact that the device takes 650 msec to resume from suspend and 150 to go back to sleep means that occasional wifi packets coming in will skyrocket Android OS usage. As an extreme example, run the following from a Linux box when wifi sleep policy is "never" and watch your deep sleep percentages plummet, your battery drain, and Android OS skyrocket: ping -i 5 <wifi IP address of phone>
Know actions: Use a sniffer to determine the cause of the traffic.
Click to expand...
Click to collapse
So apparently some other device in the network keeps waking up the Nexus. If the problem occurs in your home network you can easily find out which device is causing the problem by using Shark and Wireshark. You'll get a log that shows every network activity.
Here are some tips from a similiar thread at the SGSII-forums (thanks!):
use a static IP instead of DHCP (you may have to set a static IP every time you sign up in that particular network)
disable IPv6 protocol on your phone - see below
update your router firmware
buy a gaming adapter for your Wifi network that gets the DHCP IP adress, but gives your phone a static IP
optimise router settings: click
Windows network is causing the problem - solution here: click
Change wireless network encryption method, change wifi channel, instead of using auto baseband use only 2.4 or 5GHz baseband (Wi - Fi - advanced - Wi - Fi frequency band)
turn off uPNP in router/AP
t urn off netbios in windows network ("Go to Network and Sharing Center then change adapter settings. Right click on your wireless and select Properties.
Click on the ipv4 and then the properties button. Select Advanced, go to the Wins tab and disable tcp over netbios.")
Thoravukk FAQ tells you: Q. My device not entering deep sleep if i use Wifi?
A: That's not a Kernel issue! It's a Router and (Windows 7) Network problem. Disable IPv6, IP Helper service, shell hardware detection service and the Windows Media Player Network Sharing Service. Source: here
Other apps and devices that can cause the wakelock:
TP Link routers: disable the print server in USB settings
Asus routers: disable AiCloud
disable Dropbox Lan Sync
disable wireless on (HP) printers
disable Canon network scan utility.
Using another kernel might also help to solve this problem: but I haven't tried that yet.
Try out the Franco kernel: http://forum.xda-developers.com/showthread.php?t=2508284
He has merged some wifi driver patches which should adress this problem. It reduced the wakelocks for me to 1 min in over 8 hours on my home network and to 3 min in one hour ony my university network!
So it should be possible to get rid of this problem in your home network.
But what about work or university networks? There are even more devices connected so the problem gets even worse. In Europe we have the Eduroam wifi network at many universities. If I'm connected to this network I get about 20 min wakeup time in one hour. There are a lot of ARP, DHCP and IPv6 request from different sources. Unfortunately you can't change anything about the configuration on your university/school/work network, so we need to find a solution to block these requests on our phone.
A solution for the IPv6 requests might be to disable IPv6 on your phone if you don't use it. In terminal:
Code:
echo 1 > /proc/sys/net/ipv6/conf/wlan0/disable_ipv6
Change the 1 to a 0 if you want to reactivate IPv6. Android resets this setting every time you connect to a network, so you might try Tasker to do this.
I still haven't found a solution for the ARP and DHCP requests though. Any help or input would be appreciated.
Thanks
edit (05/14/14): updated OP with other tips you mentioned
Thanks, this was a useful post. When I am at work on their wifi my phone doesn't go to sleep and definitely drains the battery quickly. Hopefully a better solution can be found.
laxor said:
Hey guys,
have you noticed that your device uses up a lot more battery on certain wifi networks (e.g. at work or university)? It is probably caused by the wlan_rx_wake wakelock.
From the wakelocks database:
So apparently some other device in the network keeps waking up the Nexus. If the problem occurs in your home network you can easily find out which device is causing the problem by using Shark and Wireshark. You'll get a log that shows every network activity.
Here are some tips from a similiar thread at the URL="http://forum.xda-developers.com/showthread.php?t=2133176"] SGSII-forums[/URL] (thanks!):
use a static IP instead of DHCP (you may have to set a static IP every time you sign up in that particular network)
disable IPv6 protocol on your phone (Dorimanx kernels have an option for this in ST tweaks or you can use "Android Firewall" for this
update your router firmware
buy a gaming adapter for your Wifi network that gets the DHCP IP adress, but gives your phone a static IP
optimise router settings: click
Windows network is causing the problem - solution here: click
Change wireless network encryption method, change wifi channel, instead of using auto baseband use only 2.4 or 5GHz baseband (Wi - Fi - advanced - Wi - Fi frequency band)
turn off uPNP in router/AP
t urn off netbios in windows network
Thoravukk FAQ tells you: Q. My device not entering deep sleep if i use Wifi?
A: That's not a Kernel issue! It's a Router and (Windows 7) Network problem. Disable IPv6, IP Helper service, shell hardware detection service and the Windows Media Player Network Sharing Service. Source: here
Other apps and devices that can cause the wakelock:
Dropbox Lan Sync, (HP) Wireless printer, Canon network scan utility.
Using another kernel might also help to solve this problem, but I haven't tried that yet.
So it should be possible to get rid of this problem in your home network.
But what about work or university networks? There are even more devices connected so the problem gets even worse. In Europe we have the Eduroam wifi network at many universities. If I'm connected to this network I get about 20 min wakeup time in one hour. There are a lot of ARP, DHCP and IPv6 request from different sources. Unfortunately you can't change anything about the configuration on your university/school/work network, so we need to find a solution to block these requests on our phone.
A solution for the IPv6 requests might be to disable IPv6 on your phone if you don't use it. In terminal:
Code:
echo 1 > /proc/sys/net/ipv6/conf/wlan0/disable_ipv6
Change the 1 to a 0 if you want to reactivate IPv6. Android resets this setting every time you connect to a network, so you might try Tasker to do this.
I still haven't found a solution for the ARP and DHCP requests though. Any help or input would be appreciated.
Thanks
___
Use the new BBS beta to check your wakelocks.
Click to expand...
Click to collapse
Been having this wakelock as well. Almost all of the packets being picked up by my phone are being sent by my router to random ports. No idea what is really causing it, but it is pretty annoying. Doesnt seem to drain much battery from the device though.
695886915
Apparently this is a known problem. Franco has already merged two fixes from Google in his kernel which reduce the wakelock, but still don't eliminate it completely. But I'm sure that this issue will soon be resolved with custom kernels or even an update from Google.
I'm hoping for this to be fixed too. My N4 didn't exhibit this wakelock, and my N5 is not deep sleeping at all when I'm at work as a result. I'm just using LTE at work, which is okay, but still not the best solution.
Franco Kernel didn´t help at all, since he seem to include all the google wifi patches as well, the official Google update is unlikely to solve the problem... so pissed off by this, eating up my battery so quickly I have to switch off wifi completely (and I hardly have cell data reception here at my workplace) ... sucks!
Thanks finally contained this problem.
Thanks for a great summary of causes and the info I needed to finally contain it. This problem had been dogging me since I got the N5 on my home network.
I tried static IP, no good.
I tried wifi-off on sleep, no good (never got to sleep i guess!!).
I tried forcing 5 GHz, no good.
Finally I followed the advice to Disable IPv6, IP Helper service, shell hardware detection service and the Windows Media Player Network Sharing Service on each Windows PC, and my stay awake time from Android OS plummeted from hours to minutes which I can deal with.
May not work for everyone, but seems to have done it for me. Thanks again.
Thank you for the post. It makes me nervous that I'm getting this wake lock. I previously got it on my GNex and Nexus7 (2012). I tried every method above to fix but got nowhere. For whatever reason my Nexus 4 didn't suffer from this. Hopefully I can figure something out for my new nexus 5
The update to 4.4.1 does not fix this issue. Still getting this wakelock.
Yes. I found the android OS is still killing the battery after updating to 4.4.1
muyoso said:
The update to 4.4.1 does not fix this issue. Still getting this wakelock.
Click to expand...
Click to collapse
Sunkins said:
Yes. I found the android OS is still killing the battery after updating to 4.4.1
Click to expand...
Click to collapse
Wish this would get fixed, as it's my last remaining wakelock issue and the only thing holding me back from getting fantastic battery life.
Sent from my Nexus 5 using xda app-developers app
laxor said:
Hey guys,
have you noticed that your device uses up a lot more battery on certain wifi networks (e.g. at work or university)? It is probably caused by the wlan_rx_wake wakelock.
From the wakelocks database:
So apparently some other device in the network keeps waking up the Nexus. If the problem occurs in your home network you can easily find out which device is causing the problem by using Shark and Wireshark. You'll get a log that shows every network activity.
Here are some tips from a similiar thread at the SGSII-forums (thanks!):
use a static IP instead of DHCP (you may have to set a static IP every time you sign up in that particular network)
disable IPv6 protocol on your phone - see below
update your router firmware
buy a gaming adapter for your Wifi network that gets the DHCP IP adress, but gives your phone a static IP
optimise router settings: click
Windows network is causing the problem - solution here: click
Change wireless network encryption method, change wifi channel, instead of using auto baseband use only 2.4 or 5GHz baseband (Wi - Fi - advanced - Wi - Fi frequency band)
turn off uPNP in router/AP
t urn off netbios in windows network
Thoravukk FAQ tells you: Q. My device not entering deep sleep if i use Wifi?
A: That's not a Kernel issue! It's a Router and (Windows 7) Network problem. Disable IPv6, IP Helper service, shell hardware detection service and the Windows Media Player Network Sharing Service. Source: here
Other apps and devices that can cause the wakelock:
Dropbox Lan Sync, (HP) Wireless printer, Canon network scan utility.
Using another kernel might also help to solve this problem: but I haven't tried that yet.
Try out the Franco kernel: http://forum.xda-developers.com/showthread.php?t=2508284
He has merged some wifi driver patches which should adress this problem. It reduced the wakelocks for me to 1 min in over 8 hours on my home network and to 3 min in one hour ony my university network!
So it should be possible to get rid of this problem in your home network.
But what about work or university networks? There are even more devices connected so the problem gets even worse. In Europe we have the Eduroam wifi network at many universities. If I'm connected to this network I get about 20 min wakeup time in one hour. There are a lot of ARP, DHCP and IPv6 request from different sources. Unfortunately you can't change anything about the configuration on your university/school/work network, so we need to find a solution to block these requests on our phone.
A solution for the IPv6 requests might be to disable IPv6 on your phone if you don't use it. In terminal:
Code:
echo 1 > /proc/sys/net/ipv6/conf/wlan0/disable_ipv6
Change the 1 to a 0 if you want to reactivate IPv6. Android resets this setting every time you connect to a network, so you might try Tasker to do this.
I still haven't found a solution for the ARP and DHCP requests though. Any help or input would be appreciated.
Thanks
___
Use the new BBS beta to check your wakelocks.
Click to expand...
Click to collapse
Thanks for this thread. Not sure if it will help or not but I have done all the things in the op and will report back. Have to start somewhere I guess. Although this isn't totally killing my battery in home .8% per hour will sleeping at night It by far is the biggest thing waking my phone. In 9 hrs I have 45 minutes of wake and 35 come from this. If I can get this under control I an sure I can get a little better battery performance. :good:
HP wireless printer
Hi, I have done everything you have listed, though I am still experiencing the wakelock. I have an HP wireless printer so I think this is the problem. Though, what could I do to stop it from creating the wakelock on my phone? This doesn't list what you need to do for the HP printer. Thanks in advance.
Any recommendations for a good modem/router that will not cause these wakelocks?
Sent from my Nexus 5 using xda app-developers app
For those who have tp link routers and get this wake lock, disable the print server in USB settings. It stopped almost all the RX_wake..
Before stopping I used to get some regularly spaced packets from 192.168.1.1 (router) to 255.255.255.255 UDP 7437 .. Bite completely stopped..
Hit thanks if I've helped you.
gpkumaran said:
For those who have tp link routers and get this wake lock, disable the print server in USB settings. It stopped almost all the RX_wake..
Before stopping I used to get some regularly spaced packets from 192.168.1.1 (router) to 255.255.255.255 UDP 7437 .. Bite completely stopped..
Hit thanks if I've helped you.
Click to expand...
Click to collapse
I might sound like a noob, but where do you find the USB settings to disable the print server?
grumpyfuzz said:
I might sound like a noob, but where do you find the USB settings to disable the print server?
Click to expand...
Click to collapse
in ur router setup page 192.168.1.1(probably)
Kyle C said:
Thank you for the post. It makes me nervous that I'm getting this wake lock. I previously got it on my GNex and Nexus7 (2012). I tried every method above to fix but got nowhere. For whatever reason my Nexus 4 didn't suffer from this. Hopefully I can figure something out for my new nexus 5
Click to expand...
Click to collapse
Have you figured anything out yet? I have also tried everything and still getting this wakelock also.
grumpyfuzz said:
Have you figured anything out yet? I have also tried everything and still getting this wakelock also.
Click to expand...
Click to collapse
Franco kernel working to fix this?
Momotani-Hitoshi said:
Franco kernel working to fix this?
Click to expand...
Click to collapse
It didn't work for me, but it might work for other people.
Hi all,
at my workplace we have a public WLAN for all guest to use, but it seems due to some (mis?)configuration constant DHCPv6 requests are causing lot´s of WLAN_RX_WAKE wakelocks, keeping my nexus 5 alive 93% of the time (almost no deep sleep).
At home on my own WLAN router I don´t have those wakelocks at all...
I have downloaded and ran shark for Android and opened the log file in Wireshark, attached is a screenshot. I´m not a network specialist so all the data makes no sense to me... can anybody give me a hint what this is all about and what I could do about it? I´ve googles and searched on XDA and it seems people are getting around this problem by disabling IPv6 or use a static IP adress, but so far I did not find any of those settings in my Nexus 5 ...
What can I do? Or do I have to live with that?
Thanks for any tips,
Kusie
You might want to check this thread I have already created for this problem.
Damn, missed that, thanks. This thread can be closed then.
Do you leave your wifi on all the time (even if disconnected)? Or do you toggle it only when you know you have wifi access? and do you think it makes a difference to battery life?
I do. I only turn it off when downloads are really slow, to force it to use 3g. It doesn't use much battery at all
Sent from my Nexus 5
Toggle off when I know I won't be using it because it obviously wastes a lot of power when disconnected
-----------------------
Sent via tapatalk.
I do NOT reply to support queries over PM. Please keep support queries to the Q&A section, so that others may benefit
Don't know how much it uses, but think of it this way: wifi automatically connects to connections you've allowed before. Therefore, it is constantly searching for known networks to automatically connect for you.
unvaluablespace said:
Don't know how much it uses, but think of it this way: wifi automatically connects to connections you've allowed before. Therefore, it is constantly searching for known networks to automatically connect for you.
Click to expand...
Click to collapse
Indeed. And those of you who are rooted can check the wifi.supplicant_scan_interval in /system/build.prop
-----------------------
Sent via tapatalk.
I do NOT reply to support queries over PM. Please keep support queries to the Q&A section, so that others may benefit
So as you may guess, i am having trouble with the qcom_rx_wakelock, and no matter how much searching i do i can't find a solution. I am hoping someone here may be able to help.
It occurs only when wifi is turned on, (not currently sure about connected vs unconnected) and is responsible for causing large drain from Android System and Android OS.
I have tried a number of proposed solutions including: clean rom install (sultan's CM13 if it matters), changing radio, ensuring wifi scanning is turned off, and applying an iptables custom script in droid wall.
None of this has worked.
My knowledge of the wakelock is that it is to do with wifi: 1 hypothesis is it relates to broadcast/multicast pings constantly waking the phone, 2nd hypothesis is that it is to do with being on a large scale wifi network with unusual security (i am at uni). One person suggested (in a thread that i can no longer find) that a dev solved it by changing the wifi drivers in his kernel, but i cant do this unless i change kernel i guess?
Below are some screenshots of it effects. Any help in finding a solution would be greatly appreciated!
Get Greenify and ForceDoze from the Play Store. ForceDoze doesn't need any special settings, just enable it. With Greenify, go in and select apps that use data connectivity. This should minimize wifi wakelock.
kenboyles72 said:
Get Greenify and ForceDoze from the Play Store. ForceDoze doesn't need any special settings, just enable it. With Greenify, go in and select apps that use data connectivity. This should minimize wifi wakelock.
Click to expand...
Click to collapse
I tried that and it made little/no difference, also tried amplify, but qcom_rx_wakelock is not listed. With regards to dose I use aggressive dose, I think this is the same? But it did not make any difference.
Sent from my A0001 using Tapatalk
This is a quote from another forum:
That particular wake lock is triggered any time the phone is awoken from deep sleep to send or receive data on wifi. If you are having issues with just one particular wifi network, that is likely DHCP/dynamic IP related. There are reports of issues with certain wifi routers that are using dynamic IP addresses causing DHCP queries to constantly wake the device. The only known work-around is to set a static IP address or use a different router.
Click to expand...
Click to collapse
So, you could try setting the phone's ip to a static ip and see if this minimizes the issue.
Edit: Forgot you were on university's wifi, may not be able to set a static ip, unless you set the last 3 numbers to a very high number. Ex: 192.168.1.900, if the router(s) are set up to assign that high.
kenboyles72 said:
This is a quote from another forum:
So, you could try setting the phone's ip to a static ip and see if this minimizes the issue.
Edit: Forgot you were on university's wifi, may not be able to set a static ip, unless you set the last 3 numbers to a very high number. Ex: 192.168.1.900, if the router(s) are set up to assign that high.
Click to expand...
Click to collapse
Ok, thanks! I have just come home today so will see if it stops on my home wifi, but will be back in uni on monday so will check the static IP idea then and report back, would your example address be appropriate, or do i need a more specific address?
captaindyson said:
Ok, thanks! I have just come home today so will see if it stops on my home wifi, but will be back in uni on monday so will check the static IP idea then and report back, would your example address be appropriate, or do i need a more specific address?
Click to expand...
Click to collapse
The above ip is just an example.
Go to settings > wifi > 3 dots in upper right > advanced. now scroll all the way down and see what your ip is currently and write it down.
Go back to main wifi menu and long press on the connected wifi and choose modify network
Expand advanced options > tap ip settings > choose static > enter in the same ip you wrote down or change the last 3 digits and save
Note: when you tap on the box to enter ip, an ip will already be showing, just start typing and it will disappear.
@captaindyson
Did you find any solution?
I'm facing same problem on oneplus 3
Prince Chandela said:
@captaindyson
Did you find any solution?
I'm facing same problem on oneplus 3
Click to expand...
Click to collapse
Hi, this was quite some time back so i don't remember all the details of when exactly the problem stopped, but i don't have the issue any more. The only things to have changed are that i am now on jgcaaps CM14 as opposed to sultan, and perhaps the uni had changes things on their end? i don't know.
If you are having the same issue then try the things i mention in the first post, and the solution offered in this thread, and if that does not work then maybe change ROM/Kernel?
I'm afraid that is about all the help i can give
captaindyson said:
Hi, this was quite some time back so i don't remember all the details of when exactly the problem stopped, but i don't have the issue any more. The only things to have changed are that i am now on jgcaaps CM14 as opposed to sultan, and perhaps the uni had changes things on their end? i don't know.
If you are having the same issue then try the things i mention in the first post, and the solution offered in this thread, and if that does not work then maybe change ROM/Kernel?
I'm afraid that is about all the help i can give
Click to expand...
Click to collapse
Thank You!
captaindyson said:
Hi, this was quite some time back so i don't remember all the details of when exactly the problem stopped, but i don't have the issue any more. The only things to have changed are that i am now on jgcaaps CM14 as opposed to sultan, and perhaps the uni had changes things on their end? i don't know.
If you are having the same issue then try the things i mention in the first post, and the solution offered in this thread, and if that does not work then maybe change ROM/Kernel?
I'm afraid that is about all the help i can give
Click to expand...
Click to collapse
Prince Chandela said:
Thank You!
Click to expand...
Click to collapse
Hey!
I'm having the same issue (having WiFi on drains 2-4% per hour, turned it off last night, didn't lose one single battery percent in 7+ hours), how did you resolve the issue?
Lada333 said:
Hey!
I'm having the same issue (having WiFi on drains 2-4% per hour, turned it off last night, didn't lose one single battery percent in 7+ hours), how did you resolve the issue?
Click to expand...
Click to collapse
Mine was a hardware issue.
You can try to flash complete stock firmware "this is different" than downloading a Rom and flashing via TWRP.
Here's the link https://drive.google.com/file/d/0B1NaxDX6t9GrYm9CMWZiSmh1VmM/view?usp=sharing
Please read this article first https://forum.xda-developers.com/oneplus-3/how-to/unbrick-phone-msmdownloadtool-v3-0-6-t3575801
Two weeks felt like two years when my phone suddenly started acting odd. High CPU usage, 2x battery drain compared to before, phone heating up while doing simple tasks drove me insane. I thought there might be something wrong with the phone but couldn't find anything so I sent it to the customer service center. All they did was factory reset, installed the latest stock OS, and sent it back which didn't solve my issue.
So I rooted the phone, installed a custom ROM and the problem was still there. I lost the tiny bit of hope I had left and concluded that it's a hardware issue and I might have to buy a new device. Two days later I installed the Better Battery Stats app and kept my phone idle overnight with wifi on.
The next day I finally found out what's been eating my battery. In BBS under Kernel wake-locks, I saw qcom_rx_wakelock was on for 8 straight hours, as long as my wifi was on. Checked the CPU states on the FK Kernel manager and found out the phone never went to deep sleep, not for a second! Also, there was that idle wifi usage.
So I downloaded the Network Log app and kept logging on the next night. 9 hours passed, none of my apps used the internet but the kernel used almost 500 mbs in 9 hours! So that's where my wakelock was coming from.
I went to my friend's house and used his wifi for a few hours to identify what's going on and I was surprised to see there was no battery drain, low CPU usage, and zero idle wifi usage. For a moment there everything seemed to went back to normal. When I came back to the school dormitory the nightmare started again.
I started scouring on the internet and I found this which led me to this terrific post!
This comment explains everything!
To summarize, the phone was going crazy because of wifi multicast, and arp flooding. I couldn't do anything about it as I was in the university's public wifi. You can disable multicast by going to the router page and turning off wifi multicast from IGMP snooping setting. But it was impossible for me cause school won't allow me to change anything and even if I complain they won't care.
So I decided to fix it by adding some of the Pixel 3's WCNSS_qcom_cfg.ini properties to my phone's WCNSS_qcom_cfg.ini which I located in the vendor/etc/wifi/ as r/skanadian recommended in the second post which took my qcom_rx wakelock to 19%, way less compared to 86% before.
This is a step-by-step guide to reducing battery drain -
• Backup your phone's WCNSS_qcom_cfg.ini in case something go wrong. I found it in system/vendor/etc/wifi/here
It might be different for you depending on what Rom or device you are using. The filename will be the same but the location might be different.
• Get a text editor. Mixplorer is recommended as it helps to search properties quickly with its find feature.
• Open your devices WCNSS_qcom_cfg.ini using Mixplorer and keep it open. Alternatively, you can copy it to a different folder on your phone. I suggest the second one cause it's better than directly editing the file from the system.
• Go to this page
• Go to your browser option and select find in page to search. Search for the word "offload" on that page.
• Copy all the lines related to offload one by one and replace them on your devices WCNSS_qcom_cfg.ini that you opened using Mixplorer.
• If there isn't anything to replace simply add those lines. Don't forget to hit the save button while doing that.
• After that, search for these properties on your WCNSS_qcom_cfg.ini and set them as I did below
RoamRssiDiff=3
g11dSupportEnabled=0
gEnablePowerSaveOffload=5
gRuntimePM=1
RTSThreshold=1048576
gMCAddrListEnable=1
gActiveMaxChannelTime=40
gActiveMinChannelTime=20
gMaxConcurrentActiveSessions=2
If you don't see one of these to replace in your WCNSS_qcom_cfg.ini you should add it.
• Now reboot your phone, give it some time and see if the battery improves. If everything remains the same then go to WCNSS_qcom_cfg.ini using Mixplorer again, find BandCapability, and set it like this -
BandCapability=1
It will disable 5ghz from your phone. I found out most companies release their phones with bad wifi drivers which don't handle the 5ghz wifi band appropriately. Lack of power-saving and not blocking multicast requests properly leads to higher CPU usage and bad battery life.
Again you can set the BandCapability=2 if you want to use 5ghz mode only. If you have a good wifi driver, the battery drain might come from switching between 2.5 and 5ghz so keeping on one of them helps.
• Why qcom_rx wakelock and what is the best fix?
It can occur for several reasons.
- Wifi multicasting. Multicasting can be disabled from IGMP snooping on router settings. You don't need multicasting in your home network at all. But when you're on office wifi or school wifi, it does improve the speed slightly by reducing data loss and interference. It also can be solved the same way but if your school management is like mine, then they might not care if your laptop or phone burns.
- DHCP timers
- A software bug from server-side
- Band switching
- Even interference, if you have a public network with a lot of phones and PCs
There are some more reasons I can not remember now. The best way to fix it is to build a custom kernel with WLAN and qcom_rx blockers/limiters e.g. Franko Kernel.
But sadly a lot of us will never have that unless we make a kernel for ourselves. So as of now, this is the solution I could come up with.
My knowledge of this sector is very little. It would be great if you all could help me get rid of this problem.
I would love it if there was a feature built-in on Android OS to block some kernel wake-locks.
OnePlus phones allow you to turn off multicasting from Developer Options but that makes little to no difference depending on what wifi you are using.
• Very Important :
Depending on you wifi, you can try setting hostArpOffload=0 and hostNsOffload=0
or you can try setting both to 1. Use whichever improves the battery backup. Don't forget to reboot after changing anything.
If you are an expert, please help us. Cause these wakelocks aren't going anywhere. They will give some of us many more sleepless nights.
Thank you for reading. Have a good day!
For those who don't want to change settings they don't understand:
RoamRssiDiff: The difference in signal strength required before phone will switch to a new Access Point. Measured in -dbs. 3 means it will switch APs if the signal strength is 3dbs better than the one in use.
g11dSupportEnabled: WIFI 802.11d
gEnablePowerSaveOffload: Level of Powersave
gRuntimePM: Runtime Powermanagement
RTSThreshold: How long to wait before asking to send wifi packets. Should be as high as possible, only lowered if you have wifi dropouts.
gMCAddrListEnable=1: Drops all Multicast frames except for ARP. You don't want to disable ARP entirely or your internet will break, so don't lower this to 0.
gActiveMaxChannelTime: Time spent scanning.
gActiveMinChannelTime: Ditto
gMaxConcurrentActiveSessions: Self-explanatory
While looking this up I also found gNeighborLookupThreshold or RoamLowRssiThreshold: The signal strength at which the phone starts looking for a new AP (the step before RoamRssiDiff becomes relevant). Typical values are 65-80. Changing this might help too if your phone is switching AP too often or not often enough.
Thanks for this, my device was also affected by this (though not as badly as yours) I've just disabled Multicast from my router.
TrenchFullOfSlime said:
For those who don't want to change settings they don't understand:
RoamRssiDiff: The difference in signal strength required before phone will switch to a new Access Point. Measured in -dbs. 3 means it will switch APs if the signal strength is 3dbs better than the one in use.
g11dSupportEnabled: WIFI 802.11d
gEnablePowerSaveOffload: Level of Powersave
gRuntimePM: Runtime Powermanagement
RTSThreshold: How long to wait before asking to send wifi packets. Should be as high as possible, only lowered if you have wifi dropouts.
gMCAddrListEnable=1: Drops all Multicast frames except for ARP. You don't want to disable ARP entirely or your internet will break, so don't lower this to 0.
gActiveMaxChannelTime: Time spent scanning.
gActiveMinChannelTime: Ditto
gMaxConcurrentActiveSessions: Self-explanatory
While looking this up I also found gNeighborLookupThreshold or RoamLowRssiThreshold: The signal strength at which the phone starts looking for a new AP (the step before RoamRssiDiff becomes relevant). Typical values are 65-80. Changing this might help too if your phone is switching AP too often or not often enough.
Click to expand...
Click to collapse
Cool!
There are some other wakelocks that's bothering me more than qcom_rx and I have no idea what they are!
Could you please tell?
Mario3DS said:
Thanks for this, my device was also affected by this (though not as badly as yours) I've just disabled Multicast from my router.
Click to expand...
Click to collapse
Sadly I'm on school wifi and can't do anything about it!
lpass is a Qualcomm audio subsystem for things like voice based wakeup, and IPCRTR (inter-process communication router) is just how different processes on your phone communicate with each other.
Others have reported these wakelocks too, almost always when they have a wifi/cell connection. Maybe it has to do with voice assistants communicating with their home servers?
TrenchFullOfSlime said:
lpass is a Qualcomm audio subsystem for things like voice based wakeup, and IPCRTR (inter-process communication router) is just how different processes on your phone communicate with each other.
Others have reported these wakelocks too, almost always when they have a wifi/cell connection. Maybe it has to do with voice assistants communicating with their home servers?
Click to expand...
Click to collapse
Well
I asked a kernel dev and he gave exactly the same explanation you gave me. He also said these are necessary and doesn't drain battery too much.
I am on a custom kernel now and wlan, qcom_rx wls are gone.
Thanks for the help
With the new kernel, I'm not seeing Lpass wakelocks much. They are there but limited.
TrenchFullOfSlime said:
lpass is a Qualcomm audio subsystem for things like voice based wakeup, and IPCRTR (inter-process communication router) is just how different processes on your phone communicate with each other.
Others have reported these wakelocks too, almost always when they have a wifi/cell connection. Maybe it has to do with voice assistants communicating with their home servers?
Click to expand...
Click to collapse
I see you've gained quite some knowledge regarding wakelocks. Your explanation was simple and easy to grasp. Could you please guide me to a thread where I can learn more about it?
Thank you so much
I just googled all the terms. Qualcomm publishes some of its stuff (source code and .ini files) with comments, others were referenced in AOSP sources.
Thanks for posting this, with my pixel 4a setting "hostArpOffload" to 0 solved it. NETLINK wakelok are much less and no battery drain.
Although on onePlus 7 pro which I've rooted few days ago none of this is working and NETLINK wakelok is draining battery at 2-3% per hr.
I'll try flashing a different ROM and If found any fix will post it here.
Device1 : Pixel 4a | LineageOS 18.1 | microG
Device2 : OnePlus 7pro | LineageOS 18.1 | microG
Edit : There are many multicast requests and NETBIOS requests too and looks like NETBIOS requests are coming from all the windows machines which are connected via Access point.
Edit:
Tried packet capture and Router is just flooding network with Multicast and ARP traffic.
I'm in the same situation as you since I live in University Campus so no router access, Have no idea how to solve this now.
A viable option is maybe buy your own router then use it as an extender and block all these garbage requests but no idea in extender mode will you be able to block stuff or not.
seated_singer said:
Thanks for posting this, with my pixel 4a setting "hostArpOffload" to 0 solved it. NETLINK wakelok are much less and no battery drain.
Although on onePlus 7 pro which I've rooted few days ago none of this is working and NETLINK wakelok is draining battery at 2-3% per hr.
I'll try flashing a different ROM and If found any fix will post it here.
Device1 : Pixel 4a | LineageOS 18.1 | microG
Device2 : OnePlus 7pro | LineageOS 18.1 | microG
Edit : There are many multicast requests and NETBIOS requests too and looks like NETBIOS requests are coming from all the windows machines which are connected via Access point.
Edit:
Tried packet capture and Router is just flooding network with Multicast and ARP traffic.
I'm in the same situation as you since I live in University Campus so no router access, Have no idea how to solve this now.
A viable option is maybe buy your own router then use it as an extender and block all these garbage requests but no idea in extender mode will you be able to block stuff or not.
Click to expand...
Click to collapse
OP 7 pro is the device you mentioned? I think it has custom kernels with bult in wakelock blockers that automatically blocks wlan, netlink and qcom rx.
Edit: Netlink can be blocked by using Custom kernel others wakelocks are due to ARP network flood. Turning it off from WCNSS_qcom_cfg or blocking introduces another problem of few seconds delay in connection ( due to ARP Resolving issue ) when switching from one access point to another ( only when automatic ) and since I do it quite often when roaming my University campus it's a hassle.
One way to mitigate this ( if you need to keep ARP offloading off ) is by using static IP, worked for me and my roommate too, but not viable since you need root. Finally I have set up my own router, checked and there were no wakelock.
Few of my friends are also facing this battery drain issue not on all Access points but some maybe after complaining authority will fix this.
Note : Netlink is only showing on Android 11/12 with other versions there are other wakelocks.
seated_singer said:
Netlink can't be blocked nor does it show since It's a part of kernel itself, here now about other two they are due to ARP network flood. Turning it off from WCNSS_qcom_cfg or blocking introduces another problem of few seconds delay in connection ( due to ARP Resolving issue ) when switching from one access point to another ( only when automatic ) and since I do it quite often when roaming my University campus it's a hassle.
One way to mitigate this ( if you need to keep ARP offloading off ) is by using static IP, worked for me and my roommate too, but not viable since you need root. Finally I have set up my own router, checked and there were no wakelock.
Few of my friends are also facing this battery drain issue not on all Access points but some maybe after complaining authority will fix this.
Note : Netlink is only showing on Android 11/12 with other versions there are other wakelocks.
Click to expand...
Click to collapse
I have NetLink blocked from kernel.
Some of this problems are impossible to fix from phone. So I contacted school management. They didn't believe me at first then I went to the head office and showed them with Network Log app that records every single packet.
A week later they fixed it. Contact your authority and see if it helps.
Thanks for the info mate, edited. Never thought I have to deal with this stupid WiFi problem.
RyanCr7 said:
Two weeks felt like two years when my phone suddenly started acting odd. High CPU usage, 2x battery drain compared to before, phone heating up while doing simple tasks drove me insane. I thought there might be something wrong with the phone but couldn't find anything so I sent it to the customer service center. All they did was factory reset, installed the latest stock OS, and sent it back which didn't solve my issue.
Thank you for reading. Have a good day!
Click to expand...
Click to collapse
Thanks for sharing, same thing happened to me..
Reading this post and turning off Multicast on both my wifi APs worked!
Just wanted to say that following this advice with all the Offload parameters, my wifi wakelocks have pretty much vanished so far on my nexus 4, i was getting something like 14000 wakelocks in battery guru. Thank you.
I can't understand why they don't specify what commands work for what Qualcomm chipset, since even though that is a newer phone, they still work on an older WiFi chipset, I've been mixing and matching for years.
KitsuneFoxy said:
Just wanted to say that following this advice with all the Offload parameters, my wifi wakelocks have pretty much vanished so far on my nexus 4, i was getting something like 14000 wakelocks in battery guru. Thank you.
I can't understand why they don't specify what commands work for what Qualcomm chipset, since even though that is a newer phone, they still work on an older WiFi chipset, I've been mixing and matching for years.
Click to expand...
Click to collapse
I'm glad it worked for you.