私はLinux Mintバージョン19 Taraを実行しています。
私のバッテリー寿命は今本当に良くなく、このkworkerスレッドで私のコンピュータのCPU使用率は常に70%であるため、ファンは常にオンになっています。これは本当に私を悩ませ始めました。起動するとすぐに実行しましたtop
が、プログラム(ターミナルを除く)を開く前に、プロセスはすでにCPUの70%を使用していました。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5 root 20 0 0 0 0 I 66.1 0.0 1:27.86 kworker/0:0-kac
私がそれを実行するとkworkerスレッドがhtop
呼び出されるものと 。kacpi_notify
kacipid
Grubを編集しようとしましたが、acpi=off
システムが下線が点滅している黒い画面で起動し、それがすべてです。始まらない。
カーネルをアップグレードして5.3.0-51-genericを実行しています。これまでに調査したところによると、BIOSをアップデートする必要があるかもしれませんが、コンピュータメーカーはBIOSアップデートを.exe形式でのみ提供しています。 exeをダウンロードしましたが、ここでどこに行くのかわかりません。
誰でも私を助けることができますか?
ベストアンサー1
他の人が提供した情報は本質的に正確ですが、解決策はそうではありません。トリッキーな部分は不良割り込みを見つけることです。これは、使用しているハードウェアによって変わり、ファームウェア/BIOSなどを更新するときにも変更されることがあります。 Linuxを実行していると仮定すると、次のコマンドを実行して見つけることができます。
grep -Ev "^[ ]*0" /sys/firmware/acpi/interrupts/gpe?? | sort --field-separator=: --key=2 --numeric --reverse | head -1
上記のコードスニペットは、すべての割り込みを見て数字でソートし、最も高い数の割り込みを表示します。私のシステムでは、出力は次のようになります。
/sys/firmware/acpi/interrupts/gpe69: 7802639 STS enabled unmasked
コマンドに渡される値を調整することで、表示される割り込みの数を増やすことができますが、head
関連するCPU使用率を考慮すると、非常にまれな場合を除いて、ほぼ常に(ソート後)最初の行になります。問題の割り込みを識別したと仮定すると、次のように無効にできます。
echo disable > /sys/firmware/acpi/interrupts/gpe69
このプロセスを自動化するには、次のようなスクリプトを作成します。
echo disable > $(grep -Ev '^[ ]*0' /sys/firmware/acpi/interrupts/gpe?? | sort --field-separator=: --key=2 --numeric --reverse | head -1 | awk -F: '{print $1}')
上記のバージョンではrootとして実行する必要があります。これを防ぐには、次のものを使用できます。
sudo sh -c "echo disable > $(grep -Ev '^[ ]*0' /sys/firmware/acpi/interrupts/gpe?? | sort --field-separator=: --key=2 --numeric --reverse | head -1 | awk -F: '{print $1}')"
最も高い値の割り込みがディセーブルの場合、エラーメッセージが表示されます。上記のコードスニペットを複数回実行すると、これが発生する可能性があります。これが発生すると、次のエラーが表示されます。
sh: line 1: echo: write error: Invalid argument
grep
無効な割り込みをフィルタリングするように式を調整するのは簡単です。これをしないでください。これにより、上記のコマンドを実行すると一部の重要な機能が無効になる可能性があります。
最後に、割り込みを無効にする前にこれが問題であることを確認するのが賢明かもしれません。以下のパッドのいずれかを使用して問題を特定できます。毎秒カウンター値を印刷します。これが問題であれば、値が急速に上昇することがわかります。
while true ; do grep -Ev '^[ ]*0' /sys/firmware/acpi/interrupts/gpe?? | sort --field-separator=: --key=2 --numeric --reverse | head -1 ; sleep 1 ; done
私のシステムでは、次のようになります。
/sys/firmware/acpi/interrupts/gpe69: 7921836 STS enabled unmasked
/sys/firmware/acpi/interrupts/gpe69: 7925137 STS enabled unmasked
/sys/firmware/acpi/interrupts/gpe69: 7928459 EN STS enabled unmasked
/sys/firmware/acpi/interrupts/gpe69: 7931766 STS enabled unmasked
/sys/firmware/acpi/interrupts/gpe69: 7935122 STS enabled unmasked