过程“IRQ / 288-WCD9xxx”排水电池,如何停止它? -- battery 领域 和 battery-life 领域 和 processes 领域 和 services 领域 android 相关 的问题

Process “irq/288-wcd9xxx” draining battery, how to stop it?


简体版||繁體版
1
vote

问题

中文

我在Android 7下使用了冒机2,在Android 7下,(构建号码: fp2_sibon-userdebug 7.1.2 19.11.2 sibon-24df0be9 ),最新。我的电池系统地失去了50%至90%过夜,并且在尝试过各种各样的事情后,我的兄弟在终端(使用Termux)中检查 top 命令是使用CPU的进程。命名为 irq/288-wcd9xxx 的过程永久使用15-20%的CPU,这可以解释为什么我的电池在12小时内死亡。这是我得到的屏幕截图。

屏幕截图顶部命令

作为 kill kill -9 对它绝对没有影响(运行命令时似乎工作,但过程仍然在之后),有没有人有任何关于它是什么,以及如何杀死它,或停止它?

编辑:

谢谢Irfan Latif的详细答案,我的兄弟和我开始看看这一点,目前,没有太大改进:

命令 grep -rI $(readlink /proc/$(pgrep -f irq/288-wcd9xxx)/exe) /*/etc/init/ /init.*.rc 确实不会产生任何输出,并且ppid为2,所以在想到时,它似乎是一个内核线程。
(我们仍然看看 getprop | grep init.svc. 列表,并尝试停止 audiod 只是看,但它没有改变任何东西。)

因为这款手机是一个展望(模块化电话),我们可以删除嫌疑人的硬件并重新启动,看看它是否改变了任何东西(我发布的这个冒名的博览会线程的建议,实际上已经说这是一个"内核进程" ,哈德恩' t理解含义:它的硬件中断来自音频编解码器)。
但是删除硬件似乎也没有改变任何东西,也许交换将工作(我的兄弟拥有同一部手机 - 在不同的Android版本 - 我们下次见面时尝试),但在我们见面),但在这个阶段,我们怀疑我们怀疑它。

最后,我们将尽快尝试您的建议来控制CPU的过程,也许它将是一个临时修复,但现在我的兄弟似乎需要完整的系统重新安装,从我们所做的那一刻起了安装(标准缩放电话打开操作系统安装),电池始终出现过度排水。

p.s。另一个进程 irq/195-ngd_sli ,似乎永久地吃了5到7%。我们没有得到很多关注它,但它似乎现在就像异常一样;我们也会挖掘这个。

english

I'm using a Fairphone 2 with Fairphone open OS, under Android 7, (build-number: fp2_sibon-userdebug 7.1.2 19.11.2 sibon-24df0be9), up to date. My battery loses systematically 50% to 90% overnight, and after having tried all sorts of things to stop it, my brother checked in a terminal (using Termux) with the top command which processes were using the CPU. A process named irq/288-wcd9xxx uses 15-20% of the CPU permanently, which could explain why my battery simply dies in 12 hours. Here's a screenshot of what I get.

Screenshot top command

As kill or kill -9 has absolutely no effect on it (it seems to work when running the command, but the process is still there afterwards), does anyone have any idea about what it is, and how to kill it, or stop it?

EDIT:

Thank you Irfan Latif for your detailed answer, my brother and me started having a look into this, and for the moment, not much improvement:

The command grep -rI $(readlink /proc/$(pgrep -f irq/288-wcd9xxx)/exe) /*/etc/init/ /init.*.rc indeed doesn't yield any output, and ppid is 2, so as you thought, it appears to be a kernel thread.
(We still had a look at the getprop | grep init.svc. list, and tried stopping audiod just to see, but it didn't change anything.)

As this phone is a Fairphone (modular phone), we can remove the suspect hardware and reboot to see if it changes anything (suggestion by this fairphone thread I posted too, actually already saying it's a "kernel process", hadn't understood the implications: It's hardware interrupts coming from the audio codec).
But removing hardware didn't appear to change anything either, maybe swapping will work (my brother has the same phone xe2x80x92with a different android versionxe2x80x92, we'll try next time we meet), but at this stage we doubt it.

Last, we will try soon your suggestions to control the CPU usage of the process, maybe it will be a temporary fix, but this now seems to my brother to need a full system re-installation, as from the moment we did the installation (the standard fairphone open OS install), the battery always appeared to be excessively draining.

P.S. Another process, irq/195-ngd_sli, seems to be eating up as well 5 to 7% permanently. We hadn't paid much attention to it, but it seems now just as abnormal; we'll dig this too.

           

回答列表

1
 
vote

irq 看起来有关硬件中断 wcd9xxx 是一系列Qualcomm AQSTIC音频编解码器。所以显然<代码> ABCDEFGHIJKLMNABCDEFGHIJKLMN2 进程正在运行,以支持您的设备上的音频功能。可执行文件必须是闭合源二进制斑点的,因此您可以做任何事情来修复它,除了(如果已由某人修复,或)升级/降级ROM或停止服务。

作为 kill kill -9 对它绝对没有影响(运行命令时似乎工作,但过程仍然在之后),有没有人有任何关于它是什么,以及如何杀死它,或停止它?

该过程必须作为由硬件/ SoC供应商定义的本机服务中的一些 init .rc 文件。因此,如果杀死,它将继续重新启动。为了正确地停止服务,您需要找到它的名称。首先通过PID获取可执行路径,然后通过搜索所有 .rc 文件:

  ~# grep -rI $(readlink /proc/$(pgrep -f irq/288-wcd9xxx)/exe) /*/etc/init/ /init.*.rc   

您可以通过查看 running 状态来确认相同的服务名称 wcd9xxx0 命令。要停止服务,请使用以下任何命令:

  wcd9xxx1  

这需要在每次重新启动时重复。或者您可以编辑相关 wcd9xxx2 文件以删除服务。

如果它导致不工作的东西,另一种可能性是尝试通过应用一些限制来控制其CPU使用率。 wcd9xxx3 (如果内核支持)。

编辑:

我刚注意到文件名不能斜杠( wcd9xxx4 )。所以<代码> ABCDEFGHIJKLMNABCDEFGHIJKLMN15 必须是中断处理的内核线程。这不是明显的,但你可以检查其父PID( abcdefghijklmn16 必须是 wcd9xxx7 ),也没有内存分配( wcd9xxx8 )表示它不是a用户空间进程。所以问题在于您的音频硬件或内核驱动程序(请参阅此答案)。在后一种情况下,OEM的更新内核将解决问题。

解决方法可以是使用 wcd9xxx9 irq/288-wcd9xxx0 irq/288-wcd9xxx1 irq/288-wcd9xxx2 irq/288-wcd9xxx3 (如果内核支持): irq/288-wcd9xxx4 irq/288-wcd9xxx5 。< / p>

 

irq looks something about hardware interrupts and wcd9xxx is a series of Qualcomm Aqstic audio codecs. So apparently irq/288-wcd9xxx process is running to support audio functionality on your device. The executable must be closed source binary blob, so there's nothing you can do to fix it, except (if already fixed by somebody, or) upgrading / downgrading the ROM or stopping the service.

As kill or kill -9 has absolutely no effect on it (it seems to work when running the command, but the process is still there afterwards), does anyone have any idea about what it is, and how to kill it, or stop it?

The process must be running as a native service defined by hardware / SoC vendor in some init's .rc file. So it will keep on restarting if killed. In order to properly stop the service you need to find its name. First get executable path from PID and then find service by searching through all .rc files:

~# grep -rI $(readlink /proc/$(pgrep -f irq/288-wcd9xxx)/exe) /*/etc/init/ /init.*.rc 

You can confirm the same service name by looking at running status in getprop | grep init.svc. command. To stop the service use any of these commands:

~# stop <service_name> ~# setprop ctl.stop <service_name> 

This needs to be repeated on every reboot. Or you may edit the related .rc file to remove the service.

If it results in something not working, another possibility is to try controlling its CPU usage by applying some limitation e.g. cgroups (if kernel supports).

EDIT:

I just noticed that a file name cannot have a slash (/). So irq/288-wcd9xxx must be a kernel thread for interrupt handling. It's not evident but you can check its parent PID (ppid must be 2) and also no memory allocation (0K) indicates that it's not a userspace process. So the problem is with your audio hardware or in-kernel driver (see this answer). In latter case again an updated kernel from OEM would fix the problem.

A workaround can be to control CPU usage of real-time process using chrt: chrt -r -p 1 $(pgrep -f irq/288-wcd9xxx) or chrt -f -p 1 $(pgrep -f irq/288-wcd9xxx) or renice or cgroups (if kernel supports): cpu or cpuset.

 
 

相关问题

2  ICSService进程做了什么?  ( What does the icsservice process do ) 
在运行服务下,我看到 icsservice 或long name com.android.samsung.icsservice 。那个过程做了什么?我正在争论删除它。 注意我有一个AT&amp; T Samsung Captivate(Galaxy S) ...

5  启动Services [重复]  ( Start services at boot ) 
这个问题已经在这里有一个答案: 打开启动/启动后的应用程序 (1答) 关闭...

1  在退出应用程序后,WhatsApp MessionService始终始终丧失  ( Whatsapp messageservice is always killed shortly after exiting the app ) 
几天前我注意到我不再收到WhatsApp消息,直到我手动启动应用程序,这是待定消息一次交付时。 我通过监视应用程序管理器中的 abcdefghijklmncom.whatsapp.messaging.MessageService 来开始调查。 这就是它首先看起来像什么,在我退出whatsapp之后: 这是几分...

3  如何在启动时运行可执行文件并将其保持运行?  ( How to run an executable on boot and keep it running ) 
我有一个来自 ndk-build 程序的可执行构建。我想在rooted android设备上运行它。 Android将杀死我可执行的可能性是多少? 使用 adb shell ,我能够使用以下命令执行我的可执行文件: adb push executable /sdcard adb shell device:/ $ ...

1  如何使用背景中的应用程序对Android进行网络调用[已关闭]  ( How to make network calls on android with an app in the background ) 
关闭。这个问题是 off-topic 。它目前不接受答案。 想要改进这个问题?更新这个问题,所以它是关于android爱好者堆栈交换的主题。 关闭 ...

3  我的谷歌语音服务一直陷入“重新启动”  ( My google voice services keeps getting stuck on restarting ) 
Google语音的"UpdateService" 不断保持困扰"重新启动" ,因此我错过了从谷歌语音接收短信。我已经在一些不必要的服务上修剪了下来,看起来它似乎有助于一大批。关于这个问题的任何其他建议或想法? 我目前正在运行cm6,但它也发生在股票之前。 ...

3  “system_server” - Bluetoothphoneservice会导致高CPU使用率  ( System server bluetoothphoneservice causes high cpu usage ) 
我在Nexus 4上使用Android 5.1,几个月前将注意到电池排水量快。思考我需要将Android更新到较新版本我决定首先检查CPU使用情况,并发现进程"System_server" - BluetoothPhoneservice会导致高CPU使用率: 在其他论坛和其他有同样的论坛上进行了研究,但我没...

3  运行的应用程序和服务是安全的,以便关闭? [复制]  ( What running applications and services are safe to turn off ) 
这个问题已经在这里有答案: 关闭 10年前。 可能的重复: 知道哪些应用程序停止 我刚收到了一个使用的nexus,我看到了很多运行的服务和应用程序。我想知道如果我刚开始关闭它们会有什么负面影...

0  为什么WidgetLocker应用程序逃避我的任务杀手?  ( Why is widgetlocker app evading my task killer ) 
WidgetLocker应用程序(屏幕锁定替换应用程序)有一个服务运行,我可以在我的App Manager(电话设置下)中看到,但不是在我的任务杀手应用程序(高级任务管理器)中。它的服务如何逃避我的任务杀手? 我可以在Phones App Manager中停止其服务,终止该应用程序。我没有窗口锁定器设置为我的默认主...

10  如何防止在后台运行服务? [复制]  ( How can i prevent services from running in the background ) 
这个问题已经在这里有一个答案: 关闭 8年前。 可能的重复: 如何停止运行的应用程序和服务? 是否有一种方法来防止在后台自动运行的服务应用程序(或任何其他应用程序)? ...




© 2022 it.wenda123.org All Rights Reserved. 问答之家 版权所有